You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-16 20:32:23 +02:00
Compare commits
948 Commits
release-4.
...
release-4.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ede7c8acbb | ||
![]() |
9195df5179 | ||
![]() |
a3d5ea829b | ||
![]() |
c062f86bac | ||
![]() |
e5894831ec | ||
![]() |
f40e92f186 | ||
![]() |
0ab10ef2b3 | ||
![]() |
049e376953 | ||
![]() |
6dab4615aa | ||
![]() |
0b9a1dfd9d | ||
![]() |
11c45db2ec | ||
![]() |
ba147d72b9 | ||
![]() |
97ead6d7c9 | ||
![]() |
51cb3ca0c8 | ||
![]() |
c514c2b7a8 | ||
![]() |
d26e582cc1 | ||
![]() |
5d161d2477 | ||
![]() |
b9ea6a5dc5 | ||
![]() |
7b0b64a04e | ||
![]() |
4cb386af35 | ||
![]() |
14ab1b015c | ||
![]() |
0a4971c994 | ||
![]() |
a75ae21434 | ||
![]() |
01eed5dae9 | ||
![]() |
e73397c750 | ||
![]() |
869d079507 | ||
![]() |
71174edf72 | ||
![]() |
b3d46ecb78 | ||
![]() |
80035a2520 | ||
![]() |
6790335239 | ||
![]() |
48ff494dca | ||
![]() |
c5b361ce74 | ||
![]() |
397b7b9407 | ||
![]() |
6e0c1e2147 | ||
![]() |
e93c360db6 | ||
![]() |
270e2023cd | ||
![]() |
5ac858213b | ||
![]() |
f0ee6aba29 | ||
![]() |
fa418087c4 | ||
![]() |
8493e1ad64 | ||
![]() |
fe90fcef5b | ||
![]() |
210fd80167 | ||
![]() |
0a1e864f74 | ||
![]() |
7adccab687 | ||
![]() |
67e536d869 | ||
![]() |
86e8d848f6 | ||
![]() |
88114b4588 | ||
![]() |
e468f004f4 | ||
![]() |
4cfccc54ea | ||
![]() |
5ffa7e4752 | ||
![]() |
d7fd576293 | ||
![]() |
83b34053a1 | ||
![]() |
b9164adb7a | ||
![]() |
8397b118b7 | ||
![]() |
74dc000ac1 | ||
![]() |
9b61991523 | ||
![]() |
702c79a92f | ||
![]() |
a27822b557 | ||
![]() |
bdcb00a3b2 | ||
![]() |
ac5a485651 | ||
![]() |
e8c65388eb | ||
![]() |
f2cbb61d49 | ||
![]() |
0a1c61d9d3 | ||
![]() |
01a0fff4c2 | ||
![]() |
bf9516d164 | ||
![]() |
fdbf8cb0ee | ||
![]() |
7e8a176751 | ||
![]() |
61504ae3b1 | ||
![]() |
dd76525372 | ||
![]() |
1c0f8b4289 | ||
![]() |
63043b4927 | ||
![]() |
3ea4c66d41 | ||
![]() |
781d7fbf1a | ||
![]() |
e7ebbffbfd | ||
![]() |
39f054eef6 | ||
![]() |
7a620c794d | ||
![]() |
cc13f3e10d | ||
![]() |
b0e41abf5a | ||
![]() |
5347897b7d | ||
![]() |
6f8fae9a7b | ||
![]() |
62b50d1475 | ||
![]() |
2fb0c86f1e | ||
![]() |
aedd997604 | ||
![]() |
aa3da942cb | ||
![]() |
87e1a14a4b | ||
![]() |
00f6bb7c82 | ||
![]() |
cca93c2be2 | ||
![]() |
ad9d0608d4 | ||
![]() |
3c5688c6f6 | ||
![]() |
ece92a886a | ||
![]() |
85777ea491 | ||
![]() |
b8a84dbd83 | ||
![]() |
35c31906b7 | ||
![]() |
1fa940876f | ||
![]() |
c652123145 | ||
![]() |
1c52fff1cc | ||
![]() |
261f08b90e | ||
![]() |
2d48581570 | ||
![]() |
b8a7ecfe69 | ||
![]() |
cbc2de6b85 | ||
![]() |
9d2bb67834 | ||
![]() |
3d7ff9765a | ||
![]() |
28f2def21f | ||
![]() |
0ee303789a | ||
![]() |
6ccc92020c | ||
![]() |
e3fe66d3ec | ||
![]() |
ab5605d54b | ||
![]() |
a7a90613c2 | ||
![]() |
19d95ebd10 | ||
![]() |
0e1849346b | ||
![]() |
0f34e3bed9 | ||
![]() |
c8b66b25e8 | ||
![]() |
e6f07a6fe4 | ||
![]() |
51469f8fa2 | ||
![]() |
d78b2a569f | ||
![]() |
ec6c970775 | ||
![]() |
67c45efff7 | ||
![]() |
a54772bf35 | ||
![]() |
166be2a94d | ||
![]() |
7150d05399 | ||
![]() |
36a6e22f27 | ||
![]() |
dc13eaed1f | ||
![]() |
001bd60d36 | ||
![]() |
b063042988 | ||
![]() |
fa1d49add5 | ||
![]() |
b45248bf99 | ||
![]() |
dfe862dcd5 | ||
![]() |
d4ddeaa917 | ||
![]() |
13a49866a7 | ||
![]() |
7e2aea92b0 | ||
![]() |
7db51b2f8d | ||
![]() |
ae1b963e0f | ||
![]() |
b29b7e0185 | ||
![]() |
71270260bf | ||
![]() |
22abbc1d41 | ||
![]() |
32698fe0be | ||
![]() |
16f8d6a936 | ||
![]() |
046d6f3bc1 | ||
![]() |
e33c4086b9 | ||
![]() |
51d754a53e | ||
![]() |
49976bcd83 | ||
![]() |
f991d2bdb4 | ||
![]() |
e6ff23885e | ||
![]() |
7aa859a442 | ||
![]() |
180deb867a | ||
![]() |
a5c531f0a4 | ||
![]() |
5dd70b88d3 | ||
![]() |
40f2718265 | ||
![]() |
ddd106655d | ||
![]() |
cc61ad01b6 | ||
![]() |
8a44c1f6d5 | ||
![]() |
e370cbb06b | ||
![]() |
cb0c2e3b9c | ||
![]() |
80360cc79a | ||
![]() |
559a979536 | ||
![]() |
5e88537809 | ||
![]() |
8b60baea99 | ||
![]() |
ac61c33d1c | ||
![]() |
3088f04e6f | ||
![]() |
864dca1b67 | ||
![]() |
15320018f0 | ||
![]() |
6226dd5b80 | ||
![]() |
aafc1064d9 | ||
![]() |
fb2fbc875d | ||
![]() |
8085db6ba9 | ||
![]() |
4f20769a6c | ||
![]() |
090199f9de | ||
![]() |
cd3635985e | ||
![]() |
8a7179195f | ||
![]() |
e45e29b431 | ||
![]() |
ca28fc27dc | ||
![]() |
08b2cde8e8 | ||
![]() |
489d88e02a | ||
![]() |
dff39ffd20 | ||
![]() |
3c948ef063 | ||
![]() |
7087565d92 | ||
![]() |
3467358663 | ||
![]() |
45a1c25a29 | ||
![]() |
70a11a12b3 | ||
![]() |
5d5b0d572e | ||
![]() |
7c8eadfddf | ||
![]() |
89ca0c537d | ||
![]() |
a92a6404cb | ||
![]() |
78459fcb31 | ||
![]() |
41fc0fd084 | ||
![]() |
5c9655abc3 | ||
![]() |
3301797491 | ||
![]() |
eb5e1d34df | ||
![]() |
9e92e5995f | ||
![]() |
e96f2d7be0 | ||
![]() |
03cb51844b | ||
![]() |
6b06cc9216 | ||
![]() |
6b49323f05 | ||
![]() |
4a11fab2b1 | ||
![]() |
c382191e75 | ||
![]() |
4d480b8761 | ||
![]() |
cd25562fd2 | ||
![]() |
9a3d560d9e | ||
![]() |
4924fb95f8 | ||
![]() |
6de67fe81f | ||
![]() |
bc71827c01 | ||
![]() |
a8ade3a04b | ||
![]() |
eca04e2e92 | ||
![]() |
763b9fc1da | ||
![]() |
add75fbc77 | ||
![]() |
86b1ac5d7c | ||
![]() |
b51197936b | ||
![]() |
64609ce5cf | ||
![]() |
b81cbf9062 | ||
![]() |
e7e881e5d7 | ||
![]() |
e236a76d5a | ||
![]() |
ad8a827c1f | ||
![]() |
08ac33bc5c | ||
![]() |
5cf39a2970 | ||
![]() |
1c9321d5a1 | ||
![]() |
97a8d865dc | ||
![]() |
982133d9b6 | ||
![]() |
d23935a269 | ||
![]() |
1c343a444b | ||
![]() |
1c9696b68e | ||
![]() |
ecd23d0abd | ||
![]() |
010d1b5ff8 | ||
![]() |
46394a7c0f | ||
![]() |
fc86034fab | ||
![]() |
03012cc175 | ||
![]() |
8518333406 | ||
![]() |
b2e0e25f1c | ||
![]() |
9673be17cb | ||
![]() |
fa8786e230 | ||
![]() |
21f72baae2 | ||
![]() |
4b78af268f | ||
![]() |
a734199383 | ||
![]() |
046b741700 | ||
![]() |
ce0b6f0d56 | ||
![]() |
6de0622c1a | ||
![]() |
6229b81730 | ||
![]() |
c701379a2e | ||
![]() |
0783968121 | ||
![]() |
307f5e6e56 | ||
![]() |
cb29685a24 | ||
![]() |
dabba89682 | ||
![]() |
2efd4f2a77 | ||
![]() |
90296b3ef0 | ||
![]() |
8f02fe0cc6 | ||
![]() |
7a6edcdddb | ||
![]() |
81139c0098 | ||
![]() |
6a6268c068 | ||
![]() |
68133ec8e3 | ||
![]() |
314f92f2d8 | ||
![]() |
8b5db328ec | ||
![]() |
615b76f78c | ||
![]() |
f2912c14ea | ||
![]() |
08f33d7e9e | ||
![]() |
c034cb5985 | ||
![]() |
e3cd15dced | ||
![]() |
8439d4e827 | ||
![]() |
2b501904cf | ||
![]() |
ea986a1f1b | ||
![]() |
b924357ea9 | ||
![]() |
b823d74ac3 | ||
![]() |
d1e2019cd7 | ||
![]() |
70573eba2c | ||
![]() |
cf46653333 | ||
![]() |
8d3fcbd897 | ||
![]() |
1900538315 | ||
![]() |
a9feae6110 | ||
![]() |
8d822f2cb4 | ||
![]() |
c12e486f59 | ||
![]() |
d0d0bed333 | ||
![]() |
8799321312 | ||
![]() |
00d2997971 | ||
![]() |
69f7f233fd | ||
![]() |
793e8643bf | ||
![]() |
521ef8e28f | ||
![]() |
7433d85418 | ||
![]() |
ba1cf12817 | ||
![]() |
7dc7b95bfd | ||
![]() |
59352e4ca7 | ||
![]() |
011d026d76 | ||
![]() |
89a8184ad2 | ||
![]() |
a23e10dff5 | ||
![]() |
535603fac4 | ||
![]() |
fb6282da57 | ||
![]() |
23766cd01d | ||
![]() |
44b2afb218 | ||
![]() |
9e82e59fc8 | ||
![]() |
e006538514 | ||
![]() |
fad5dfa4f4 | ||
![]() |
b737ee0240 | ||
![]() |
9d9f774dad | ||
![]() |
526ee9c9db | ||
![]() |
671eff324d | ||
![]() |
a93cf04aca | ||
![]() |
e93a67e644 | ||
![]() |
b29a52dfa8 | ||
![]() |
4ed99ba851 | ||
![]() |
3e92e716b2 | ||
![]() |
c6c8f6563d | ||
![]() |
138c911ef4 | ||
![]() |
e5fe6401a0 | ||
![]() |
bed643e627 | ||
![]() |
4ac25a50ed | ||
![]() |
d9cf189ef6 | ||
![]() |
6e19878973 | ||
![]() |
9f9c4d6ed0 | ||
![]() |
567848e94f | ||
![]() |
221cbcc1ac | ||
![]() |
dc2086dab4 | ||
![]() |
7be2a03c86 | ||
![]() |
e87f8f5b93 | ||
![]() |
11a063ea66 | ||
![]() |
1d26f4c5f7 | ||
![]() |
8a09558ed8 | ||
![]() |
60b1e692b9 | ||
![]() |
0a1865d0dd | ||
![]() |
3d94c70c48 | ||
![]() |
7d7f967d5e | ||
![]() |
ce554e6c77 | ||
![]() |
5d151cca9d | ||
![]() |
e47d90b5a6 | ||
![]() |
e4730191db | ||
![]() |
49aab492e0 | ||
![]() |
2d4d246268 | ||
![]() |
09e558ae0b | ||
![]() |
a3fd6633c4 | ||
![]() |
1eb246c98b | ||
![]() |
96e0c0df20 | ||
![]() |
aa8f420681 | ||
![]() |
7974b5a95c | ||
![]() |
ed4570cb4d | ||
![]() |
01d851440b | ||
![]() |
e5943b64c1 | ||
![]() |
933e56494c | ||
![]() |
140e73be4e | ||
![]() |
960b9b855f | ||
![]() |
1e1d55b26d | ||
![]() |
925bf7715c | ||
![]() |
399d3ad85a | ||
![]() |
d923c03d52 | ||
![]() |
699b91ab8d | ||
![]() |
abd6eb2ff3 | ||
![]() |
32f29e72c6 | ||
![]() |
e76bac4131 | ||
![]() |
8b94642ab1 | ||
![]() |
d3497148c5 | ||
![]() |
27baa55443 | ||
![]() |
fd3d4d479a | ||
![]() |
4b0a2d050a | ||
![]() |
d85c14864b | ||
![]() |
ee696e6f36 | ||
![]() |
6ccbd8472c | ||
![]() |
8ec26e9ea9 | ||
![]() |
45e31a153c | ||
![]() |
7c23d800e6 | ||
![]() |
4dbf6af733 | ||
![]() |
bdc03b1c75 | ||
![]() |
9bfc74a1bc | ||
![]() |
5d03917877 | ||
![]() |
d2f975a0f3 | ||
![]() |
eedd47860a | ||
![]() |
6e59248ea6 | ||
![]() |
365554d064 | ||
![]() |
70d1cb86fd | ||
![]() |
ccb7c0d579 | ||
![]() |
fd9941e2d8 | ||
![]() |
2f89563fca | ||
![]() |
261f601bd5 | ||
![]() |
5157e4965a | ||
![]() |
3ffd25f9e1 | ||
![]() |
665ab34f25 | ||
![]() |
37f227ae74 | ||
![]() |
f6eb29d800 | ||
![]() |
f5315d9ba7 | ||
![]() |
124cc9621d | ||
![]() |
3faa7226e7 | ||
![]() |
6070b41c9b | ||
![]() |
50ddfea617 | ||
![]() |
e74ad86f14 | ||
![]() |
2bd2490539 | ||
![]() |
5c0378a684 | ||
![]() |
2bd5aca3a4 | ||
![]() |
ccb59fbad3 | ||
![]() |
6c66d02aff | ||
![]() |
9f03598259 | ||
![]() |
8191246c19 | ||
![]() |
437769ac0b | ||
![]() |
f97a1103b1 | ||
![]() |
9b0c9be7dd | ||
![]() |
97c7f3bc67 | ||
![]() |
2503271a45 | ||
![]() |
d335f263f3 | ||
![]() |
1c34635016 | ||
![]() |
b6a35e9477 | ||
![]() |
6aa8251b98 | ||
![]() |
3b4bf90a13 | ||
![]() |
0c71756009 | ||
![]() |
2f6abb8aa1 | ||
![]() |
42582e21f7 | ||
![]() |
af49a4dd5a | ||
![]() |
b2081faf87 | ||
![]() |
f960934eb9 | ||
![]() |
5522725f5d | ||
![]() |
9f3d36bab0 | ||
![]() |
87e7085c22 | ||
![]() |
d8eac56f5e | ||
![]() |
c20557f690 | ||
![]() |
65bdc4cf43 | ||
![]() |
ee79c196df | ||
![]() |
41682bfcbb | ||
![]() |
34be8c9213 | ||
![]() |
aebb9f89d1 | ||
![]() |
40f6201509 | ||
![]() |
2e8e2b04a1 | ||
![]() |
015780fc72 | ||
![]() |
c64e433a69 | ||
![]() |
e21f46d824 | ||
![]() |
ef79546508 | ||
![]() |
2993fdb169 | ||
![]() |
365b1c6299 | ||
![]() |
9565b695ef | ||
![]() |
89cedd411e | ||
![]() |
a51742b47c | ||
![]() |
ea3b897d5d | ||
![]() |
e432d67b3b | ||
![]() |
bd7dc8b5e7 | ||
![]() |
a7ac700fe1 | ||
![]() |
ff87958188 | ||
![]() |
f308cd392b | ||
![]() |
e4bea17fb8 | ||
![]() |
2c47cfbe25 | ||
![]() |
b0685541d9 | ||
![]() |
f097c15c61 | ||
![]() |
511fa37c84 | ||
![]() |
a82ca6adb2 | ||
![]() |
05e3e46f5a | ||
![]() |
6d399f0303 | ||
![]() |
ecebfc34fa | ||
![]() |
59b53f3db4 | ||
![]() |
e86916a7f9 | ||
![]() |
11ae073c12 | ||
![]() |
aec53b2849 | ||
![]() |
0f42ab230e | ||
![]() |
211c92c387 | ||
![]() |
2f1ec09aef | ||
![]() |
4561d844e4 | ||
![]() |
3caa57358f | ||
![]() |
94195d5339 | ||
![]() |
c9a552c89c | ||
![]() |
6b123921a4 | ||
![]() |
383eaf44ac | ||
![]() |
223d15802e | ||
![]() |
bdf2f6c3e1 | ||
![]() |
fdc186c92f | ||
![]() |
ab6141edb7 | ||
![]() |
d0dcf53575 | ||
![]() |
ab906f17de | ||
![]() |
28ef33b0a0 | ||
![]() |
376dedebb1 | ||
![]() |
137c6458f7 | ||
![]() |
75e0990eb3 | ||
![]() |
62a6c725d6 | ||
![]() |
d4554c2e5c | ||
![]() |
d6a398cf2c | ||
![]() |
68e3bcbcda | ||
![]() |
6864e13e6f | ||
![]() |
942fad1d6f | ||
![]() |
29e6b229ac | ||
![]() |
a4ce5d1687 | ||
![]() |
cb8d6a0939 | ||
![]() |
e38128119c | ||
![]() |
c7c7924d37 | ||
![]() |
b5a24fd877 | ||
![]() |
e1ed5b73d0 | ||
![]() |
3e47d26e44 | ||
![]() |
e0d17e496a | ||
![]() |
6cf99cd0f2 | ||
![]() |
31d84100cd | ||
![]() |
0eb39aa9e3 | ||
![]() |
f457069881 | ||
![]() |
47eef78365 | ||
![]() |
eaaadf40c9 | ||
![]() |
c9e2da5f53 | ||
![]() |
53b7956968 | ||
![]() |
d13be829c3 | ||
![]() |
e18b2ab437 | ||
![]() |
6777a615d4 | ||
![]() |
41f2375053 | ||
![]() |
f385bd2236 | ||
![]() |
35032d7eed | ||
![]() |
bfd48f187a | ||
![]() |
7662da52e6 | ||
![]() |
7722916fad | ||
![]() |
d82a1d7198 | ||
![]() |
45925efe32 | ||
![]() |
a64bb1a990 | ||
![]() |
650bf15db8 | ||
![]() |
2b8e50b296 | ||
![]() |
2731eb1c05 | ||
![]() |
f97aa05bdb | ||
![]() |
4a68df084e | ||
![]() |
83530b7adb | ||
![]() |
a2ef09466f | ||
![]() |
7c9488105e | ||
![]() |
3f32b040dc | ||
![]() |
21b3c61162 | ||
![]() |
5045fa6dcd | ||
![]() |
c4a3d70500 | ||
![]() |
435bb34435 | ||
![]() |
bb9ca7f418 | ||
![]() |
2e30ed17bd | ||
![]() |
0b3d088782 | ||
![]() |
6514eaf565 | ||
![]() |
f8e7602d96 | ||
![]() |
565aef9637 | ||
![]() |
82efb83c43 | ||
![]() |
f29ff67585 | ||
![]() |
825bf8d61e | ||
![]() |
1344b31535 | ||
![]() |
9b8bddf7b2 | ||
![]() |
8a087a876e | ||
![]() |
f8067aa592 | ||
![]() |
2b837381f3 | ||
![]() |
cd6959b712 | ||
![]() |
3e5f8c64d4 | ||
![]() |
2d1c34d8e0 | ||
![]() |
48d532777a | ||
![]() |
f6336a6056 | ||
![]() |
cd7bdc8998 | ||
![]() |
2b7b3c65cc | ||
![]() |
98e02a8fed | ||
![]() |
a93391e247 | ||
![]() |
102cc684dd | ||
![]() |
a230228441 | ||
![]() |
135cad576c | ||
![]() |
561fbf2cca | ||
![]() |
a8127d6102 | ||
![]() |
2f28d3c7b6 | ||
![]() |
e59c735331 | ||
![]() |
221014a2e3 | ||
![]() |
e2dbfa9ace | ||
![]() |
121ff2b7be | ||
![]() |
45465e994e | ||
![]() |
af85a8a340 | ||
![]() |
5fe0e9395f | ||
![]() |
1f1cabd144 | ||
![]() |
c3bab70434 | ||
![]() |
1d6af22813 | ||
![]() |
a50798c78f | ||
![]() |
379d41b6fb | ||
![]() |
09da6828b8 | ||
![]() |
9f386afe9c | ||
![]() |
35dedd3d83 | ||
![]() |
45c0d5a823 | ||
![]() |
7bc5bfa140 | ||
![]() |
fda6def384 | ||
![]() |
4bf4d45389 | ||
![]() |
4e8eb2c996 | ||
![]() |
e43a9de2f3 | ||
![]() |
1a9e97ee3b | ||
![]() |
901fca2d12 | ||
![]() |
c23f8542b2 | ||
![]() |
0189606445 | ||
![]() |
9b31496b22 | ||
![]() |
b9676ac3eb | ||
![]() |
764aabc459 | ||
![]() |
61d2ff359b | ||
![]() |
87ad8a1495 | ||
![]() |
5d889e4a8f | ||
![]() |
b65a714d17 | ||
![]() |
ea1c4a8fc8 | ||
![]() |
5beb1b2cd0 | ||
![]() |
f55e0b6775 | ||
![]() |
d124041726 | ||
![]() |
7a26a92edd | ||
![]() |
43c8ac0aa1 | ||
![]() |
46e6ed480a | ||
![]() |
9f30aba2b3 | ||
![]() |
560ecbc6c3 | ||
![]() |
8d9b6cca63 | ||
![]() |
3972597163 | ||
![]() |
b0d17221f2 | ||
![]() |
be2cdca1e9 | ||
![]() |
f6ab1d63e8 | ||
![]() |
cf5e833898 | ||
![]() |
6ed2e2694f | ||
![]() |
04827188f2 | ||
![]() |
560239c918 | ||
![]() |
a78929dadf | ||
![]() |
349cc54c69 | ||
![]() |
a8ae97ba91 | ||
![]() |
aad6b69f00 | ||
![]() |
d74df935f4 | ||
![]() |
5c8806b307 | ||
![]() |
a078633a32 | ||
![]() |
f022458383 | ||
![]() |
6139d0d65a | ||
![]() |
86a283b4ae | ||
![]() |
bb39a41e9e | ||
![]() |
1568e98d43 | ||
![]() |
0c9ecd1d76 | ||
![]() |
799e67bbca | ||
![]() |
561b597031 | ||
![]() |
6d6908e625 | ||
![]() |
4da4fb0676 | ||
![]() |
7a8c05dc7c | ||
![]() |
d7bacdcbff | ||
![]() |
73e927ff19 | ||
![]() |
e2c785b2d5 | ||
![]() |
20e9952d98 | ||
![]() |
0bf36ad031 | ||
![]() |
f3435c5e35 | ||
![]() |
166ec74ff9 | ||
![]() |
6b3c6c12ff | ||
![]() |
5161758193 | ||
![]() |
bea32cfe38 | ||
![]() |
8cfd803222 | ||
![]() |
9a567721a8 | ||
![]() |
3a49c8f2da | ||
![]() |
12938799a6 | ||
![]() |
89807fb55f | ||
![]() |
891a24c6ba | ||
![]() |
752b45083c | ||
![]() |
f00f552369 | ||
![]() |
5c2b81d78f | ||
![]() |
a2b0531d5f | ||
![]() |
752eb58ec0 | ||
![]() |
7373b60522 | ||
![]() |
59f0961594 | ||
![]() |
b776f98df8 | ||
![]() |
7400284cff | ||
![]() |
da87eb7b4c | ||
![]() |
e1f9083c81 | ||
![]() |
614376ed64 | ||
![]() |
529dd6e3a8 | ||
![]() |
acb1bc0c0e | ||
![]() |
8233f60569 | ||
![]() |
4ae2160372 | ||
![]() |
1df2dd9593 | ||
![]() |
d53a1d1412 | ||
![]() |
de9b43984a | ||
![]() |
4a0b36a50b | ||
![]() |
fffe5e7003 | ||
![]() |
0bac639a04 | ||
![]() |
0d0d0a7c23 | ||
![]() |
c8e8a44747 | ||
![]() |
173f8b093f | ||
![]() |
e46c88580a | ||
![]() |
e6033c952e | ||
![]() |
3dfd0ff3b3 | ||
![]() |
dd65f35e5a | ||
![]() |
0d550c9bce | ||
![]() |
2aeb8b9390 | ||
![]() |
afa2fc0ba9 | ||
![]() |
6a45919b25 | ||
![]() |
e4f7d607e1 | ||
![]() |
0690ef31d1 | ||
![]() |
c3f02d833c | ||
![]() |
e273ac3a0d | ||
![]() |
459d02abc8 | ||
![]() |
f5e8b26a55 | ||
![]() |
2d27083509 | ||
![]() |
ce482c20cb | ||
![]() |
c2f149cca3 | ||
![]() |
ab0e1ec6e8 | ||
![]() |
5e4f548321 | ||
![]() |
e53634ecef | ||
![]() |
03e7019182 | ||
![]() |
82b0bc63a3 | ||
![]() |
04275e7d5d | ||
![]() |
7a471ea6b2 | ||
![]() |
45874fa333 | ||
![]() |
74a5c6e745 | ||
![]() |
cfafe90fe0 | ||
![]() |
12d396ffc5 | ||
![]() |
dc39b9e643 | ||
![]() |
e6a8c02745 | ||
![]() |
88d695f7af | ||
![]() |
b673e0c219 | ||
![]() |
5c819f7242 | ||
![]() |
40bd2039d4 | ||
![]() |
53f29613c2 | ||
![]() |
3371709472 | ||
![]() |
50c009265e | ||
![]() |
e169c0ce5e | ||
![]() |
f04d4b10e4 | ||
![]() |
f3e4338efc | ||
![]() |
c8979a6a49 | ||
![]() |
5b495e2f51 | ||
![]() |
42637a642b | ||
![]() |
2375e7c100 | ||
![]() |
ae1b852821 | ||
![]() |
44e4dd3700 | ||
![]() |
24d7d599f1 | ||
![]() |
d85a41ad75 | ||
![]() |
478ddfe102 | ||
![]() |
198f832c3d | ||
![]() |
f0b78ffc04 | ||
![]() |
a445311705 | ||
![]() |
1fe1fa9eac | ||
![]() |
6258652c7b | ||
![]() |
28d31b9d5b | ||
![]() |
75426cc498 | ||
![]() |
ae29e8bbab | ||
![]() |
2b9c7e04a4 | ||
![]() |
d1aba56096 | ||
![]() |
3985d58d3c | ||
![]() |
1479b61214 | ||
![]() |
15a249eb54 | ||
![]() |
08b3d6bbb0 | ||
![]() |
710c5e2c31 | ||
![]() |
17fa615bd3 | ||
![]() |
6bfed97710 | ||
![]() |
f9e286123f | ||
![]() |
613fd1bcf0 | ||
![]() |
52ce52d466 | ||
![]() |
cede5ac9d2 | ||
![]() |
89559eae2b | ||
![]() |
d7fb2e6403 | ||
![]() |
e3119b457c | ||
![]() |
ae27a5b7b7 | ||
![]() |
302cb27e98 | ||
![]() |
2d3481b9a9 | ||
![]() |
9b67e988db | ||
![]() |
15f1fdddd9 | ||
![]() |
24fa9e32b0 | ||
![]() |
0b4fef19f6 | ||
![]() |
35731b96dc | ||
![]() |
b79a1b5755 | ||
![]() |
1561f6f09f | ||
![]() |
36d7fce909 | ||
![]() |
b8d6058b28 | ||
![]() |
8771e1a339 | ||
![]() |
7b657c942d | ||
![]() |
531ae501ad | ||
![]() |
d0cac421bb | ||
![]() |
4429a16ca8 | ||
![]() |
c669401767 | ||
![]() |
4d349f5f81 | ||
![]() |
08e0349ca3 | ||
![]() |
ee5fe424e8 | ||
![]() |
552ff0489d | ||
![]() |
04a9ce6e81 | ||
![]() |
586bdc0567 | ||
![]() |
4bb3d13921 | ||
![]() |
7c02630186 | ||
![]() |
ff63ad8b97 | ||
![]() |
bdf1fb6db8 | ||
![]() |
d21fdb7546 | ||
![]() |
be5af2796d | ||
![]() |
b1020c599f | ||
![]() |
b2199202ab | ||
![]() |
06105072f9 | ||
![]() |
b676ca7d96 | ||
![]() |
90f355cfaf | ||
![]() |
757ab3dc92 | ||
![]() |
e022c371ff | ||
![]() |
50a2cc9917 | ||
![]() |
5209b0172b | ||
![]() |
cfb55d9d77 | ||
![]() |
df2bbe129d | ||
![]() |
f7cae610a4 | ||
![]() |
bb698d682c | ||
![]() |
5bd6ff2285 | ||
![]() |
e6cf186c23 | ||
![]() |
e8b5508463 | ||
![]() |
d70b893852 | ||
![]() |
a579b4a519 | ||
![]() |
fffa2f097e | ||
![]() |
cabb2198b0 | ||
![]() |
3af2168b02 | ||
![]() |
f1337524f6 | ||
![]() |
348109a1f9 | ||
![]() |
0b0597be0c | ||
![]() |
690dbc4725 | ||
![]() |
cc9b1ea8a1 | ||
![]() |
ffebe82586 | ||
![]() |
4453e7fcdd | ||
![]() |
60d65d8137 | ||
![]() |
c8eefe749f | ||
![]() |
162421a59a | ||
![]() |
79048812e9 | ||
![]() |
70b242f190 | ||
![]() |
8db4bde15d | ||
![]() |
fbb8f0cbf5 | ||
![]() |
aafa12eb6e | ||
![]() |
76f285f19c | ||
![]() |
e1073de36f | ||
![]() |
ae48e49cba | ||
![]() |
4180db601d | ||
![]() |
423983e023 | ||
![]() |
90a1ea4281 | ||
![]() |
0ebd864db9 | ||
![]() |
02e85913da | ||
![]() |
1d5dc283fe | ||
![]() |
769f0a78d4 | ||
![]() |
4029f86c60 | ||
![]() |
f6d1fea9b7 | ||
![]() |
fa6524d377 | ||
![]() |
c56cb8adb6 | ||
![]() |
78638a15be | ||
![]() |
d4a51979bb | ||
![]() |
77555cd5c2 | ||
![]() |
7c48ba2f19 | ||
![]() |
4dbe0a0d0e | ||
![]() |
ca92a74a39 | ||
![]() |
c01d28a471 | ||
![]() |
98ff09931d | ||
![]() |
20ae89c2a1 | ||
![]() |
0baa23f553 | ||
![]() |
10fbb6a2a8 | ||
![]() |
6152b83405 | ||
![]() |
aed25ff87c | ||
![]() |
5f94238d23 | ||
![]() |
4d1d5d6b20 | ||
![]() |
5ba6a5fca1 | ||
![]() |
cba8d83b21 | ||
![]() |
aaeffe3846 | ||
![]() |
6881e8fbe3 | ||
![]() |
137e455f03 | ||
![]() |
ff3d0346eb | ||
![]() |
498da509db | ||
![]() |
d484c0e7ce | ||
![]() |
5c1c561d7d | ||
![]() |
9f0429ca6f | ||
![]() |
3485ad39d9 | ||
![]() |
d899923876 | ||
![]() |
4e04cd27c9 | ||
![]() |
7e4b428a3e | ||
![]() |
9f65a318da | ||
![]() |
2f6ed86c78 | ||
![]() |
6590915b15 | ||
![]() |
0c3fe54b0b | ||
![]() |
a93b675cb8 | ||
![]() |
0f2df23800 | ||
![]() |
e4e0a24416 | ||
![]() |
6aa5abf298 | ||
![]() |
bd672c4c4e | ||
![]() |
8d768bda31 | ||
![]() |
5110994f81 | ||
![]() |
83d17b5c0e | ||
![]() |
e6c174c33b | ||
![]() |
9497300a4a | ||
![]() |
acab62e345 | ||
![]() |
0e8feed2f2 | ||
![]() |
82716d8014 | ||
![]() |
af262e9a14 | ||
![]() |
d0d5af8c66 | ||
![]() |
86f9b1f6db | ||
![]() |
c4485d0af7 | ||
![]() |
7c5d0a0e00 | ||
![]() |
5f014a2056 | ||
![]() |
eaaacd71a8 | ||
![]() |
75cead9266 | ||
![]() |
d79c5824b8 | ||
![]() |
4381739b6d | ||
![]() |
8f2cdcef0e | ||
![]() |
990cc41e80 | ||
![]() |
9721acbf63 | ||
![]() |
be5cb1683b | ||
![]() |
a4e7e546ff | ||
![]() |
4259b4571c | ||
![]() |
2414a79578 | ||
![]() |
84623ac1f6 | ||
![]() |
d46343fb9c | ||
![]() |
5c788a6130 | ||
![]() |
281cf584ec | ||
![]() |
13c4581c86 | ||
![]() |
9c938b91b7 | ||
![]() |
f71f7a0b63 | ||
![]() |
b8c03a1905 | ||
![]() |
9515b40ca5 | ||
![]() |
df3d3db776 | ||
![]() |
e15df81351 | ||
![]() |
77ec423510 | ||
![]() |
c41df9ffbd | ||
![]() |
acad35c5bc | ||
![]() |
6b3fe68a17 | ||
![]() |
6ec07d744e | ||
![]() |
989fdb5895 | ||
![]() |
e60b91b5e2 | ||
![]() |
0be2567d97 | ||
![]() |
61770ad69e | ||
![]() |
85bd0feee0 | ||
![]() |
b249216db6 | ||
![]() |
2a2a80b0bf | ||
![]() |
7ddd5e9bc3 | ||
![]() |
6b4a4517ec | ||
![]() |
7c1c91ac43 | ||
![]() |
6b56768e9c | ||
![]() |
b2b7d02c01 | ||
![]() |
8bb097fd10 | ||
![]() |
a5f8f1f0f5 | ||
![]() |
424e2c76fa | ||
![]() |
41ae2bfb84 | ||
![]() |
4bdf9eda41 | ||
![]() |
ef1c7eec74 | ||
![]() |
87527fccc6 | ||
![]() |
f23234d0df | ||
![]() |
fdbc3a692f | ||
![]() |
571aaea3e0 | ||
![]() |
d0986297ca | ||
![]() |
188e679ea3 | ||
![]() |
4209a5699a | ||
![]() |
80ca7796ca | ||
![]() |
02f19bfbee | ||
![]() |
49d5591f48 | ||
![]() |
816bc45707 | ||
![]() |
73e9dce143 | ||
![]() |
9f0edde12b | ||
![]() |
cf55b67cee | ||
![]() |
9ca415c665 | ||
![]() |
af029e6c3f | ||
![]() |
6d514c97f8 | ||
![]() |
e812ac2c0b | ||
![]() |
480832318c | ||
![]() |
7a3e397949 | ||
![]() |
c95e450b8d | ||
![]() |
b63a34110e | ||
![]() |
0a2a71e83b | ||
![]() |
831bf71ce6 | ||
![]() |
172eda5471 | ||
![]() |
aa899f0693 | ||
![]() |
82602b51bf | ||
![]() |
3971a12f0e | ||
![]() |
70c4eb44fd | ||
![]() |
9ce54162c2 | ||
![]() |
92c6fc04a8 | ||
![]() |
46ebf9b7e5 | ||
![]() |
799ad0feff | ||
![]() |
1a56385cf9 | ||
![]() |
71827fe4e6 | ||
![]() |
8568f7a0fb | ||
![]() |
39c61327b5 | ||
![]() |
81d2130b06 | ||
![]() |
536f5ff091 | ||
![]() |
7e258bfe38 | ||
![]() |
66f0e6a8f2 | ||
![]() |
04306a544f | ||
![]() |
e4fe3bfe35 | ||
![]() |
b636bf4b2a | ||
![]() |
05c7796909 | ||
![]() |
e2b3463c05 | ||
![]() |
6c016cf443 | ||
![]() |
fc48168153 | ||
![]() |
096e6f2f80 | ||
![]() |
4a00bfcc55 | ||
![]() |
6ebc19fccb | ||
![]() |
0fa40c9ac3 |
@@ -3,7 +3,7 @@ version: '{branch}-{build}'
|
||||
# Do not build on tags (GitHub only)
|
||||
skip_tags: true
|
||||
|
||||
image: Visual Studio 2019
|
||||
image: Visual Studio 2022
|
||||
|
||||
branches:
|
||||
except: # blacklist
|
||||
@@ -13,8 +13,8 @@ environment:
|
||||
REPO_DIR: &REPO_DIR c:\qbittorrent
|
||||
CACHE_DIR: &CACHE_DIR c:\qbt_cache
|
||||
|
||||
QBT_VER_URL: https://builds.shiki.hu/appveyor/version
|
||||
QBT_LIB_URL: https://builds.shiki.hu/appveyor/qbt_libraries.7z
|
||||
QBT_VER_URL: https://builds.shiki.hu/appveyor/version_64
|
||||
QBT_LIB_URL: https://builds.shiki.hu/appveyor/qbt_libraries_64.7z
|
||||
|
||||
# project directory
|
||||
clone_folder: *REPO_DIR
|
||||
@@ -38,12 +38,12 @@ install:
|
||||
appveyor DownloadFile "%QBT_LIB_URL%" -FileName "c:\qbt_lib.7z" && 7z x "c:\qbt_lib.7z" -o"%CACHE_DIR%" > nul &&
|
||||
COPY "c:\version_new" "%CACHE_DIR%\version")
|
||||
# Qt stay compressed in cache
|
||||
- 7z x "%CACHE_DIR%\qt5_32.7z" -o"c:\qbt" > nul
|
||||
- 7z x "%CACHE_DIR%\qt5_64.7z" -o"c:\qbt" > nul
|
||||
|
||||
before_build:
|
||||
# setup env
|
||||
- CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
- SET PATH=%PATH%;c:\qbt\qt5_32\bin;%CACHE_DIR%\jom;
|
||||
- CALL "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||
- SET PATH=%PATH%;C:\Qt\5.15.2\msvc2019_64\bin;%CACHE_DIR%\jom
|
||||
# setup project
|
||||
- COPY /Y "%CACHE_DIR%\conf.pri" "%REPO_DIR%"
|
||||
# workarounds
|
||||
@@ -56,4 +56,38 @@ build_script:
|
||||
- qmake qbittorrent.pro && cd src && qmake src.pro
|
||||
- jom -j2 -f Makefile.Release
|
||||
|
||||
after_build:
|
||||
- cd "%REPO_DIR%"
|
||||
- MKDIR upload
|
||||
- COPY dist\windows\qt.conf upload
|
||||
- COPY src\release\qbittorrent.exe upload
|
||||
- COPY src\release\qbittorrent.pdb upload
|
||||
- COPY "%CACHE_DIR%\base\bin\libcrypto-1_1-x64.dll" upload
|
||||
- COPY "%CACHE_DIR%\base\bin\libssl-1_1-x64.dll" upload
|
||||
- COPY "%CACHE_DIR%\base\lib\torrent-rasterbar.dll" upload
|
||||
- COPY "%CACHE_DIR%\base\lib\zlib1.dll" upload
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll upload
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Gui.dll upload
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Network.dll upload
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Sql.dll upload
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Svg.dll upload
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Widgets.dll upload
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5WinExtras.dll upload
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Xml.dll upload
|
||||
- MKDIR upload\plugins\iconengines
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\iconengines\qsvgicon.dll upload\plugins\iconengines
|
||||
- MKDIR upload\plugins\imageformats
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qico.dll upload\plugins\imageformats
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qsvg.dll upload\plugins\imageformats
|
||||
- MKDIR upload\plugins\platforms
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\platforms\qwindows.dll upload\plugins\platforms
|
||||
- MKDIR upload\plugins\sqldrivers
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers\qsqlite.dll upload\plugins\sqldrivers
|
||||
- MKDIR upload\plugins\styles
|
||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\styles\qwindowsvistastyle.dll upload\plugins\styles
|
||||
|
||||
test: off
|
||||
|
||||
artifacts:
|
||||
- path: upload
|
||||
name: qBittorrent-Appveyor_Windows-x64
|
||||
|
19
.github/ISSUE_TEMPLATE.md
vendored
19
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,19 +0,0 @@
|
||||
**Please provide the following information**
|
||||
|
||||
### qBittorrent version and Operating System
|
||||
(type here)
|
||||
|
||||
### If on linux, libtorrent-rasterbar and Qt version
|
||||
(type here)
|
||||
|
||||
### What is the problem
|
||||
(type here)
|
||||
|
||||
### What is the expected behavior
|
||||
(type here)
|
||||
|
||||
### Steps to reproduce
|
||||
(type here)
|
||||
|
||||
### Extra info(if any)
|
||||
(type here)
|
76
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
76
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
name: Bug Report
|
||||
description: File a bug report to help improve qBittorrent user experience.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
#### ADVISORY
|
||||
"We do not support any versions older than the current release series"
|
||||
|
||||
"We do not support any 3rd party/forked versions e.g. `portableapps`/`Enhanced Edition`etc."
|
||||
|
||||
"Please post all details in **English**."
|
||||
|
||||
#### 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.
|
||||
- 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.
|
||||
- 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/)**.
|
||||
- Verify that the **[wiki](https://github.com/qbittorrent/qBittorrent/wiki)** did not contain a suitable solution either.
|
||||
- If relevant to issue/when asked, the qBittorrent preferences file, qBittorrent.log & watched_folders.json (if using "Watched Folders" feature) must be provided.
|
||||
See **[Where does qBittorrent save its settings?](https://github.com/qbittorrent/qBittorrent/wiki/Frequently-Asked-Questions#Where_does_qBittorrent_save_its_settings)**
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: qBittorrent & operating system versions
|
||||
description: |
|
||||
Qt and libtorrent-rasterbar versions are required when: 1. You are using linux. 2. You are not using an official build downloaded from our website.
|
||||
|
||||
Example of preferred formatting:
|
||||
qBittorrent: 4.3.7 x64
|
||||
Operating system: Windows 10 Pro 21H1/2009 x64
|
||||
Qt: 5.15.2
|
||||
libtorrent-rasterbar: 1.2.14
|
||||
placeholder: |
|
||||
qBittorrent:
|
||||
Operating system:
|
||||
Qt:
|
||||
libtorrent-rasterbar:
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What is the problem?
|
||||
description: Please add the "crash report" (if encountered) or give a clear and concise description of problem.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Please provide reliable steps to reproduce the problem.
|
||||
placeholder: |
|
||||
1. First step
|
||||
2. Second step
|
||||
3. and so on...
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Add screenshots etc. (Anything that will provide more context about the problem)
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Log(s) & preferences file(s)
|
||||
description: |
|
||||
Add these files: qBittorrent preferences file, qBittorrent.log & watched_folders.json (if using "Watched Folders" feature).
|
||||
See **[Where does qBittorrent save its settings?](https://github.com/qbittorrent/qBittorrent/wiki/Frequently-Asked-Questions#Where_does_qBittorrent_save_its_settings)**
|
||||
#### Note: It's the user's responsibility to redact any sensitive information
|
||||
validations:
|
||||
required: false
|
17
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
17
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Wiki
|
||||
url: "https://github.com/qbittorrent/qBittorrent/wiki/"
|
||||
about: "Consult the wiki first (especially the FAQ), it might already contain the information you are looking for"
|
||||
|
||||
- name: Question
|
||||
url: "https://github.com/qbittorrent/qBittorrent/discussions"
|
||||
about: "Please ask questions related to usage/setup/support/non-issue development discussion in the Discussions section"
|
||||
|
||||
- name: Question
|
||||
url: "http://forum.qbittorrent.org/"
|
||||
about: "Alternatively, ask on the official forum"
|
||||
|
||||
- name: Question
|
||||
url: "https://www.reddit.com/r/qBittorrent/"
|
||||
about: "Alternatively, use the subreddit"
|
37
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
37
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Feature Request
|
||||
description: Suggest a new feature or enhancement for qBittorrent.
|
||||
labels: ["Feature request"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
#### ADVISORY
|
||||
|
||||
"Please post all details in **English**."
|
||||
|
||||
#### Prerequisites before submitting a feature request!
|
||||
- Read the feature request section in the **[contributing guidelines](https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md)**, to know how to submit a good feature request with the required information.
|
||||
- Verify that the feature being requested is not available in the **[latest official qBittorrent version](https://www.qbittorrent.org/download.php).**
|
||||
- (Optional but recommended) Verify that the feature being requested is not available 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.
|
||||
- Search the issue tracker with the **[feature request filter](https://github.com/qbittorrent/qBittorrent/issues?q=is%3Aopen+is%3Aissue+label%3A%22Feature+request%22)** for similar feature requests (including closed ones) 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/)**.
|
||||
- Verify that the **[wiki](https://github.com/qbittorrent/qBittorrent/wiki)** did not contain a suitable solution either.
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Suggestion
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Use case
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Extra info/examples/attachments
|
||||
description: Add screenshots etc. (Anything that will give us more context about what is being requested!)
|
||||
validations:
|
||||
required: false
|
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<!--
|
||||
MANDATORY Before submitting your work, make sure you have:
|
||||
1. Read https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md#opening-a-pull-request
|
||||
2. Delete this comment block
|
||||
-->
|
18
.github/SUPPORT.md
vendored
Normal file
18
.github/SUPPORT.md
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
# Support Resources
|
||||
|
||||
The issue tracker is only for bug reports/feature requests related to the project itself.
|
||||
|
||||
Please do not use the issue tracker for questions about general program usage,
|
||||
how BitTorrent (the protocol) works in general, etc.
|
||||
|
||||
For such questions, use one of the following community support resources:
|
||||
|
||||
* The [discussions section][discussions-url]
|
||||
|
||||
* The official forum [official forum][forum-url]
|
||||
|
||||
* The [qBittorrent subreddit][subreddit-url]
|
||||
|
||||
[discussions-url]: https://github.com/qbittorrent/qBittorrent/discussions
|
||||
[forum-url]: http://forum.qbittorrent.org/
|
||||
[subreddit-url]: https://www.reddit.com/r/qBittorrent/
|
68
.github/workflows/check_translation_tag.py
vendored
Executable file
68
.github/workflows/check_translation_tag.py
vendored
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# A pre-commit hook for detecting problematic <translation> tags
|
||||
# Copyright (C) 2021 Mike Tzou (Chocobo1)
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# In addition, as a special exception, the copyright holders give permission to
|
||||
# link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
# modified versions of it that use the same license as the "OpenSSL" library),
|
||||
# and distribute the linked executables. You must obey the GNU General Public
|
||||
# License in all respects for all of the code used other than "OpenSSL". If you
|
||||
# modify file(s), you may extend this exception to your version of the file(s),
|
||||
# but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
# exception statement from your version.
|
||||
|
||||
from typing import Optional, Sequence
|
||||
import argparse
|
||||
import re
|
||||
|
||||
def main(argv: Optional[Sequence[str]] = None) -> int:
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('filenames', nargs='*', help='Filenames to check')
|
||||
args = parser.parse_args(argv)
|
||||
|
||||
error_msg = ""
|
||||
regex = re.compile(r"\s*</translation>")
|
||||
|
||||
for filename in args.filenames:
|
||||
line_counter = 1
|
||||
error_buffer = ""
|
||||
|
||||
with open(filename) as file:
|
||||
try:
|
||||
for line in file:
|
||||
if (match := regex.match(line)) is not None:
|
||||
error_buffer += str(f"Defect file: \"{filename}\"\n"
|
||||
f"Line: {line_counter}\n"
|
||||
f"Column span: {match.span()}\n"
|
||||
f"Part: \"{match.group()}\"\n\n")
|
||||
line_counter += 1
|
||||
|
||||
except UnicodeDecodeError as error:
|
||||
# not a text file, skip
|
||||
continue
|
||||
|
||||
error_msg += error_buffer
|
||||
|
||||
if len(error_msg) > 0:
|
||||
print(error_msg)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
if __name__ == '__main__':
|
||||
exit(main())
|
7
.github/workflows/ci_file_health.yaml
vendored
7
.github/workflows/ci_file_health.yaml
vendored
@@ -11,10 +11,7 @@ jobs:
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install tools
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install zsh
|
||||
uses: actions/setup-python@v2
|
||||
|
||||
- name: Check files
|
||||
run: |
|
||||
./.github/workflows/file_health.sh
|
||||
uses: pre-commit/action@v2.0.3
|
||||
|
95
.github/workflows/ci_macos.yaml
vendored
95
.github/workflows/ci_macos.yaml
vendored
@@ -4,70 +4,113 @@ on: [pull_request, push]
|
||||
jobs:
|
||||
ci:
|
||||
name: Build
|
||||
runs-on: macos-10.15
|
||||
runs-on: macos-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
libt_version: ["v1.2.12"]
|
||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||
fail-fast: false
|
||||
matrix:
|
||||
libt_version: ["2.0.5", "1.2.15"]
|
||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||
qt_version: ["5.15.2", "6.2.0"]
|
||||
exclude:
|
||||
- libt_version: "1.2.15"
|
||||
qt_version: "6.2.0"
|
||||
|
||||
env:
|
||||
boost_path: "${{ github.workspace }}/../boost"
|
||||
openssl_root: /usr/local/opt/openssl@1.1
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup ccache
|
||||
uses: hendrikmuhs/ccache-action@v1
|
||||
with:
|
||||
key: ${{ runner.os }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew update > /dev/null
|
||||
brew install \
|
||||
cmake ninja \
|
||||
boost openssl@1.1 qt@5 zlib
|
||||
brew link --force \
|
||||
qt@5
|
||||
# workaround for cmake + Qt
|
||||
sudo ln -s /usr/local/opt/qt@5/mkspecs /usr/local/mkspecs
|
||||
sudo ln -s /usr/local/opt/qt@5/plugins /usr/local/plugins
|
||||
openssl@1.1 zlib
|
||||
|
||||
- name: Setup ccache
|
||||
uses: Chocobo1/setup-ccache-action@v1
|
||||
with:
|
||||
update_packager_index: false
|
||||
|
||||
- name: Install boost
|
||||
run: |
|
||||
curl \
|
||||
-L \
|
||||
-o "${{ runner.temp }}/boost.tar.bz2" \
|
||||
"https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2"
|
||||
tar -xf "${{ runner.temp }}/boost.tar.bz2" -C "${{ github.workspace }}/.."
|
||||
mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
|
||||
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
version: ${{ matrix.qt_version }}
|
||||
|
||||
- name: Install libtorrent
|
||||
run: |
|
||||
git clone --branch ${{ matrix.libt_version }} --depth 1 https://github.com/arvidn/libtorrent.git
|
||||
git clone \
|
||||
--branch v${{ matrix.libt_version }} \
|
||||
--depth 1 \
|
||||
--recurse-submodules \
|
||||
https://github.com/arvidn/libtorrent.git
|
||||
cd libtorrent
|
||||
git submodule update --init --recursive
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
cmake \
|
||||
-B build \
|
||||
-G "Ninja" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-DBOOST_ROOT="${{ env.boost_path }}" \
|
||||
-Ddeprecated-functions=OFF \
|
||||
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}"
|
||||
cmake --build build
|
||||
sudo cmake --install build
|
||||
|
||||
- name: Build qBittorrent
|
||||
- name: Build qBittorrent (Qt5)
|
||||
if: ${{ startsWith(matrix.qt_version, 5) }}
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
||||
cmake \
|
||||
-B build \
|
||||
-G "Ninja" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-D${{ matrix.qbt_gui }} \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-DBOOST_ROOT="${{ env.boost_path }}" \
|
||||
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
||||
-DVERBOSE_CONFIGURE=ON \
|
||||
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}"
|
||||
-D${{ matrix.qbt_gui }}
|
||||
cmake --build build
|
||||
|
||||
- name: Build qBittorrent (Qt6)
|
||||
if: ${{ startsWith(matrix.qt_version, 6) }}
|
||||
run: |
|
||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
||||
cmake \
|
||||
-B build \
|
||||
-G "Ninja" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-DBOOST_ROOT="${{ env.boost_path }}" \
|
||||
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
||||
-DQT6=ON \
|
||||
-DVERBOSE_CONFIGURE=ON \
|
||||
-D${{ matrix.qbt_gui }}
|
||||
cmake --build build
|
||||
|
||||
- name: Prepare build artifacts
|
||||
run: |
|
||||
mkdir upload
|
||||
mkdir upload/cmake
|
||||
cp build/compile_commands.json upload/cmake
|
||||
mkdir upload/cmake/libtorrent
|
||||
cp libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qBittorrent-CI_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}
|
||||
path: |
|
||||
build/qbittorrent.app
|
||||
build/qbittorrent-nox.app
|
||||
name: build-info_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
||||
path: upload
|
||||
|
94
.github/workflows/ci_ubuntu.yaml
vendored
94
.github/workflows/ci_ubuntu.yaml
vendored
@@ -7,78 +7,96 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
libt_version: ["v1.2.12"]
|
||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||
fail-fast: false
|
||||
matrix:
|
||||
libt_version: ["2.0.5", "1.2.15"]
|
||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||
qt_version: ["5.15.2", "6.2.0"]
|
||||
exclude:
|
||||
- libt_version: "1.2.15"
|
||||
qt_version: "6.2.0"
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup ccache
|
||||
uses: hendrikmuhs/ccache-action@v1
|
||||
with:
|
||||
key: ${{ runner.os }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install \
|
||||
build-essential cmake git ninja-build pkg-config \
|
||||
libssl-dev libgeoip-dev zlib1g-dev \
|
||||
libboost-dev libboost-chrono-dev libboost-random-dev libboost-system-dev
|
||||
# sudo apt install libqt5svg5-dev qtbase5-dev qttools5-dev # the Qt version in the standard repositories is too old...
|
||||
build-essential cmake ninja-build pkg-config \
|
||||
libboost-dev libssl-dev zlib1g-dev
|
||||
|
||||
- name: Setup ccache
|
||||
uses: Chocobo1/setup-ccache-action@v1
|
||||
with:
|
||||
update_packager_index: false
|
||||
ccache_options: |
|
||||
max_size=2G
|
||||
|
||||
# this will be installed under /opt/qt515. CMake will still find it automatically without additional hints
|
||||
# to speed up the process, only the required components are installed rather than the full qt515-meta-full metapackage
|
||||
- name: Install Qt
|
||||
run: |
|
||||
sudo add-apt-repository ppa:beineri/opt-qt-5.15.2-focal
|
||||
sudo apt install \
|
||||
qt515base qt515svg qt515tools
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
version: ${{ matrix.qt_version }}
|
||||
|
||||
- name: Install libtorrent
|
||||
run: |
|
||||
git clone --branch ${{ matrix.libt_version }} --depth 1 https://github.com/arvidn/libtorrent.git
|
||||
git clone \
|
||||
--branch v${{ matrix.libt_version }} \
|
||||
--depth 1 \
|
||||
--recurse-submodules \
|
||||
https://github.com/arvidn/libtorrent.git
|
||||
cd libtorrent
|
||||
git submodule update --init --recursive
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
cmake \
|
||||
-B build \
|
||||
-G "Ninja" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-Ddeprecated-functions=OFF \
|
||||
--graphviz=cmake-build-dir/target_graph.dot
|
||||
-Ddeprecated-functions=OFF
|
||||
cmake --build build
|
||||
sudo cmake --install build
|
||||
|
||||
- name: Build qBittorrent
|
||||
- name: Build qBittorrent (Qt5)
|
||||
if: ${{ startsWith(matrix.qt_version, 5) }}
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
||||
cmake \
|
||||
-B build \
|
||||
-G "Ninja" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-D${{ matrix.qbt_gui }} \
|
||||
-DCMAKE_INSTALL_PREFIX="/usr" \
|
||||
-DVERBOSE_CONFIGURE=ON \
|
||||
--graphviz=build/target_graph.dot
|
||||
-D${{ matrix.qbt_gui }}
|
||||
cmake --build build
|
||||
DESTDIR="qbittorrent" cmake --install build
|
||||
|
||||
- name: Install qBittorrent
|
||||
run: sudo cmake --install build
|
||||
- name: Build qBittorrent (Qt6)
|
||||
if: ${{ startsWith(matrix.qt_version, 6) }}
|
||||
run: |
|
||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
||||
cmake \
|
||||
-B build \
|
||||
-G "Ninja" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-DCMAKE_INSTALL_PREFIX="/usr" \
|
||||
-DQT6=ON \
|
||||
-DVERBOSE_CONFIGURE=ON \
|
||||
-D${{ matrix.qbt_gui }}
|
||||
cmake --build build
|
||||
DESTDIR="qbittorrent" cmake --install build
|
||||
|
||||
- name: Prepare build artifacts
|
||||
run: |
|
||||
mkdir upload
|
||||
mkdir upload/cmake
|
||||
cp build/compile_commands.json upload/cmake
|
||||
mkdir upload/cmake/libtorrent
|
||||
cp libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qBittorrent-CI_ubuntu-20.04-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}
|
||||
path: |
|
||||
build/compile_commands.json
|
||||
build/install_manifest.txt
|
||||
build/target_graph.dot
|
||||
build/qbittorrent
|
||||
build/qbittorrent-nox
|
||||
libtorrent/cmake-build-dir/compile_commands.json
|
||||
libtorrent/cmake-build-dir/target_graph.dot
|
||||
name: build-info_ubuntu-20.04-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
||||
path: upload
|
||||
|
115
.github/workflows/ci_windows.yaml
vendored
115
.github/workflows/ci_windows.yaml
vendored
@@ -4,12 +4,24 @@ on: [pull_request, push]
|
||||
jobs:
|
||||
ci:
|
||||
name: Build
|
||||
runs-on: windows-2019
|
||||
runs-on: windows-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
libt_version: ["2.0.5", "1.2.15"]
|
||||
|
||||
env:
|
||||
boost_path: "${{ github.workspace }}/../boost"
|
||||
libtorrent_path: "${{ github.workspace }}/libtorrent"
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup devcmd
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
|
||||
- name: Install build tools
|
||||
run: |
|
||||
choco install ninja
|
||||
@@ -23,9 +35,9 @@ jobs:
|
||||
doNotUpdateVcpkg: true # the preinstalled vcpkg is updated regularly
|
||||
setupOnly: true
|
||||
|
||||
# tell vcpkg to only build Release variants of the dependencies
|
||||
- name: Configure vcpkg triplet overlay
|
||||
- name: Install dependencies from vcpkg
|
||||
run: |
|
||||
# tell vcpkg to only build Release variants of the dependencies
|
||||
New-Item `
|
||||
-Path "${{ github.workspace }}" `
|
||||
-Name "triplets_overlay" `
|
||||
@@ -36,17 +48,10 @@ jobs:
|
||||
Add-Content `
|
||||
"${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake" `
|
||||
-Value "set(VCPKG_BUILD_TYPE release)"
|
||||
|
||||
# clear buildtrees after each package installation to reduce disk space requirements
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
# clear buildtrees after each package installation to reduce disk space requirements
|
||||
$packages = `
|
||||
"boost-circular-buffer:x64-windows-static-release",
|
||||
"libtorrent:x64-windows-static-release",
|
||||
"qt5-base:x64-windows-static-release",
|
||||
"qt5-svg:x64-windows-static-release",
|
||||
"qt5-tools:x64-windows-static-release",
|
||||
"qt5-winextras:x64-windows-static-release"
|
||||
"openssl:x64-windows-static-release",
|
||||
"zlib:x64-windows-static-release"
|
||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe upgrade `
|
||||
--overlay-triplets="${{ github.workspace }}/triplets_overlay" `
|
||||
--no-dry-run
|
||||
@@ -55,31 +60,95 @@ jobs:
|
||||
--clean-after-build `
|
||||
$packages
|
||||
|
||||
# this is necessary to correctly find and use cl.exe with the Ninja generator for now
|
||||
- name: Setup devcmd
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: Install boost
|
||||
run: |
|
||||
aria2c `
|
||||
"https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.7z" `
|
||||
-d "${{ runner.temp }}" `
|
||||
-o "boost.7z"
|
||||
7z x "${{ runner.temp }}/boost.7z" -o"${{ github.workspace }}/.."
|
||||
move "${{ github.workspace }}/../boost_*" "${{ env.boost_path }}"
|
||||
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
version: "5.15.2"
|
||||
|
||||
- name: Install libtorrent
|
||||
run: |
|
||||
git clone `
|
||||
--branch v${{ matrix.libt_version }} `
|
||||
--depth 1 `
|
||||
--recurse-submodules `
|
||||
https://github.com/arvidn/libtorrent.git
|
||||
cd libtorrent
|
||||
cmake `
|
||||
-B build `
|
||||
-G "Ninja" `
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
|
||||
-DCMAKE_INSTALL_PREFIX="${{ env.libtorrent_path }}" `
|
||||
-DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
|
||||
-DBOOST_ROOT="${{ env.boost_path }}" `
|
||||
-DBUILD_SHARED_LIBS=OFF `
|
||||
-Ddeprecated-functions=OFF `
|
||||
-Dstatic_runtime=ON `
|
||||
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release
|
||||
cmake --build build
|
||||
cmake --install build
|
||||
|
||||
- name: Build qBittorrent
|
||||
run: |
|
||||
lupdate -extensions c,cpp,h,hpp,ui .
|
||||
cmake `
|
||||
-B build `
|
||||
-G "Ninja" `
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
|
||||
-DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
|
||||
-DBOOST_ROOT="${{ env.boost_path }}" `
|
||||
-DLibtorrentRasterbar_DIR="${{ env.libtorrent_path }}/lib/cmake/LibtorrentRasterbar" `
|
||||
-DMSVC_RUNTIME_DYNAMIC=OFF `
|
||||
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release `
|
||||
-DVERBOSE_CONFIGURE=ON `
|
||||
--graphviz=build/target_graph.dot
|
||||
cmake --build build
|
||||
|
||||
- name: Prepare build artifacts
|
||||
run: |
|
||||
mkdir upload
|
||||
copy build/qbittorrent.exe upload
|
||||
copy build/qbittorrent.pdb upload
|
||||
copy dist/windows/qt.conf upload
|
||||
# runtimes
|
||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Core.dll" upload
|
||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Gui.dll" upload
|
||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Network.dll" upload
|
||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Sql.dll" upload
|
||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Svg.dll" upload
|
||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Widgets.dll" upload
|
||||
copy "${{ env.Qt5_DIR }}/bin/Qt5WinExtras.dll" upload
|
||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Xml.dll" upload
|
||||
mkdir upload/plugins/iconengines
|
||||
copy "${{ env.Qt5_DIR }}/plugins/iconengines/qsvgicon.dll" upload/plugins/iconengines
|
||||
mkdir upload/plugins/imageformats
|
||||
copy "${{ env.Qt5_DIR }}/plugins/imageformats/qico.dll" upload/plugins/imageformats
|
||||
copy "${{ env.Qt5_DIR }}/plugins/imageformats/qsvg.dll" upload/plugins/imageformats
|
||||
mkdir upload/plugins/platforms
|
||||
copy "${{ env.Qt5_DIR }}/plugins/platforms/qwindows.dll" upload/plugins/platforms
|
||||
mkdir upload/plugins/sqldrivers
|
||||
copy "${{ env.Qt5_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/plugins/sqldrivers
|
||||
mkdir upload/plugins/styles
|
||||
copy "${{ env.Qt5_DIR }}/plugins/styles/qwindowsvistastyle.dll" upload/plugins/styles
|
||||
# cmake additionals
|
||||
mkdir upload/cmake
|
||||
copy build/compile_commands.json upload/cmake
|
||||
copy build/target_graph.dot upload/cmake
|
||||
mkdir upload/cmake/libtorrent
|
||||
copy libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qBittorrent-CI_Windows-x64
|
||||
path: |
|
||||
build/compile_commands.json
|
||||
build/qbittorrent.exe
|
||||
build/qbittorrent.pdb
|
||||
build/target_graph.dot
|
||||
dist/windows/qt.conf
|
||||
name: qBittorrent-CI_Windows-x64_libtorrent-${{ matrix.libt_version }}
|
||||
path: upload
|
||||
|
74
.github/workflows/coverity-scan.yml
vendored
Normal file
74
.github/workflows/coverity-scan.yml
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
name: Coverity Scan
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 1 * *' # Monthly (1st day of month at midnight)
|
||||
workflow_dispatch: # Mainly for testing. Don't forget the Coverity usage limits.
|
||||
|
||||
jobs:
|
||||
coverity_scan:
|
||||
name: Scan
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install \
|
||||
build-essential cmake ninja-build pkg-config \
|
||||
libboost-dev libssl-dev zlib1g-dev
|
||||
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v2
|
||||
with:
|
||||
version: "5.15.2"
|
||||
|
||||
- name: Install libtorrent
|
||||
run: |
|
||||
git clone \
|
||||
--branch "v2.0.5" \
|
||||
--depth 1 \
|
||||
--recurse-submodules \
|
||||
https://github.com/arvidn/libtorrent.git
|
||||
cd libtorrent
|
||||
cmake \
|
||||
-B build \
|
||||
-G "Ninja" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-Ddeprecated-functions=OFF
|
||||
cmake --build build
|
||||
sudo cmake --install build
|
||||
|
||||
- name: Download Coverity Build Tool
|
||||
run: |
|
||||
wget \
|
||||
-q \
|
||||
https://scan.coverity.com/download/linux64 \
|
||||
--post-data "token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=qbittorrent%2FqBittorrent" \
|
||||
-O coverity_tool.tgz
|
||||
mkdir coverity_tool
|
||||
tar xzf coverity_tool.tgz --strip 1 -C coverity_tool
|
||||
|
||||
- name: Build qBittorrent
|
||||
run: |
|
||||
cmake \
|
||||
-B build \
|
||||
-G "Ninja" \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DGUI=ON \
|
||||
-DVERBOSE_CONFIGURE=ON
|
||||
export PATH="$(pwd)/coverity_tool/bin:$PATH"
|
||||
cov-build --dir cov-int cmake --build build
|
||||
|
||||
- name: Submit the result to Coverity Scan
|
||||
run: |
|
||||
tar caf qbittorrent.xz cov-int
|
||||
curl \
|
||||
--form token="${{ secrets.COVERITY_SCAN_TOKEN }}" \
|
||||
--form email=sledgehammer999@qbittorrent.org \
|
||||
--form file=@qbittorrent.xz \
|
||||
--form version="$(git rev-parse --short HEAD)" \
|
||||
--form description="master" \
|
||||
https://scan.coverity.com/builds?project=qbittorrent%2FqBittorrent
|
85
.github/workflows/file_health.sh
vendored
85
.github/workflows/file_health.sh
vendored
@@ -1,85 +0,0 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
set -o nounset
|
||||
|
||||
# Assumption: file names don't contain `:` (for the `cut` invocation).
|
||||
# Safe to assume, as such a character in a filename would cause trouble on Windows, a platform we support
|
||||
|
||||
# any regression turn this non-zero
|
||||
regressions=0
|
||||
|
||||
# exclusions (these are just grep extended regular expressions to match against paths relative to the root of the repository)
|
||||
exclusions_nonutf8='(.*(7z|gif|ic(ns|o)|png|qm|zip))'
|
||||
exclusions_bom='src/base/unicodestrings.h'
|
||||
exclusions_tw='(*.ts)|src/webui/www/private/scripts/lib/*'
|
||||
exclusions_trailing_newline='configure'
|
||||
exclusions_no_lf='(*.ts)|(.*svg)|compile_commands.json|src/webui/www/private/scripts/lib/*'
|
||||
|
||||
echo -e "\n*** Detect files not encoded in UTF-8 ***\n"
|
||||
|
||||
find . -path ./build -prune -false -o -path ./.git -prune -false -o -type f -exec file --mime {} \; | sort \
|
||||
| grep -v -e "charset=us-ascii" -e "charset=utf-8" | cut -d ":" -f 1 \
|
||||
| grep -E -v -e "${exclusions_nonutf8}" \
|
||||
| tee >(echo -e "--> Files not encoded in UTF-8: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect files encoded in UTF-8 with BOM ***\n"
|
||||
|
||||
grep --exclude-dir={.git,build} -rIl $'\xEF\xBB\xBF' | sort \
|
||||
| grep -E -v -e "${exclusions_bom}" \
|
||||
| tee >(echo -e "--> Files encoded in UTF-8 with BOM: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect usage of CR byte ***\n"
|
||||
|
||||
grep --exclude-dir={.git,build} -rIlU $'\x0D' | sort \
|
||||
| tee >(echo -e "--> Usage of CR byte: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect trailing whitespace in lines ***\n"
|
||||
|
||||
grep --exclude-dir={.git,build} -rIl "[[:blank:]]$" | sort \
|
||||
| grep -E -v -e "${exclusions_tw}" \
|
||||
| tee >(echo -e "--> Trailing whitespace in lines: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0';
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect too many trailing newlines ***\n"
|
||||
|
||||
find . -path ./build -prune -false -o -path ./.git -prune -false -o -type f -exec file --mime {} \; | sort \
|
||||
| grep -e "charset=us-ascii" -e "charset=utf-8" | cut -d ":" -f 1 \
|
||||
| grep -E -v -e "${exclusions_trailing_newline}" \
|
||||
| xargs -L1 -I my_input bash -c 'test "$(tail -q -c2 "my_input" | hexdump -C | grep "0a 0a")" && echo "my_input"' \
|
||||
| tee >(echo -e "--> Too many trailing newlines: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect no trailing newline ***\n"
|
||||
|
||||
find . -path ./build -prune -false -o -path ./.git -prune -false -o -type f -exec file --mime {} \; | sort \
|
||||
| grep -e "charset=us-ascii" -e "charset=utf-8" | cut -d ":" -f 1 \
|
||||
| grep -E -v -e "${exclusions_no_lf}" \
|
||||
| xargs -L1 -I my_input bash -c 'test "$(tail -q -c1 "my_input" | hexdump -C | grep "0a")" || echo "my_input"' \
|
||||
| tee >(echo -e "--> No trailing newline: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect translation closing tag in new line ***\n"
|
||||
|
||||
grep --exclude-dir={.git,build} -nri "^</translation>" | sort \
|
||||
| cut -d ":" -f 1,2 \
|
||||
| tee >(echo -e "--> Translation closing tag in new line: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
if [ "$regressions" -ne 0 ]; then
|
||||
regressions=1
|
||||
echo "\nFile health regressions found. Please fix them (or add them as exclusions)."
|
||||
else
|
||||
echo "All OK, no file health regressions found."
|
||||
fi
|
||||
|
||||
exit $regressions;
|
22
.github/workflows/stale_bot.yaml
vendored
Normal file
22
.github/workflows/stale_bot.yaml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: Stale bot
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Mark and close stale PRs
|
||||
uses: actions/stale@v4
|
||||
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."
|
||||
close-pr-message: "This PR was closed because it has been stalled for some time with no activity."
|
||||
days-before-stale: -1 # avoid marking issues
|
||||
days-before-pr-stale: 60
|
||||
days-before-close: -1 # avoid closing issues
|
||||
days-before-pr-close: 7
|
||||
exempt-all-pr-assignees: true # avoid stale for all PR with assignees
|
||||
exempt-all-pr-milestones: true # avoid stale for all PR with milestones
|
||||
operations-per-run: 200
|
55
.pre-commit-config.yaml
Normal file
55
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,55 @@
|
||||
repos:
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: check-translation-tag
|
||||
name: Check newline characters in <translation> tag
|
||||
entry: .github/workflows/check_translation_tag.py
|
||||
language: script
|
||||
types_or:
|
||||
- ts
|
||||
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks.git
|
||||
rev: v4.0.1
|
||||
hooks:
|
||||
- id: check-json
|
||||
name: Check JSON files
|
||||
|
||||
- id: check-yaml
|
||||
name: Check YAML files
|
||||
|
||||
- id: fix-byte-order-marker
|
||||
name: Check file encoding (UTF-8 without BOM)
|
||||
exclude: |
|
||||
(?x)^(
|
||||
src/base/unicodestrings.h
|
||||
)$
|
||||
|
||||
- id: mixed-line-ending
|
||||
name: Check line ending character (LF)
|
||||
args: ["--fix=lf"]
|
||||
exclude: |
|
||||
(?x)^(
|
||||
compile_commands.json |
|
||||
src/webui/www/private/scripts/lib/.*
|
||||
)$
|
||||
|
||||
- id: end-of-file-fixer
|
||||
name: Check trailing newlines
|
||||
exclude: |
|
||||
(?x)^(
|
||||
compile_commands.json |
|
||||
configure |
|
||||
src/webui/www/private/scripts/lib/.*
|
||||
)$
|
||||
exclude_types:
|
||||
- svg
|
||||
- ts
|
||||
|
||||
- id: trailing-whitespace
|
||||
name: Check trailing whitespaces
|
||||
exclude: |
|
||||
(?x)^(
|
||||
src/webui/www/private/scripts/lib/.*
|
||||
)$
|
||||
exclude_types:
|
||||
- ts
|
@@ -12,15 +12,18 @@ project(qBittorrent
|
||||
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
||||
# version requirements - older versions may work, but you are on your own
|
||||
set(minBoostVersion 1.65)
|
||||
set(minQtVersion 5.11)
|
||||
set(minQt5Version 5.15.2)
|
||||
set(minQt6Version 6.2)
|
||||
set(minOpenSSLVersion 1.1.1)
|
||||
set(minLibtorrentVersion 1.2.12)
|
||||
set(minLibtorrent1Version 1.2.14)
|
||||
set(minLibtorrentVersion 2.0.4)
|
||||
set(minZlibVersion 1.2.11)
|
||||
|
||||
# features (some are platform-specific)
|
||||
include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19
|
||||
include(FeatureSummary)
|
||||
include(FeatureOptionsSetup)
|
||||
feature_option(QT6 "Use Qt6" OFF)
|
||||
feature_option(STACKTRACE "Enable stacktraces" ON)
|
||||
feature_option(GUI "Build GUI application" ON)
|
||||
feature_option(WEBUI "Enables built-in HTTP server for headless use" ON)
|
||||
|
@@ -6,22 +6,14 @@ Read the respective section to find out more.
|
||||
### Table Of Contents
|
||||
|
||||
* **[Bug reporting etiquette](#bug-reporting-etiquette)**
|
||||
|
||||
|
||||
* **[Submitting an issue/bug report](#submitting-an-issuebug-report)**
|
||||
* [What is an actual bug report?](#what-is-an-actual-bug-report)
|
||||
* [Before submitting a bug report](#before-submitting-a-bug-report)
|
||||
* [Steps to ensure a good bug report](#steps-to-ensure-a-good-bug-report)
|
||||
|
||||
|
||||
* **[Suggesting enhancements/feature requests](#suggesting-enhancementsfeature-requests)**
|
||||
* [Before submitting an enhancement/feature request](#before-submitting-an-enhancementfeature-request)
|
||||
* [Steps to ensure a good enhancement/feature suggestion](#steps-to-ensure-a-good-enhancementfeature-suggestion)
|
||||
|
||||
|
||||
* **[Opening a pull request](#opening-a-pull-request)**
|
||||
* [Must read](#must-read)
|
||||
* [Good to know](#good-to-know)
|
||||
|
||||
# Bug reporting etiquette
|
||||
|
||||
@@ -194,28 +186,26 @@ Following these guidelines helps maintainers and the community understand your s
|
||||
|
||||
# Opening a pull request
|
||||
|
||||
### Must read
|
||||
* Read our [**coding guidelines**][coding-guidelines-url]. There are some scripts to help you: [uncrustify script][uncrustify-script-url], [astyle script][astyle-script-url], [(related thread)][coding-guidelines-thread-url].
|
||||
* Keep the title **short** and provide a **clear** description about what your pull request does.
|
||||
* Provide **screenshots** for UI related changes.
|
||||
* Keep your git commit history **clean** and **precise.** Refer to the section about "Git commit messages" in the [**coding guidelines**][coding-guidelines-url].
|
||||
* If your commit fixes a reported issue (for example #4134), add the following message to the commit `Closes #4134.`. Example [here][commit-message-fix-issue-example-url].
|
||||
* Consult [coding guidelines][coding-guidelines-url] first. If you are working on translation/i18n, read ["How to translate qBittorrent"][how-to-translate-url].
|
||||
* Keep your git commit history clean.
|
||||
* Refer to the section about ["Git commit messages"][coding-guidelines-git-commit-message-url] in the coding guidelines.
|
||||
* When merge conflicts arise, do `git rebase <target_branch_name>` and fix the conflicts, don't do `git pull`. Here is a good explanation: [merging-vs-rebasing][merging-vs-rebasing-url].
|
||||
* Keep pull request title concise and provide motivation and "what it does" in the pull request description area. Make it easy to read and understand.
|
||||
* Provide screenshots for UI related changes.
|
||||
* If your commit addresses a reported issue (for example issue #8454), append the following text to the commit body `Closes #8454.`. Example [commit][commit-message-fix-issue-example-url].
|
||||
* Search [pull request list][pull-request-list-url] first. Others might have already implemented your idea (or got rejected already).
|
||||
|
||||
### Good to know
|
||||
* **Search** pull request history! Others might have already implemented your idea and it is waiting to be merged (or got rejected already). Save your precious time by doing a search first.
|
||||
* When resolving merge conflicts, do `git rebase <target_branch_name>`, don't do `git pull`. Then you can start fixing the conflicts. Here is a good explanation: [link][merging-vs-rebasing-url].
|
||||
|
||||
[astyle-script-url]: https://gist.github.com/Chocobo1/539cee860d1eef0acfa6
|
||||
[attachments-howto-url]: https://help.github.com/articles/file-attachments-on-issues-and-pull-requests
|
||||
[builds-url]: https://sourceforge.net/projects/qbittorrent/files/
|
||||
[coding-guidelines-url]: https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md
|
||||
[coding-guidelines-thread-url]: https://github.com/qbittorrent/qBittorrent/issues/2192
|
||||
[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
|
||||
[forum-url]: http://forum.qbittorrent.org/
|
||||
[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
|
||||
[merging-vs-rebasing-url]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing
|
||||
[pull-request-list-url]: https://github.com/qbittorrent/qBittorrent/pulls
|
||||
[python-url]: https://www.python.org/
|
||||
[releases-url]: https://github.com/qbittorrent/qBittorrent/releases
|
||||
[search-plugins-url]: https://github.com/qbittorrent/search-plugins
|
||||
[uncrustify-script-url]: https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/uncrustify.cfg
|
||||
[wiki-url]: https://github.com/qbittorrent/qBittorrent/wiki
|
||||
[builds-url]: https://sourceforge.net/projects/qbittorrent/files/
|
||||
|
209
Changelog
209
Changelog
@@ -1,3 +1,91 @@
|
||||
Tue Mar 22 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.2
|
||||
- FEATURE: Allow to limit max memory working set size (glassez)
|
||||
- BUGFIX: Fix UI crash when torrent is in a non-existent category (Kevin Cox)
|
||||
- BUGFIX: Correctly handle changing of global save paths (glassez)
|
||||
- BUGFIX: Disable performance alert (Chocobo1)
|
||||
- BUGFIX: Prevent loading resume data with inconsistent ID (glassez)
|
||||
- BUGFIX: Properly handle metadata download for an existing torrent (glassez)
|
||||
- BUGFIX: Prevent crash when open torrent destination folder (glassez)
|
||||
- WINDOWS: NSIS: Update Spanish, Spanish International and French translations(Juanjo Jiménez, RqndomHax)
|
||||
|
||||
Tue Feb 15 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.1
|
||||
- FEATURE: Restore all torrent settings to the torrent's main context menu (thalieht)
|
||||
- FEATURE: Add confirmation for enabling Auto TMM from context menu (thalieht)
|
||||
- FEATURE: Add tooltip to Automatic Torrent Management context menu action (thalieht)
|
||||
- FEATURE: Add Select All/None buttons in new torrent dialog (thalieht)
|
||||
- BUGFIX: Keep "torrent info" alive while generate .torrent file (glassez)
|
||||
- BUGFIX: Correctly handle Auto TMM in Torrent Files Watcher (glassez)
|
||||
- BUGFIX: Correctly track the root folder name change (glassez)
|
||||
- BUGFIX: Various fixes to the moving torrent code (glassez)
|
||||
- BUGFIX: Update the torrent's download path field when changing category (thalieht)
|
||||
- BUGFIX: Correctly handle received metadata (glassez)
|
||||
- BUGFIX: Store hybrid torrents using legacy filenames (glassez)
|
||||
- BUGFIX: Open correct directory when clicked on Browse button (glassez)
|
||||
- BUGFIX: Fix crash when shutting down and clicing on system tray icon (Chocobo1)
|
||||
- BUGFIX: Fix "Free space on disk" in new torrent dialog (thalieht)
|
||||
- BUGFIX: Optimize completed files handling (Prince Gupta)
|
||||
- BUGFIX: Migrate proxy settings (sledgehammer999)
|
||||
- BUGFIX: Try to recover missing categories (glassez)
|
||||
- WEBUI: WebAPI: fix wrong key used for categories (Chocobo1)
|
||||
- WEBUI: Remove hack for outdated IE 6 browser (Chocobo1)
|
||||
- RSS: Correctly handle XML parsing errors (glassez)
|
||||
|
||||
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 Qt6 (glassez)
|
||||
- FEATURE: Expose libtorrent hashing_threads settings (Anton Bershanskiy)
|
||||
- FEATURE: Add "Notification timeout" option (kevtechxx)
|
||||
- FEATURE: Add `connection_speed` to advanced settings (Chocobo1)
|
||||
- FEATURE: Announce to all trackers if IP changed (#15001) (zhuangzi926)
|
||||
- FEATURE: Add tooltip for various columns (Chocobo1)
|
||||
- FEATURE: Add context menu to toggle content tab columns (#15164) (AbeniMatteo)
|
||||
- FEATURE: Add filter "Checking" to side panel (#15166) (AbeniMatteo)
|
||||
- FEATURE: Add "Forced metadata downloading" state (#15185) (AbeniMatteo)
|
||||
- FEATURE: Remember last viewed page in Options dialog (#15230) (Chocobo1)
|
||||
- FEATURE: Add tooltip to listening port spinbox (Chocobo1)
|
||||
- FEATURE: Add "Skip hash check" option for watched folders (glassez)
|
||||
- FEATURE: Add "Show torrent options" double-click action (glassez)
|
||||
- FEATURE: Allow setting temp folder per torrent/catergory (glassez)
|
||||
- FEATURE: Support folder based UI Themes (Prince Gupta)
|
||||
- BUGFIX: Save "resume data" once file priority is changed (glassez)
|
||||
- BUGFIX: Show priority menu at top level if there is no other in Add New Torrent dialog (FozzeY)
|
||||
- BUGFIX: Capitalize "peer flags" descriptions (Chocobo1)
|
||||
- BUGFIX: Reorder peer flags (Chocobo1)
|
||||
- BUGFIX: Show "last activity" value under all circumstances (Chocobo1)
|
||||
- BUGFIX: Elide text from the right for all columns' header (smigii)
|
||||
- BUGFIX: Fix startup with different profiles (jagannatharjun)
|
||||
- BUGFIX: Move a few torrent context menu actions into "Torrent options" dialog (thalieht)
|
||||
- BUGFIX: Allow deselecting radio buttons in "Torrent options" for mixed torrents (thalieht)
|
||||
- BUGFIX: Apply file priority changes correctly (a-sum-duma, Chocobo1)
|
||||
- BUGFIX: Use proper string for Korean language (OctopusET)
|
||||
- BUGFIX: Disable "add peers" menu items instead of hiding it (Chocobo1)
|
||||
- BUGFIX: Disable system tray icon menu when app is exiting (Chocobo1)
|
||||
- BUGFIX: Show GUI lock icon after system tray icon is initialized (Chocobo1)
|
||||
- BUGFIX: Apply selected layout to displayed torrent content in "Add New Torrent" dialog (glassez)
|
||||
- WEBUI: Add reverse proxy source IP resolution (#15047) (HiFiPhile)
|
||||
- WEBUI: Support navigating UI tables with arrow keys (Thomas Piccirello)
|
||||
- WEBUI: Support expanding/collapsing UI folders with arrow keys (Thomas Piccirello)
|
||||
- WEBUI: Support sorting UI tables via touch (#15205) (Tom Piccirello)
|
||||
- WEBUI: Add pieces progress bar to General tab (Jesse Smick)
|
||||
- WEBUI: Update authors page (Chocobo1)
|
||||
- WEBUI: Set icon sizes attribute (Daniel Aleksandersen)
|
||||
- WEBUI: Add meta application name (Daniel Aleksandersen)
|
||||
- WEBUI: Sort WebUI language selection values (Chocobo1)
|
||||
- WEBUI: Use correct URL scheme in user prompt when HTTPS is enabled (Chocobo1)
|
||||
- RSS: Stick Unread row to top in RSS feed list (Prince Gupta)
|
||||
- RSS: Correctly use fallback icons for RSS feed in GUI (jagannatharjun)
|
||||
- SEARCH: Add context menu for tabs in search widget (#14926) (Anton)
|
||||
- SEARCH: Add more download options to torrent search result right-click menu (a-sum-duma)
|
||||
- WINDOWS: Add windows-clang support (#15115) (Biswapriyo Nath)
|
||||
- WINDOWS: Update python installer URL for Windows (xavier2k6)
|
||||
- WINDOWS: NSIS: Update Simplified Chinese translation (Losiki)
|
||||
- LINUX: Prolong wait time for shutdown for qbittorrent-nox (Chocobo1)
|
||||
- LINUX: Install vector program icon (Chocobo1)
|
||||
- LINUX: Add detection for OpenBSD, Haiku in configure script (Chocobo1)
|
||||
- MACOS: Update Mac icons for Big Sur (17jiangz1)
|
||||
- EXPERIMENTAL: Setting to store/load fastresume/torrent files in an SQLite database (glassez)
|
||||
- OTHER: Many internal code refactorings and bug fixing by many people
|
||||
|
||||
Sun Oct 31 2021 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.9
|
||||
- BUGFIX: Fix "no action" option on torrent double click (Jose M. Abuin)
|
||||
- BUGFIX: Fix broken behavior of "priority by shown file order" (Chocobo1)
|
||||
@@ -217,6 +305,127 @@ Sun Oct 18 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.0
|
||||
- OTHER: Support for libtorrent 1.1.x is dropped (Chocobo1)
|
||||
- OTHER: Many code cleanups and improvements (FranciscoPombal, Chocobo1, glassez)
|
||||
|
||||
Sat Apr 25 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.5
|
||||
- BUGFIX: Fix crash when torrent is deleted on limit reached (glassez)
|
||||
- BUGFIX: Register datatype properly (Chocobo1)
|
||||
- WEBUI: Add ability to send custom HTTP headers (Chocobo1)
|
||||
- WEBUI: Expand RSS related API (Sepro)
|
||||
- WINDOWS: Installer: Update german translation (schnurlos)
|
||||
|
||||
Wed Apr 22 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.4
|
||||
- BUGFIX: Fix sub-sorting of Transfer list (glassez)
|
||||
- BUGFIX: Fix wrong logic that disables "prevent sleeping" timer (Chocobo1)
|
||||
- BUGFIX: Set disk cache size for older libtorrent versions (NotTsunami)
|
||||
- BUGFIX: Sort locale language list (Chocobo1)
|
||||
- BUGFIX: Remove white outline around mascot.png (adem)
|
||||
- BUGFIX: Various fixes in configuring the chosen network interface and not leaking the IP (Raif Atef, an0n666)
|
||||
- BUGFIX: Save "resume data" when torrent storage is moved (glassez)
|
||||
- BUGFIX: Avoid holding encoded resume data in memory (Chocobo1)
|
||||
- BUGFIX: Fix date format for "Last seen complete" (Chocobo1)
|
||||
- BUGFIX: Remove deprecated strict super seeding mode from advanced settings (an0n666)
|
||||
- BUGFIX: Change default stop_tracker_timeout settings (an0n666)
|
||||
- BUGFIX: Convert the Log widget to use custom View/Model (jagannatharjun)
|
||||
- BUGFIX: Change default upload slot choking limits (an0n666)
|
||||
- BUGFIX: Don't uncheck Authentication checkbox when changing proxy type (thalieht)
|
||||
- BUGFIX: Reduce ambiguity for selecting tray icons (Chocobo1)
|
||||
- WEBUI: Fix unable to add multiple peers in WebUI (Sepro)
|
||||
- WEBUI: Fix UPnP lease duration get/set (NotTsunami)
|
||||
- SEARCH: Detect python3 executable on Windows (József Sallai)
|
||||
|
||||
Wed Apr 01 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.3
|
||||
- FEATURE: Add logging for SOCKS5 proxy errors (Chocobo1)
|
||||
- FEATURE: Add UPnP lease duration advanced option (NotTsunami)
|
||||
- BUGFIX: Allow to translate error messages (Chocobo1)
|
||||
- BUGFIX: Don't round scaling factor (Nick Korotysh)
|
||||
- BUGFIX: Save log file in UTF-8 encoding (Chocobo1)
|
||||
- BUGFIX: Avoid log file excessive flushing (Chocobo1)
|
||||
- BUGFIX: Fix regression when fastresume contains network path (Tester798)
|
||||
- BUGFIX: Fix broken UNC paths in fastresumes on Windows (sledgehammer999)
|
||||
- BUGFIX: Prevent multiple instances for the same app config (glassez)
|
||||
- BUGFIX: Fix unexpected torrent resume after app restart with libtorrent 1.1.x (glassez)
|
||||
- WEBUI: Add alt and title tags for WebUI footer (LameLemon)
|
||||
- WINDOWS: Installer: Update Finnish translation (Roope Jukkara)
|
||||
- WINDOWS: Installer: Update Japanese translation (maboroshin)
|
||||
- WINDOWS: Installer: Update Turkish translation (Burak Yavuz)
|
||||
- WINDOWS: Installer: Update Russian translation (Andrei Stepanov)
|
||||
|
||||
Tue Mar 24 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.2
|
||||
- FEATURE: Allow transfer list text color changes through QSS (Prince Gupta)
|
||||
- FEATURE: Option to show console when external program is run (sledgehammer999)
|
||||
- FEATURE: Rename Country column to "Country / Region" (Thomas Piccirello)
|
||||
- FEATURE: Change the defaults of some settings (FranciscoPombal)
|
||||
- FEATURE: Refactored Transfer List code to allow theming. As a sideffect the row height has more padding. (glassez)
|
||||
- FEATURE: Allow double-click in preview dialog (thalieht)
|
||||
- FEATURE: Expose stop_tracker_timeout in advanced settings (an0n666)
|
||||
- FEATURE: Add piece_extent_affinity to AdvancedSettings (FranciscoPombal)
|
||||
- FEATURE: Reorganize UI theme selection (Prince Gupta)
|
||||
- FEATURE: Show any multiple connections from the same IP in peer list (thalieht)
|
||||
- FEATURE: Add stalled filters to GUI and Web API/UI (FranciscoPombal)
|
||||
- FEATURE: Use IP geolocation database by DB-IP instead of MaxMind (sledgehammer999)
|
||||
- FEATURE: Allow to save downloaded metadata as torrent file (glassez)
|
||||
- FEATURE: Allow single app instance per configuration (glassez)
|
||||
- PERFORMANCE: Move multiple torrents one by one (glassez)
|
||||
- BUGFIX: Disable Torrent Queue by default for new users (an0n666)
|
||||
- BUGFIX: Update free disk space label on Category change in Auto Mode (Medvedishce)
|
||||
- BUGFIX: Save resume data after recheck (glassez)
|
||||
- BUGFIX: Tracker is errored only if all local endpoints fail (sledgehammer999)
|
||||
- BUGFIX: Change placement of stop tracker timeout setting (An0n)
|
||||
- BUGFIX: Redesign torrent startup handling (glassez)
|
||||
- BUGFIX: Show "∞" instead of " -1" in Preferences (Sakib-Abrar)
|
||||
- BUGFIX: Improve code efficiency for reverse resolution of peers (Chocobo1)
|
||||
- BUGFIX: Handle HTTP redirection to magnet URI (glassez)
|
||||
- BUGFIX: Various fixes for portable mode (Tester798)
|
||||
- BUGFIX: Include resume folder path in exception message (Chocobo1)
|
||||
- BUGFIX: Change placeholder text in torrent list's filter (djt3)
|
||||
- BUGFIX: Improvements in the embedded tracker to be more spec compliant (FranciscoPombal)
|
||||
- BUGFIX: Improve the options tooltips (NotTsunami)
|
||||
- BUGFIX: Check if file exists in seed mode (an0n666)
|
||||
- BUGFIX: Delegate GUI scaling work to Qt (Nick Korotysh)
|
||||
- BUGFIX: Fix crash when renaming torrent contents (Chocobo1)
|
||||
- BUGFIX: Fix total connected peers count calculation (FranciscoPombal)
|
||||
- BUGFIX: Allow other keypresses in LogListWidget (NotTsunami)
|
||||
- BUGFIX: Disable Auto TMM when not using default savepath from monitored folder (thalieht)
|
||||
- WEBUI: Fix first row renaming in files tab (Denis)
|
||||
- WEBUI: Use SVG image for WebUI favicon (Nick Korotysh)
|
||||
- WEBUI: Inherit text color for filter list elements (Nick Korotysh)
|
||||
- WEBUI: Expose WebUI ban counter to users (Chocobo1)
|
||||
- WEBUI: Expose WebUI ban duration to users (Chocobo1)
|
||||
- WEBUI: Implement "Secure" flag for session cookie (FranciscoPombal)
|
||||
- WEBUI: Remove unused/deprecated option (FranciscoPombal)
|
||||
- WEBUI: Prevent excessive sync requests (FranciscoPombal)
|
||||
- WEBUI: Fix populating statistics window (FranciscoPombal)
|
||||
- WEBUI: Fix matching uncategorized torrents (FranciscoPombal)
|
||||
- WEBUI: Always allow whitespace in category names (FranciscoPombal)
|
||||
- SEARCH: Bump python version for new installation (Chocobo1)
|
||||
- SEARCH: Fix missing string (Chocobo1)
|
||||
- SEARCH: Drop python2 support (Chocobo1)
|
||||
- WINDOWS: Installer: Option to start qBittorrent on Windows start up (An0n)
|
||||
- WINDOWS: Installer: Improve Czech translation (slrslr)
|
||||
- WINDOWS: Installer: Update French translation (zywo)
|
||||
- WINDOWS: Installer: Update German translation (schnurlos)
|
||||
- WINDOWS: Installer: Update Japanese translation (maboroshin)
|
||||
- WINDOWS: Path length limitation is removed on Windows 10 1607 onwards (an0n666)
|
||||
|
||||
Wed Dec 18 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.1
|
||||
- FEATURE: Enable portable mode if "profile" directory exists (Tester798)
|
||||
- FEATURE: Enable "Apply rate limit to peers on LAN" option by default (Chocobo1)
|
||||
- BUGFIX: Sync translations from Transifex and run lupdate (sledgehammer999)
|
||||
- BUGFIX: Don't unnecessarily delete OS files in folders (sledgehammer999)
|
||||
- BUGFIX: Use the incomplete folder where appropriate (sledgehammer999)
|
||||
- BUGFIX: Align Properties tab bar correctly on window resize (Prince Gupta)
|
||||
- BUGFIX: Rework the listening IP/interface selection code (sledgehammer999)
|
||||
- BUGFIX: Fix inconsistent icon for deleting torrent (Chocobo1)
|
||||
- BUGFIX: Show torrent error message in transfer list (Chocobo1)
|
||||
- BUGFIX: Fix stuck in wrong torrent state (Chocobo1)
|
||||
- BUGFIX: Expand single-item folders in torrent content (warren)
|
||||
- WEBUI: Bump Web API version (sledgehammer999)
|
||||
- WEBUI: Add ability to rename torrent files from the WebUI (Thomas Piccirello)
|
||||
- WEBUI: Mention lack of HTTPS in WebUI magnet link warning (nl6720)
|
||||
- WEBUI: Fix HTML elements size in search tab (Chocobo1)
|
||||
- SEARCH: Fix incorrect translation displayed after language change (Chocobo1)
|
||||
- SEARCH: Fix missing translations in search plugins dialog (Chocobo1)
|
||||
- WINDOWS: Update russian translation of the installer (Andrei Stepanov)
|
||||
|
||||
Tue Dec 03 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.0
|
||||
- FEATURE: Libtorrent 1.2.x series are supported now (glassez)
|
||||
- FEATURE: Add OpenSSL version to GUI and stackdump (Chocobo1)
|
||||
|
14
INSTALL
14
INSTALL
@@ -5,20 +5,22 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
||||
|
||||
- Boost >= 1.65
|
||||
|
||||
- libtorrent-rasterbar >= 1.2.12 (by Arvid Norberg)
|
||||
* https://www.libtorrent.org/
|
||||
- libtorrent-rasterbar 1.2.14 - 1.2.x || 2.0.4 - 2.0.x
|
||||
* By Arvid Norberg, https://www.libtorrent.org/
|
||||
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||
|
||||
- OpenSSL >= 1.1.1
|
||||
|
||||
- Qt >= 5.12
|
||||
- Qt 5.15.2 - 5.x || 6.2.0 - 6.x
|
||||
|
||||
- zlib >= 1.2.11
|
||||
|
||||
- pkg-config (compile-time only on *nix systems)
|
||||
- pkg-config *
|
||||
* Compile-time only on *nix systems
|
||||
|
||||
- Python >= 3.5.0 (optional, runtime only)
|
||||
* Required by the internal search engine
|
||||
- Python >= 3.5.0
|
||||
* Optional, run-time only
|
||||
* Used by the bundled search engine
|
||||
|
||||
Dependency version numbers are bumped every once in a while to keep the range of properly tested configurations manageable, even if not strictly required to build.
|
||||
You may be able to build with older versions of (some of) the dependencies other than the minimum versions specified in the build scripts, but support for such builds is not provided - you are on your own.
|
||||
|
@@ -46,7 +46,7 @@ Please report any bug (or feature request) to:
|
||||
http://bugs.qbittorrent.org
|
||||
|
||||
Official IRC channel:
|
||||
`#qbittorrent on irc.libera.chat`
|
||||
[#qbittorrent on irc.libera.chat](ircs://irc.libera.chat:6697/qbittorrent)
|
||||
|
||||
------------------------------------------
|
||||
sledgehammer999 <sledgehammer999@qbittorrent.org>
|
||||
sledgehammer999 \<sledgehammer999@qbittorrent.org\>
|
||||
|
@@ -17,7 +17,7 @@ macro(qbt_common_config)
|
||||
)
|
||||
|
||||
target_compile_definitions(qbt_common_cfg INTERFACE
|
||||
QT_DEPRECATED_WARNINGS
|
||||
QT_DISABLE_DEPRECATED_BEFORE=0x050f02
|
||||
QT_NO_CAST_TO_ASCII
|
||||
QT_NO_CAST_FROM_BYTEARRAY
|
||||
QT_USE_QSTRINGBUILDER
|
||||
@@ -25,6 +25,12 @@ macro(qbt_common_config)
|
||||
$<$<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
|
||||
@@ -37,7 +43,7 @@ macro(qbt_common_config)
|
||||
)
|
||||
endif()
|
||||
|
||||
if ((CXX_COMPILER_ID STREQUAL "GNU") OR (CXX_COMPILER_ID STREQUAL "Clang") OR (CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||
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
|
||||
@@ -59,7 +65,7 @@ macro(qbt_common_config)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if ((CXX_COMPILER_ID STREQUAL "Clang") OR (CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||
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
|
||||
)
|
||||
@@ -79,6 +85,8 @@ macro(qbt_common_config)
|
||||
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
|
||||
@@ -88,4 +96,7 @@ macro(qbt_common_config)
|
||||
)
|
||||
endif()
|
||||
|
||||
if (LibtorrentRasterbar_VERSION VERSION_GREATER_EQUAL ${minLibtorrentVersion})
|
||||
target_compile_definitions(qbt_common_cfg INTERFACE QBT_USES_LIBTORRENT2)
|
||||
endif()
|
||||
endmacro(qbt_common_config)
|
||||
|
@@ -45,6 +45,9 @@ DEFINES += BOOST_SYSTEM_STATIC_LINK
|
||||
# Enable if linking dynamically against libtorrent
|
||||
#DEFINES += TORRENT_LINKING_SHARED
|
||||
|
||||
# Enable this if compiling with libtorrent 2.x
|
||||
#DEFINES += QBT_USES_LIBTORRENT2
|
||||
|
||||
# Enable stack trace support
|
||||
CONFIG += stacktrace
|
||||
|
||||
|
53
configure.ac
53
configure.ac
@@ -1,4 +1,4 @@
|
||||
AC_INIT([qbittorrent], [v4.3.9], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
||||
AC_INIT([qbittorrent], [v4.4.2], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
: ${CFLAGS=""}
|
||||
@@ -53,17 +53,32 @@ AC_ARG_ENABLE(qt-dbus,
|
||||
[enable_qt_dbus=yes])
|
||||
|
||||
# Detect OS
|
||||
AC_MSG_CHECKING([whether OS is FreeBSD])
|
||||
AS_IF([expr "$host_os" : ".*freebsd.*" > /dev/null],
|
||||
[AC_MSG_RESULT([yes])
|
||||
LIBS="-lexecinfo $LIBS"],
|
||||
[AC_MSG_RESULT([no])])
|
||||
AC_MSG_CHECKING([whether to enable specific tweaks for current host "$host_os"])
|
||||
case "$host_os" in
|
||||
*darwin*)
|
||||
AC_MSG_RESULT([yes])
|
||||
enable_qt_dbus=no
|
||||
;;
|
||||
|
||||
AC_MSG_CHECKING([whether OS is macOS])
|
||||
AS_IF([expr "$host_os" : ".*darwin.*" > /dev/null],
|
||||
[AC_MSG_RESULT([yes])
|
||||
enable_qt_dbus=no],
|
||||
[AC_MSG_RESULT([no])])
|
||||
*freebsd*)
|
||||
AC_MSG_RESULT([yes])
|
||||
LIBS="-lexecinfo $LIBS"
|
||||
;;
|
||||
|
||||
*haiku*)
|
||||
AC_MSG_RESULT([yes])
|
||||
LIBS="-lnetwork $LIBS"
|
||||
;;
|
||||
|
||||
*openbsd*)
|
||||
AC_MSG_RESULT([yes])
|
||||
LIBS="-lexecinfo $LIBS"
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_RESULT([no])
|
||||
;;
|
||||
esac
|
||||
|
||||
# Require 0.23 pkg-config
|
||||
PKG_PROG_PKG_CONFIG([0.23])
|
||||
@@ -141,7 +156,7 @@ AS_IF([test "x$QT_QMAKE" = "x"],
|
||||
[AC_MSG_ERROR([Could not find qmake])
|
||||
])
|
||||
AS_IF([test "x$enable_gui" = "xyes"],
|
||||
[PKG_CHECK_MODULES(Qt5Svg, [Qt5Svg >= 5.11])
|
||||
[PKG_CHECK_MODULES(Qt5Svg, [Qt5Svg >= 5.15.2])
|
||||
])
|
||||
AC_MSG_CHECKING([whether QtDBus should be enabled])
|
||||
AS_CASE(["x$enable_qt_dbus"],
|
||||
@@ -175,14 +190,12 @@ m4_define([DETECT_BOOST_VERSION_PROGRAM],
|
||||
AC_COMPILE_IFELSE([DETECT_BOOST_VERSION_PROGRAM(106000)], [],
|
||||
[QBT_ADD_DEFINES="$QBT_ADD_DEFINES BOOST_NO_CXX11_RVALUE_REFERENCES"])
|
||||
|
||||
AX_BOOST_SYSTEM()
|
||||
AC_MSG_NOTICE([Boost.System LIB: "$BOOST_SYSTEM_LIB"])
|
||||
LIBS="$BOOST_SYSTEM_LIB $LIBS"
|
||||
|
||||
PKG_CHECK_MODULES(libtorrent,
|
||||
[libtorrent-rasterbar >= 1.2.12],
|
||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS"
|
||||
LIBS="$libtorrent_LIBS $LIBS"])
|
||||
[libtorrent-rasterbar >= 2.0.4],
|
||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS" QBT_ADD_DEFINES="$QBT_ADD_DEFINES QBT_USES_LIBTORRENT2"],
|
||||
[PKG_CHECK_MODULES(libtorrent,
|
||||
[libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2],
|
||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS"])])
|
||||
|
||||
PKG_CHECK_MODULES(openssl,
|
||||
[openssl >= 1.1.1],
|
||||
@@ -216,7 +229,7 @@ AS_IF([test "x$QBT_CXX17_FOUND" = "xno"],
|
||||
CXXFLAGS="-std=c++17 $TMP_CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP17_PROGRAM()],
|
||||
[AC_MSG_RESULT([no])
|
||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG c++1z"
|
||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG c++17"
|
||||
AC_MSG_WARN([C++17 mode is now force enabled. The C++ mode should match the mode that other libraries were built with, otherwise you'll likely get linking errors.])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_MSG_ERROR([The compiler supports C++17 but the user or a dependency has explicitly enabled a lower mode.])])],
|
||||
|
4
dist/mac/Info.plist
vendored
4
dist/mac/Info.plist
vendored
@@ -55,7 +55,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.3.9</string>
|
||||
<string>4.4.2</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -67,7 +67,7 @@
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<string>YES</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2006-2021 The qBittorrent project</string>
|
||||
<string>Copyright © 2006-2022 The qBittorrent project</string>
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
BIN
dist/mac/qBitTorrentDocument.icns
vendored
BIN
dist/mac/qBitTorrentDocument.icns
vendored
Binary file not shown.
BIN
dist/mac/qbittorrent_mac.icns
vendored
BIN
dist/mac/qbittorrent_mac.icns
vendored
Binary file not shown.
11
dist/unix/CMakeLists.txt
vendored
11
dist/unix/CMakeLists.txt
vendored
@@ -30,12 +30,6 @@ install(FILES ${MAN_FILES}
|
||||
)
|
||||
|
||||
if (GUI)
|
||||
install(DIRECTORY menuicons/
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor
|
||||
COMPONENT data
|
||||
FILES_MATCHING PATTERN "*.png"
|
||||
)
|
||||
|
||||
install(FILES org.qbittorrent.qBittorrent.desktop
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/
|
||||
COMPONENT data
|
||||
@@ -46,6 +40,11 @@ if (GUI)
|
||||
COMPONENT data
|
||||
)
|
||||
|
||||
install(DIRECTORY menuicons/
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor
|
||||
COMPONENT data
|
||||
)
|
||||
|
||||
install(FILES
|
||||
${PROJECT_SOURCE_DIR}/src/icons/qbittorrent-tray.svg
|
||||
${PROJECT_SOURCE_DIR}/src/icons/qbittorrent-tray-dark.svg
|
||||
|
BIN
dist/unix/menuicons/128x128/apps/qbittorrent.png
vendored
BIN
dist/unix/menuicons/128x128/apps/qbittorrent.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.3 KiB |
BIN
dist/unix/menuicons/16x16/apps/qbittorrent.png
vendored
BIN
dist/unix/menuicons/16x16/apps/qbittorrent.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 775 B After Width: | Height: | Size: 750 B |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user