You've already forked qBittorrent
							
							
				mirror of
				https://github.com/qbittorrent/qBittorrent
				synced 2025-10-30 23:30:54 +01:00 
			
		
		
		
	Compare commits
	
		
			437 Commits
		
	
	
		
			v5_0_x
			...
			release-3.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c6fe1d3620 | ||
|   | 73f08dd6e1 | ||
|   | 22dc71f365 | ||
|   | 455cc29dad | ||
|   | 9d39a2cddc | ||
|   | efeb46571b | ||
|   | a7b564bb2e | ||
|   | 10df509bce | ||
|   | 7b394d6e99 | ||
|   | f1968de2c9 | ||
|   | b5db0eeec1 | ||
|   | 3ed803f59b | ||
|   | ff10702bfd | ||
|   | 73d3664f92 | ||
|   | aa6025aa87 | ||
|   | a344886ef6 | ||
|   | c181019f40 | ||
|   | 5962efde23 | ||
|   | d43466d466 | ||
|   | 29fb8e8085 | ||
|   | b076ff68ac | ||
|   | 5f2da3a529 | ||
|   | 576fbe5dc1 | ||
|   | 8fc7f3fdc0 | ||
|   | becd67ac84 | ||
|   | 7761a2604a | ||
|   | c6546db138 | ||
|   | f0dd4d5673 | ||
|   | 7f245b63d7 | ||
|   | af17f4df9e | ||
|   | 3ec2f94b27 | ||
|   | d7f1beb7f1 | ||
|   | 8c7a4ab86c | ||
|   | ce2d42a264 | ||
|   | dc011a5599 | ||
|   | 3c6b79805c | ||
|   | 7e7055f2ff | ||
|   | 18c9a65340 | ||
|   | f5ce39a36a | ||
|   | 58e4f9d38e | ||
|   | 5bd7dce396 | ||
|   | d9d49b6d0b | ||
|   | cc48ca1fdc | ||
|   | 2dc6002064 | ||
|   | 1478b21e8d | ||
|   | 726c2fd56d | ||
|   | df86d66702 | ||
|   | 223415fb69 | ||
|   | a4c9b667a7 | ||
|   | 5f8e05ba50 | ||
|   | ed2689de15 | ||
|   | 9e124527e1 | ||
|   | 59971aa577 | ||
|   | 164ca0289a | ||
|   | c0aa50d74b | ||
|   | 66d7dc751c | ||
|   | c1738f97f1 | ||
|   | 105874613a | ||
|   | d6829b253b | ||
|   | c1291539bf | ||
|   | 3060c979f4 | ||
|   | d71a18b945 | ||
|   | 4078fc5e2d | ||
|   | b7cb53a251 | ||
|   | 275a775769 | ||
|   | 1c49ff1df6 | ||
|   | fc77fdbcb5 | ||
|   | e0e757b610 | ||
|   | 33fe9b6d87 | ||
|   | fca78d1a3f | ||
|   | 92794a786f | ||
|   | 08d9ad7f80 | ||
|   | 6023093329 | ||
|   | c070193c30 | ||
|   | 633fb7a7de | ||
|   | 14a37e8d45 | ||
|   | d03a71899e | ||
|   | 283338f5f3 | ||
|   | b600253313 | ||
|   | c97b5ab617 | ||
|   | 9016b698c9 | ||
|   | eb7a7b9c04 | ||
|   | 9e0a3ee692 | ||
|   | c899ed5b50 | ||
|   | a6c50aff95 | ||
|   | ab4a608342 | ||
|   | e7cfd7a31d | ||
|   | c4ea13b284 | ||
|   | 5d09639109 | ||
|   | 885f5b4bee | ||
|   | 3cd06c457a | ||
|   | 373e22660d | ||
|   | 92f58a40e7 | ||
|   | dbf5a264bd | ||
|   | 145dcf9efe | ||
|   | f05e25c750 | ||
|   | fc02377171 | ||
|   | 3816052b0a | ||
|   | fae583e0da | ||
|   | 1114c198ca | ||
|   | c5f9567c0b | ||
|   | e9a5768e4f | ||
|   | 858e5f8db8 | ||
|   | 0afa83dbfa | ||
|   | fc95ce310e | ||
|   | e2c9e7b877 | ||
|   | b1e62ca006 | ||
|   | a063ebd396 | ||
|   | 728dd744bb | ||
|   | a0c1ee76a2 | ||
|   | c7b15b9cc5 | ||
|   | 0770fe8b09 | ||
|   | cf98220c40 | ||
|   | 2eb393ae9a | ||
|   | d65d11d64c | ||
|   | f4fdb80cc9 | ||
|   | 50a0ce1da2 | ||
|   | 2e9370481d | ||
|   | c60c58b092 | ||
|   | ba5dded076 | ||
|   | eb36949e87 | ||
|   | b7358a3039 | ||
|   | d0f082e238 | ||
|   | b301444f5e | ||
|   | 900a80adc1 | ||
|   | d4887ee736 | ||
|   | e23566cde1 | ||
|   | b5f30a6efb | ||
|   | deb1d54999 | ||
|   | 7779efbc30 | ||
|   | acd65e3185 | ||
|   | f2dd050ade | ||
|   | 9c28a48f2e | ||
|   | 3e8af95d30 | ||
|   | cba9d222de | ||
|   | b137eb01ed | ||
|   | fd156580a0 | ||
|   | 21c17f2a81 | ||
|   | 5f19cd2c0e | ||
|   | 9279fedd49 | ||
|   | 2361d6f12d | ||
|   | 78bfbc5669 | ||
|   | 6101f11673 | ||
|   | 15361a6c16 | ||
|   | 835a999464 | ||
|   | b9b0739efd | ||
|   | a34c072b7a | ||
|   | 72e88ba7ec | ||
|   | afb143cad1 | ||
|   | 1ca5d10abb | ||
|   | 67675b6cdc | ||
|   | ef47983d8d | ||
|   | cf47517ee3 | ||
|   | 33199bbd74 | ||
|   | 4fb735c6d1 | ||
|   | 99ca42bf48 | ||
|   | f6b4b5f6f0 | ||
|   | 6f73c32fcc | ||
|   | c1611988b4 | ||
|   | fbe1d2d78a | ||
|   | 34fec15ceb | ||
|   | 1977e4f24d | ||
|   | 5774d27c7b | ||
|   | 3a6a857371 | ||
|   | e2f88feaf9 | ||
|   | 16fec04b6a | ||
|   | fbac4afa2d | ||
|   | d6e9736af1 | ||
|   | 76b3c72c86 | ||
|   | ef954fea55 | ||
|   | 11d085712e | ||
|   | e4bc7852e5 | ||
|   | 3d107e0588 | ||
|   | 8e5c31ae82 | ||
|   | 3c03ccc14a | ||
|   | 0795320086 | ||
|   | bd6877a0bd | ||
|   | b47292c39f | ||
|   | 3d2b1b876b | ||
|   | 843472e663 | ||
|   | e952e3167e | ||
|   | 67f05edf71 | ||
|   | 3ab76cb985 | ||
|   | 509d97b0ad | ||
|   | 67ae08df3c | ||
|   | 38de6b1e41 | ||
|   | 72b179805d | ||
|   | beeda5e0b2 | ||
|   | 356db2f2f7 | ||
|   | 19acbf587f | ||
|   | 5eee3f7357 | ||
|   | 8f990d5d7e | ||
|   | f0ec94c31c | ||
|   | e37dfa96f9 | ||
|   | 4b48db3273 | ||
|   | 545002a809 | ||
|   | e2e9470e10 | ||
|   | 0bf1abba6a | ||
|   | 24165856e9 | ||
|   | 657f0640b9 | ||
|   | faffefc4ff | ||
|   | 0619aacf1f | ||
|   | 9edbbb6473 | ||
|   | 87ee720c0c | ||
|   | b7ca036bc3 | ||
|   | c4442c98b9 | ||
|   | fee8036a7a | ||
|   | 94bd4308c7 | ||
|   | 5e5785435a | ||
|   | d7f02a7ee7 | ||
|   | e6480f9dff | ||
|   | e9f6cfc2e8 | ||
|   | 4f68d263d4 | ||
|   | 6a672472a2 | ||
|   | 3590ac2997 | ||
|   | 98fe5e11dd | ||
|   | 9df5c0292b | ||
|   | 1f2d25a1ff | ||
|   | f1dd7a091c | ||
|   | 5457bde8d0 | ||
|   | 2e325d9506 | ||
|   | 0264a7bf58 | ||
|   | 32fe930b88 | ||
|   | 72883ffb73 | ||
|   | f2c24dd8c3 | ||
|   | 8904139c6d | ||
|   | 571f46886f | ||
|   | 0cd691e167 | ||
|   | 4f65e2d468 | ||
|   | 35981f6ef5 | ||
|   | dc493880f3 | ||
|   | 872e78ca21 | ||
|   | 7b601796d7 | ||
|   | 09ef552aea | ||
|   | b4c9cae0d1 | ||
|   | 6d2a0ae83b | ||
|   | 238a925000 | ||
|   | cce01cfb8e | ||
|   | b2db1972f3 | ||
|   | 8b851fe2b9 | ||
|   | e3c9488fb0 | ||
|   | c27fb110f8 | ||
|   | ec61f24099 | ||
|   | 130ee5a71e | ||
|   | cb3e7e6bd6 | ||
|   | 7fd65d5428 | ||
|   | 442f521bf5 | ||
|   | 016052aea1 | ||
|   | 411982e2b0 | ||
|   | 4b93ccd4e4 | ||
|   | 6603a8947a | ||
|   | 031e354577 | ||
|   | ec7fb331e0 | ||
|   | a232b77104 | ||
|   | 8c11245469 | ||
|   | 60857d3b8e | ||
|   | 2fe6b76968 | ||
|   | 6c7350fce0 | ||
|   | c770f4d0bc | ||
|   | 876e96911f | ||
|   | 5620fd120e | ||
|   | ea7f6046b4 | ||
|   | fddac5d679 | ||
|   | 2c4bc68af1 | ||
|   | 7676f49612 | ||
|   | e879279019 | ||
|   | 84b7680718 | ||
|   | be180140a3 | ||
|   | c051c279d4 | ||
|   | 964dcc4d8a | ||
|   | 64cf93b889 | ||
|   | 365737afe1 | ||
|   | 2cf14f0120 | ||
|   | 46bb25ba9f | ||
|   | ee5a72c570 | ||
|   | 18b56f4d0a | ||
|   | f626276218 | ||
|   | e28554f85c | ||
|   | a0a3447b2e | ||
|   | 4049ca7308 | ||
|   | c28151ba92 | ||
|   | 81e1a050a2 | ||
|   | 34d5824c4a | ||
|   | bb875df400 | ||
|   | 61f47d366a | ||
|   | 8347eb157d | ||
|   | dd22c9b138 | ||
|   | 7f6ad55042 | ||
|   | 55b06ab9ba | ||
|   | 21f0a5eb76 | ||
|   | 16ed11623f | ||
|   | c184cf8d7d | ||
|   | 6a90214eb2 | ||
|   | 226ec0610a | ||
|   | 694bd7cb95 | ||
|   | 9e807e7151 | ||
|   | 78fe7fcf9d | ||
|   | c2465f931e | ||
|   | 8d50325961 | ||
|   | 570a651a59 | ||
|   | 0eaa2aeef2 | ||
|   | 2c7e309493 | ||
|   | ded3cf5798 | ||
|   | 4edac3e974 | ||
|   | 53885fb5e4 | ||
|   | 3942c095f6 | ||
|   | 94be3b930d | ||
|   | 09bc14cc57 | ||
|   | 51b93b4284 | ||
|   | 9c50ea14cb | ||
|   | 42a74ea78e | ||
|   | 1ac68a9192 | ||
|   | 29b5d460ea | ||
|   | a441bca4de | ||
|   | e2da3f2ebd | ||
|   | f235d412f8 | ||
|   | 60b103b062 | ||
|   | 0fdb23098b | ||
|   | 51c296ac69 | ||
|   | a120842ba2 | ||
|   | 8911de9349 | ||
|   | 013a1b8403 | ||
|   | 1492a24391 | ||
|   | bf1559320b | ||
|   | d5648a67ae | ||
|   | a6ec82682d | ||
|   | bd359ad498 | ||
|   | 458f48b290 | ||
|   | a0ae21148a | ||
|   | 5dc9b5c2dd | ||
|   | 48175bbb85 | ||
|   | 3b03bb286e | ||
|   | 23fdf3a0bc | ||
|   | 4cf7618c52 | ||
|   | 6fd9413dae | ||
|   | 120d073a04 | ||
|   | 8fa2adb6fc | ||
|   | 70105d5834 | ||
|   | 05961faf42 | ||
|   | 386706f05b | ||
|   | 1813e96a42 | ||
|   | eaf6e47391 | ||
|   | 8ba82064cd | ||
|   | 5d5a0de694 | ||
|   | 145180c2a1 | ||
|   | 50881b9972 | ||
|   | a115932bc1 | ||
|   | c7fd0fbe45 | ||
|   | d513d002cc | ||
|   | a570bd5e2c | ||
|   | bdacfd540c | ||
|   | c89b9edf27 | ||
|   | 0fdf788624 | ||
|   | f0ae30070b | ||
|   | 8fb8f4b467 | ||
|   | c3a2e50191 | ||
|   | b045b5ebf7 | ||
|   | 6436152c75 | ||
|   | 9c3ae53330 | ||
|   | acd5fcfb00 | ||
|   | 9a6f8ab402 | ||
|   | 0f854014af | ||
|   | a11175afba | ||
|   | c5776c3bf1 | ||
|   | 19d566253f | ||
|   | 0d59d6a03e | ||
|   | c7b2ee367f | ||
|   | 510ec029ea | ||
|   | 1f2daed9d6 | ||
|   | 08b854ce74 | ||
|   | 6b34803c59 | ||
|   | fca224b9d0 | ||
|   | 4f5009351f | ||
|   | c1f77d45ab | ||
|   | 60f0447603 | ||
|   | 6ae208a661 | ||
|   | 781c8034a5 | ||
|   | 4cf8359257 | ||
|   | 3ed4de3043 | ||
|   | a374b99ba2 | ||
|   | 601734a59b | ||
|   | 69cc97c3dd | ||
|   | 226f74a866 | ||
|   | cf35392cd2 | ||
|   | 27319e9e64 | ||
|   | 69b8544e26 | ||
|   | 41e5dc8911 | ||
|   | ba1ffa4e54 | ||
|   | 4edc073373 | ||
|   | 1f00d2e5d7 | ||
|   | d87e42ba00 | ||
|   | 975b1d5257 | ||
|   | 5f84363afb | ||
|   | 545c526e2f | ||
|   | 06fcc57619 | ||
|   | 06c6a444c9 | ||
|   | 8474d0d199 | ||
|   | 0f4610c127 | ||
|   | d753988729 | ||
|   | a6b948077a | ||
|   | 3276cc4987 | ||
|   | 71557fe784 | ||
|   | 29fc5bc80d | ||
|   | db07551e4c | ||
|   | 8f6eb795e3 | ||
|   | 0a37799e6e | ||
|   | 76d6d9a4f9 | ||
|   | 0c8abd0abb | ||
|   | ddc8420810 | ||
|   | a4ff039abc | ||
|   | c8be062e19 | ||
|   | 29443a2c10 | ||
|   | e402556e91 | ||
|   | 4ed4ebcdb7 | ||
|   | a280467270 | ||
|   | 9b1090332b | ||
|   | 18a520c9f9 | ||
|   | af871ef8af | ||
|   | 3af7eb8e03 | ||
|   | 3439300cda | ||
|   | a8027565c9 | ||
|   | 3d4e1a8127 | ||
|   | 7b6a1a1955 | ||
|   | 3f8dc60680 | ||
|   | 9be449dd7f | ||
|   | c46f2ba097 | ||
|   | c2c441ed08 | ||
|   | c1e52fa1cd | ||
|   | fbed5dc606 | ||
|   | 97978068c6 | ||
|   | 006e34880a | ||
|   | 1fd5c5d8b5 | ||
|   | 68ac9fda2d | ||
|   | c5d807ef65 | ||
|   | e17f10ae6b | ||
|   | 78c5d1c12f | ||
|   | 26fb54299b | 
							
								
								
									
										81
									
								
								.clang-tidy
									
									
									
									
									
								
							
							
						
						
									
										81
									
								
								.clang-tidy
									
									
									
									
									
								
							| @@ -1,81 +0,0 @@ | |||||||
| Checks: > |  | ||||||
|   bugprone-*, |  | ||||||
|   cert-*, |  | ||||||
|   concurrency-*, |  | ||||||
|   cppcoreguidelines-*, |  | ||||||
|   misc-*, |  | ||||||
|   modernize-*, |  | ||||||
|   performance-*, |  | ||||||
|   portability-*, |  | ||||||
|   readability-*, |  | ||||||
|   -# not applicable at all, |  | ||||||
|   -bugprone-easily-swappable-parameters, |  | ||||||
|   -bugprone-implicit-widening-of-multiplication-result, |  | ||||||
|   -bugprone-macro-parentheses, |  | ||||||
|   -cppcoreguidelines-avoid-c-arrays, |  | ||||||
|   -cppcoreguidelines-avoid-magic-numbers, |  | ||||||
|   -cppcoreguidelines-avoid-non-const-global-variables, |  | ||||||
|   -cppcoreguidelines-macro-usage, |  | ||||||
|   -cppcoreguidelines-non-private-member-variables-in-classes, |  | ||||||
|   -cppcoreguidelines-owning-memory, |  | ||||||
|   -cppcoreguidelines-pro-bounds-array-to-pointer-decay, |  | ||||||
|   -cppcoreguidelines-pro-bounds-constant-array-index, |  | ||||||
|   -cppcoreguidelines-pro-bounds-pointer-arithmetic, |  | ||||||
|   -cppcoreguidelines-pro-type-const-cast, |  | ||||||
|   -cppcoreguidelines-pro-type-reinterpret-cast, |  | ||||||
|   -cppcoreguidelines-pro-type-union-access, |  | ||||||
|   -cppcoreguidelines-pro-type-vararg, |  | ||||||
|   -cppcoreguidelines-special-member-functions, |  | ||||||
|   -cppcoreguidelines-virtual-class-destructor, |  | ||||||
|   -misc-no-recursion, |  | ||||||
|   -misc-non-private-member-variables-in-classes, |  | ||||||
|   -misc-unused-parameters, |  | ||||||
|   -modernize-avoid-c-arrays, |  | ||||||
|   -modernize-pass-by-value, |  | ||||||
|   -modernize-use-auto, |  | ||||||
|   -modernize-use-nodiscard, |  | ||||||
|   -modernize-use-trailing-return-type, |  | ||||||
|   -readability-function-cognitive-complexity, |  | ||||||
|   -readability-function-size, |  | ||||||
|   -readability-identifier-length, |  | ||||||
|   -readability-implicit-bool-conversion, |  | ||||||
|   -readability-isolate-declaration, |  | ||||||
|   -readability-magic-numbers, |  | ||||||
|   -readability-named-parameter, |  | ||||||
|   -readability-redundant-access-specifiers, |  | ||||||
|   -readability-simplify-boolean-expr, |  | ||||||
|   -readability-uppercase-literal-suffix, |  | ||||||
|   -# only sometimes useful, |  | ||||||
|   -bugprone-narrowing-conversions, |  | ||||||
|   -cert-dcl58-cpp, |  | ||||||
|   -cert-err33-c, |  | ||||||
|   -cert-err58-cpp, |  | ||||||
|   -clang-analyzer-core.CallAndMessage, |  | ||||||
|   -clang-analyzer-cplusplus.NewDelete, |  | ||||||
|   -clang-analyzer-cplusplus.NewDeleteLeaks, |  | ||||||
|   -concurrency-mt-unsafe, |  | ||||||
|   -cppcoreguidelines-init-variables, |  | ||||||
|   -cppcoreguidelines-narrowing-conversions, |  | ||||||
|   -cppcoreguidelines-prefer-member-initializer, |  | ||||||
|   -cppcoreguidelines-pro-type-static-cast-downcast, |  | ||||||
|   -misc-definitions-in-headers, |  | ||||||
|   -modernize-concat-nested-namespaces, |  | ||||||
|   -modernize-loop-convert, |  | ||||||
|   -modernize-raw-string-literal, |  | ||||||
|   -modernize-unary-static-assert, |  | ||||||
|   -performance-no-automatic-move, |  | ||||||
|   -readability-convert-member-functions-to-static, |  | ||||||
|   -readability-else-after-return, |  | ||||||
|   -readability-redundant-declaration, |  | ||||||
|   -# obsoleted, |  | ||||||
|   -cert-dcl21-cpp |  | ||||||
|  |  | ||||||
| CheckOptions: |  | ||||||
|   - { key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors, value: true } |  | ||||||
|   - { key: modernize-use-override.IgnoreDestructors, value: true } |  | ||||||
|   - { key: performance-for-range-copy.AllowedTypes, value: "QJsonValue" } |  | ||||||
|   - { key: performance-for-range-copy.WarnOnAllAutoCopies, value: true } |  | ||||||
|   - { key: readability-braces-around-statements.ShortStatementLines, value: 3 } |  | ||||||
|  |  | ||||||
| HeaderFilterRegex: ".+/src/.*\\.h" |  | ||||||
| WarningsAsErrors: "*" |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| # EditorConfig is awesome: https://EditorConfig.org |  | ||||||
|  |  | ||||||
| root = true |  | ||||||
|  |  | ||||||
| [*] |  | ||||||
| charset = utf-8 |  | ||||||
| end_of_line = lf |  | ||||||
| indent_style = space |  | ||||||
| indent_size = 4 |  | ||||||
| insert_final_newline = true |  | ||||||
| trim_trailing_whitespace = true |  | ||||||
|  |  | ||||||
| [**.yml] |  | ||||||
| indent_size = 2 |  | ||||||
							
								
								
									
										11
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							| @@ -1,10 +1,7 @@ | |||||||
| core.eol=lf | core.eol=lf | ||||||
| * text eol=lf | * text eol=lf | ||||||
| *.icns binary |  | ||||||
| *.ico binary |  | ||||||
| *.png binary |  | ||||||
| *.qm binary |  | ||||||
| *.zip binary | *.zip binary | ||||||
|  | *.png binary | ||||||
| dist/windows/license.txt text eol=crlf | *.ico binary | ||||||
| test/testdata/crlf.txt text eol=crlf | *.qm binary | ||||||
|  | *.icns binary | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | |||||||
| custom: "https://www.qbittorrent.org/donate.php" |  | ||||||
							
								
								
									
										76
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										76
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,76 +0,0 @@ | |||||||
| 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 (currently only on **[Windows](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_windows.yaml?query=branch%3Amaster+event%3Apush)**) builds. |  | ||||||
|         - Check the **[frequent/common issues list](https://github.com/qbittorrent/qBittorrent/projects/2)** and perform a **[search of the issue tracker (including closed ones)](https://github.com/qbittorrent/qBittorrent/issues)** to avoid posting a duplicate. |  | ||||||
|         - 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
									
									
								
							
							
						
						
									
										17
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,17 +0,0 @@ | |||||||
| 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
									
									
								
							
							
						
						
									
										37
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,37 +0,0 @@ | |||||||
| 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
									
									
								
							
							
						
						
									
										5
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +0,0 @@ | |||||||
| <!-- |  | ||||||
| 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
									
									
								
							
							
						
						
									
										18
									
								
								.github/SUPPORT.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +0,0 @@ | |||||||
| # 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][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/ |  | ||||||
							
								
								
									
										15
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,15 +0,0 @@ | |||||||
| version: 2 |  | ||||||
|  |  | ||||||
| updates: |  | ||||||
|   - package-ecosystem: "github-actions" |  | ||||||
|     directory: "/" |  | ||||||
|     commit-message: |  | ||||||
|       prefix: "GHA CI" |  | ||||||
|     groups: |  | ||||||
|       github-actions: |  | ||||||
|         patterns: |  | ||||||
|           - "*" |  | ||||||
|     labels: |  | ||||||
|       - "CI" |  | ||||||
|     schedule: |  | ||||||
|       interval: "monthly" |  | ||||||
							
								
								
									
										44
									
								
								.github/workflows/ci_file_health.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								.github/workflows/ci_file_health.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,44 +0,0 @@ | |||||||
| name: CI - File health |  | ||||||
|  |  | ||||||
| on: [pull_request, push] |  | ||||||
|  |  | ||||||
| permissions: {} |  | ||||||
|  |  | ||||||
| concurrency: |  | ||||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |  | ||||||
|   cancel-in-progress: ${{ github.head_ref != '' }} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   ci: |  | ||||||
|     name: Check |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout repository |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|  |  | ||||||
|       - name: Install tools |  | ||||||
|         uses: actions/setup-python@v5 |  | ||||||
|         with: |  | ||||||
|           python-version: "*" |  | ||||||
|  |  | ||||||
|       - name: Check files |  | ||||||
|         uses: pre-commit/action@v3.0.1 |  | ||||||
|  |  | ||||||
|       - name: Check doc |  | ||||||
|         env: |  | ||||||
|           pandoc_path: "${{ github.workspace }}/../pandoc" |  | ||||||
|         run: | |  | ||||||
|           # install pandoc |  | ||||||
|           curl \ |  | ||||||
|             -L \ |  | ||||||
|             -o "${{ runner.temp }}/pandoc.tar.gz" \ |  | ||||||
|             "https://github.com/jgm/pandoc/releases/download/3.1.7/pandoc-3.1.7-linux-amd64.tar.gz" |  | ||||||
|           tar -xf "${{ runner.temp }}/pandoc.tar.gz" -C "${{ github.workspace }}/.." |  | ||||||
|           mv "${{ github.workspace }}/.."/pandoc-* "${{ env.pandoc_path }}" |  | ||||||
|           # run pandoc |  | ||||||
|           for lang in doc/*/; do |  | ||||||
|             "${{ env.pandoc_path }}/bin/pandoc" -f markdown -t man -s "$lang/qbittorrent.1.md" -o "$lang/qbittorrent.1" |  | ||||||
|             "${{ env.pandoc_path }}/bin/pandoc" -f markdown -t man -s "$lang/qbittorrent-nox.1.md" -o "$lang/qbittorrent-nox.1" |  | ||||||
|           done |  | ||||||
|           # check diff, ignore "Automatically generated by ..." part |  | ||||||
|           git diff -I '\.\\".*' --exit-code |  | ||||||
							
								
								
									
										149
									
								
								.github/workflows/ci_macos.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										149
									
								
								.github/workflows/ci_macos.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,149 +0,0 @@ | |||||||
| name: CI - macOS |  | ||||||
|  |  | ||||||
| on: [pull_request, push] |  | ||||||
|  |  | ||||||
| permissions: |  | ||||||
|   actions: write |  | ||||||
|  |  | ||||||
| concurrency: |  | ||||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |  | ||||||
|   cancel-in-progress: ${{ github.head_ref != '' }} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   ci: |  | ||||||
|     name: Build |  | ||||||
|     runs-on: macos-latest |  | ||||||
|  |  | ||||||
|     strategy: |  | ||||||
|       fail-fast: false |  | ||||||
|       matrix: |  | ||||||
|         libt_version: ["2.0.10", "1.2.19"] |  | ||||||
|         qbt_gui: ["GUI=ON", "GUI=OFF"] |  | ||||||
|         qt_version: ["6.7.0"] |  | ||||||
|  |  | ||||||
|     env: |  | ||||||
|       boost_path: "${{ github.workspace }}/../boost" |  | ||||||
|       libtorrent_path: "${{ github.workspace }}/../libtorrent" |  | ||||||
|  |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout repository |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|  |  | ||||||
|       - name: Install dependencies |  | ||||||
|         uses: Wandalen/wretry.action@v3 |  | ||||||
|         env: |  | ||||||
|            HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 |  | ||||||
|            HOMEBREW_NO_INSTALL_CLEANUP: 1 |  | ||||||
|         with: |  | ||||||
|           attempt_delay: 20000 |  | ||||||
|           attempt_limit: 6 |  | ||||||
|           command: | |  | ||||||
|             brew update > /dev/null |  | ||||||
|             brew install \ |  | ||||||
|               cmake ninja \ |  | ||||||
|               openssl@3 zlib |  | ||||||
|  |  | ||||||
|       - name: Setup ccache |  | ||||||
|         uses: Chocobo1/setup-ccache-action@v1 |  | ||||||
|         with: |  | ||||||
|           store_cache: ${{ github.ref == 'refs/heads/master' }} |  | ||||||
|           update_packager_index: false |  | ||||||
|           ccache_options: | |  | ||||||
|             max_size=2G |  | ||||||
|  |  | ||||||
|       - name: Install boost |  | ||||||
|         env: |  | ||||||
|           BOOST_MAJOR_VERSION: "1" |  | ||||||
|           BOOST_MINOR_VERSION: "85" |  | ||||||
|           BOOST_PATCH_VERSION: "0" |  | ||||||
|         run: | |  | ||||||
|           boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" |  | ||||||
|           boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" |  | ||||||
|           set +e |  | ||||||
|           curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url" |  | ||||||
|           tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" |  | ||||||
|           if [ "$_exitCode" -ne "0" ]; then |  | ||||||
|             curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url2" |  | ||||||
|             tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" |  | ||||||
|           fi |  | ||||||
|           mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}" |  | ||||||
|  |  | ||||||
|       - name: Install Qt |  | ||||||
|         uses: jurplel/install-qt-action@v4 |  | ||||||
|         with: |  | ||||||
|           version: ${{ matrix.qt_version }} |  | ||||||
|           archives: qtbase qtdeclarative qtsvg qttools |  | ||||||
|           # Not sure why Qt made a hard dependency on qtdeclarative, try removing it when Qt > 6.4.0 |  | ||||||
|           cache: true |  | ||||||
|  |  | ||||||
|       - name: Install libtorrent |  | ||||||
|         run: | |  | ||||||
|           git clone \ |  | ||||||
|             --branch v${{ matrix.libt_version }} \ |  | ||||||
|             --depth 1 \ |  | ||||||
|             --recurse-submodules \ |  | ||||||
|             https://github.com/arvidn/libtorrent.git \ |  | ||||||
|             ${{ env.libtorrent_path }} |  | ||||||
|           cd ${{ env.libtorrent_path }} |  | ||||||
|           cmake \ |  | ||||||
|             -B build \ |  | ||||||
|             -G "Ninja" \ |  | ||||||
|             -DBUILD_SHARED_LIBS=OFF \ |  | ||||||
|             -DCMAKE_BUILD_TYPE=RelWithDebInfo \ |  | ||||||
|             -DCMAKE_CXX_STANDARD=17 \ |  | ||||||
|             -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ |  | ||||||
|             -DBOOST_ROOT="${{ env.boost_path }}" \ |  | ||||||
|             -Ddeprecated-functions=OFF |  | ||||||
|           cmake --build build |  | ||||||
|           sudo cmake --install build |  | ||||||
|  |  | ||||||
|       - name: Build qBittorrent |  | ||||||
|         run: | |  | ||||||
|           CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \ |  | ||||||
|           LDFLAGS="$LDFLAGS -gz" \ |  | ||||||
|           cmake \ |  | ||||||
|             -B build \ |  | ||||||
|             -G "Ninja" \ |  | ||||||
|             -DCMAKE_BUILD_TYPE=RelWithDebInfo \ |  | ||||||
|             -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ |  | ||||||
|             -DBOOST_ROOT="${{ env.boost_path }}" \ |  | ||||||
|             -DTESTING=ON \ |  | ||||||
|             -DVERBOSE_CONFIGURE=ON \ |  | ||||||
|             -D${{ matrix.qbt_gui }} |  | ||||||
|           cmake --build build --target qbt_update_translations |  | ||||||
|           cmake --build build |  | ||||||
|           cmake --build build --target check |  | ||||||
|  |  | ||||||
|       - name: Prepare build artifacts |  | ||||||
|         run: | |  | ||||||
|           # create .dmg |  | ||||||
|           appName="qbittorrent" |  | ||||||
|           if [ "${{ matrix.qbt_gui }}" = "GUI=OFF" ]; then |  | ||||||
|             appName="qbittorrent-nox" |  | ||||||
|           fi |  | ||||||
|           # package |  | ||||||
|           pushd build |  | ||||||
|           PACKAGE_RETRY=0 |  | ||||||
|           while [ "$PACKAGE_RETRY" -lt "3" ]; do |  | ||||||
|             macdeployqt "$appName.app" -dmg -no-strip |  | ||||||
|             if [ -f "$appName.dmg" ]; then |  | ||||||
|               break |  | ||||||
|             fi |  | ||||||
|             sleep 5 |  | ||||||
|             PACKAGE_RETRY=$((PACKAGE_RETRY + 1)) |  | ||||||
|             echo "Retry $PACKAGE_RETRY..." |  | ||||||
|           done |  | ||||||
|           popd |  | ||||||
|           # prepare upload folder |  | ||||||
|           mkdir upload |  | ||||||
|           cp "build/$appName.dmg" upload |  | ||||||
|           mkdir upload/cmake |  | ||||||
|           cp build/compile_commands.json upload/cmake |  | ||||||
|           mkdir upload/cmake/libtorrent |  | ||||||
|           cp ${{ env.libtorrent_path }}/build/compile_commands.json upload/cmake/libtorrent |  | ||||||
|  |  | ||||||
|       - name: Upload build artifacts |  | ||||||
|         uses: actions/upload-artifact@v4 |  | ||||||
|         with: |  | ||||||
|           name: qBittorrent-CI_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }} |  | ||||||
|           path: upload |  | ||||||
							
								
								
									
										89
									
								
								.github/workflows/ci_python.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										89
									
								
								.github/workflows/ci_python.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,89 +0,0 @@ | |||||||
| name: CI - Python |  | ||||||
|  |  | ||||||
| on: [pull_request, push] |  | ||||||
|  |  | ||||||
| permissions: {} |  | ||||||
|  |  | ||||||
| concurrency: |  | ||||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |  | ||||||
|   cancel-in-progress: ${{ github.head_ref != '' }} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   ci: |  | ||||||
|     name: Check |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|  |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout repository |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|  |  | ||||||
|       - name: Setup python (auxiliary scripts) |  | ||||||
|         uses: actions/setup-python@v5 |  | ||||||
|         with: |  | ||||||
|           python-version: '3'  # use default version |  | ||||||
|  |  | ||||||
|       - name: Install tools (auxiliary scripts) |  | ||||||
|         run: pip install bandit pycodestyle pyflakes |  | ||||||
|  |  | ||||||
|       - name: Gather files (auxiliary scripts) |  | ||||||
|         run: | |  | ||||||
|           export "PY_FILES=$(find . -type f -name '*.py' ! -path '*searchengine*' -printf '%p ')" |  | ||||||
|           echo $PY_FILES |  | ||||||
|           echo "PY_FILES=$PY_FILES" >> "$GITHUB_ENV" |  | ||||||
|  |  | ||||||
|       - name: Lint code (auxiliary scripts) |  | ||||||
|         run: | |  | ||||||
|           pyflakes $PY_FILES |  | ||||||
|           bandit --skip B314,B405 $PY_FILES |  | ||||||
|  |  | ||||||
|       - name: Format code (auxiliary scripts) |  | ||||||
|         run: | |  | ||||||
|           pycodestyle \ |  | ||||||
|             --max-line-length=1000 \ |  | ||||||
|             --statistics \ |  | ||||||
|             $PY_FILES |  | ||||||
|  |  | ||||||
|       - name: Build code (auxiliary scripts) |  | ||||||
|         run: | |  | ||||||
|           python -m compileall $PY_FILES |  | ||||||
|  |  | ||||||
|       - name: Setup python (search engine) |  | ||||||
|         uses: actions/setup-python@v5 |  | ||||||
|         with: |  | ||||||
|           python-version: '3.7' |  | ||||||
|  |  | ||||||
|       - name: Install tools (search engine) |  | ||||||
|         run: pip install bandit mypy pycodestyle pyflakes pyright |  | ||||||
|  |  | ||||||
|       - name: Gather files (search engine) |  | ||||||
|         run: | |  | ||||||
|           export "PY_FILES=$(find . -type f -name '*.py' -path '*searchengine*' ! -name 'socks.py' -printf '%p ')" |  | ||||||
|           echo $PY_FILES |  | ||||||
|           echo "PY_FILES=$PY_FILES" >> "$GITHUB_ENV" |  | ||||||
|  |  | ||||||
|       - name: Check typings  (search engine) |  | ||||||
|         run: | |  | ||||||
|           MYPYPATH="src/searchengine/nova3" \ |  | ||||||
|           mypy \ |  | ||||||
|             --follow-imports skip \ |  | ||||||
|             --strict \ |  | ||||||
|             $PY_FILES |  | ||||||
|           pyright \ |  | ||||||
|             $PY_FILES |  | ||||||
|  |  | ||||||
|       - name: Lint code (search engine) |  | ||||||
|         run: | |  | ||||||
|           pyflakes $PY_FILES |  | ||||||
|           bandit --skip B110,B310,B314,B405 $PY_FILES |  | ||||||
|  |  | ||||||
|       - name: Format code (search engine) |  | ||||||
|         run: | |  | ||||||
|           pycodestyle \ |  | ||||||
|             --ignore=E265,E402 \ |  | ||||||
|             --max-line-length=1000 \ |  | ||||||
|             --statistics \ |  | ||||||
|             $PY_FILES |  | ||||||
|  |  | ||||||
|       - name: Build code (search engine) |  | ||||||
|         run: | |  | ||||||
|           python -m compileall $PY_FILES |  | ||||||
							
								
								
									
										169
									
								
								.github/workflows/ci_ubuntu.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										169
									
								
								.github/workflows/ci_ubuntu.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,169 +0,0 @@ | |||||||
| name: CI - Ubuntu |  | ||||||
|  |  | ||||||
| on: [pull_request, push] |  | ||||||
|  |  | ||||||
| permissions: |  | ||||||
|   actions: write |  | ||||||
|   security-events: write |  | ||||||
|  |  | ||||||
| concurrency: |  | ||||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |  | ||||||
|   cancel-in-progress: ${{ github.head_ref != '' }} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   ci: |  | ||||||
|     name: Build |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|  |  | ||||||
|     strategy: |  | ||||||
|       fail-fast: false |  | ||||||
|       matrix: |  | ||||||
|         libt_version: ["2.0.10", "1.2.19"] |  | ||||||
|         qbt_gui: ["GUI=ON", "GUI=OFF"] |  | ||||||
|         qt_version: ["6.5.2"] |  | ||||||
|  |  | ||||||
|     env: |  | ||||||
|       boost_path: "${{ github.workspace }}/../boost" |  | ||||||
|       harden_flags: "-D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS" |  | ||||||
|       libtorrent_path: "${{ github.workspace }}/../libtorrent" |  | ||||||
|  |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout repository |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|  |  | ||||||
|       - name: Install dependencies |  | ||||||
|         run: | |  | ||||||
|           sudo apt update |  | ||||||
|           sudo apt install \ |  | ||||||
|             build-essential cmake ninja-build \ |  | ||||||
|             libssl-dev libxkbcommon-x11-dev libxcb-cursor-dev zlib1g-dev |  | ||||||
|  |  | ||||||
|       - name: Setup ccache |  | ||||||
|         uses: Chocobo1/setup-ccache-action@v1 |  | ||||||
|         with: |  | ||||||
|           store_cache: ${{ github.ref == 'refs/heads/master' }} |  | ||||||
|           update_packager_index: false |  | ||||||
|           ccache_options: | |  | ||||||
|             max_size=2G |  | ||||||
|  |  | ||||||
|       - name: Install boost |  | ||||||
|         env: |  | ||||||
|           BOOST_MAJOR_VERSION: "1" |  | ||||||
|           BOOST_MINOR_VERSION: "76" |  | ||||||
|           BOOST_PATCH_VERSION: "0" |  | ||||||
|         run: | |  | ||||||
|           boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" |  | ||||||
|           boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" |  | ||||||
|           set +e |  | ||||||
|           curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url" |  | ||||||
|           tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" |  | ||||||
|           if [ "$_exitCode" -ne "0" ]; then |  | ||||||
|             curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url2" |  | ||||||
|             tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" |  | ||||||
|           fi |  | ||||||
|           mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}" |  | ||||||
|  |  | ||||||
|       - name: Install Qt |  | ||||||
|         uses: jurplel/install-qt-action@v4 |  | ||||||
|         with: |  | ||||||
|           version: ${{ matrix.qt_version }} |  | ||||||
|           archives: icu qtbase qtdeclarative qtsvg qttools |  | ||||||
|           cache: true |  | ||||||
|  |  | ||||||
|       - name: Install libtorrent |  | ||||||
|         run: | |  | ||||||
|           git clone \ |  | ||||||
|             --branch v${{ matrix.libt_version }} \ |  | ||||||
|             --depth 1 \ |  | ||||||
|             --recurse-submodules \ |  | ||||||
|             https://github.com/arvidn/libtorrent.git \ |  | ||||||
|             ${{ env.libtorrent_path }} |  | ||||||
|           cd ${{ env.libtorrent_path }} |  | ||||||
|           CXXFLAGS="$CXXFLAGS ${{ env.harden_flags }}" \ |  | ||||||
|           cmake \ |  | ||||||
|             -B build \ |  | ||||||
|             -G "Ninja" \ |  | ||||||
|             -DBUILD_SHARED_LIBS=OFF \ |  | ||||||
|             -DCMAKE_BUILD_TYPE=RelWithDebInfo \ |  | ||||||
|             -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ |  | ||||||
|             -DBOOST_ROOT="${{ env.boost_path }}" \ |  | ||||||
|             -Ddeprecated-functions=OFF |  | ||||||
|           cmake --build build |  | ||||||
|           sudo cmake --install build |  | ||||||
|  |  | ||||||
|       # to avoid scanning 3rdparty codebases, initialize it just before building qbt |  | ||||||
|       - name: Initialize CodeQL |  | ||||||
|         uses: github/codeql-action/init@v3 |  | ||||||
|         if: startsWith(matrix.libt_version, 2) && (matrix.qbt_gui == 'GUI=ON') |  | ||||||
|         with: |  | ||||||
|           config-file: ./.github/workflows/helper/codeql/cpp.yaml |  | ||||||
|           languages: cpp |  | ||||||
|  |  | ||||||
|       - name: Build qBittorrent |  | ||||||
|         run: | |  | ||||||
|           CXXFLAGS="$CXXFLAGS ${{ env.harden_flags }} -Werror" \ |  | ||||||
|           LDFLAGS="$LDFLAGS -gz" \ |  | ||||||
|           cmake \ |  | ||||||
|             -B build \ |  | ||||||
|             -G "Ninja" \ |  | ||||||
|             -DCMAKE_BUILD_TYPE=RelWithDebInfo \ |  | ||||||
|             -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ |  | ||||||
|             -DBOOST_ROOT="${{ env.boost_path }}" \ |  | ||||||
|             -DCMAKE_INSTALL_PREFIX="/usr" \ |  | ||||||
|             -DTESTING=ON \ |  | ||||||
|             -DVERBOSE_CONFIGURE=ON \ |  | ||||||
|             -D${{ matrix.qbt_gui }} |  | ||||||
|           cmake --build build --target qbt_update_translations |  | ||||||
|           cmake --build build |  | ||||||
|           cmake --build build --target check |  | ||||||
|           DESTDIR="qbittorrent" cmake --install build |  | ||||||
|  |  | ||||||
|       - name: Run CodeQL analysis |  | ||||||
|         uses: github/codeql-action/analyze@v3 |  | ||||||
|         if: startsWith(matrix.libt_version, 2) && (matrix.qbt_gui == 'GUI=ON') |  | ||||||
|         with: |  | ||||||
|           category: ${{ github.base_ref || github.ref_name }} |  | ||||||
|  |  | ||||||
|       - name: Prepare build artifacts |  | ||||||
|         run: | |  | ||||||
|           mkdir upload |  | ||||||
|           mkdir upload/cmake |  | ||||||
|           cp build/compile_commands.json upload/cmake |  | ||||||
|           mkdir upload/cmake/libtorrent |  | ||||||
|           cp ${{ env.libtorrent_path }}/build/compile_commands.json upload/cmake/libtorrent |  | ||||||
|  |  | ||||||
|       - name: Install AppImage |  | ||||||
|         run: | |  | ||||||
|           curl \ |  | ||||||
|             -L \ |  | ||||||
|             -Z \ |  | ||||||
|             -O https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage \ |  | ||||||
|             -O https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage \ |  | ||||||
|             -O https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage |  | ||||||
|           chmod +x \ |  | ||||||
|             linuxdeploy-x86_64.AppImage \ |  | ||||||
|             linuxdeploy-plugin-qt-x86_64.AppImage \ |  | ||||||
|             linuxdeploy-plugin-appimage-x86_64.AppImage |  | ||||||
|  |  | ||||||
|       - name: Prepare files for AppImage |  | ||||||
|         if: matrix.qbt_gui == 'GUI=OFF' |  | ||||||
|         run: | |  | ||||||
|           mkdir -p qbittorrent/usr/share/applications |  | ||||||
|           cp .github/workflows/helper/appimage/org.qbittorrent.qBittorrent.desktop qbittorrent/usr/share/applications/org.qbittorrent.qBittorrent.desktop |  | ||||||
|           mkdir -p qbittorrent/usr/share/icons/hicolor/scalable/apps |  | ||||||
|           cp dist/unix/menuicons/scalable/apps/qbittorrent.svg qbittorrent/usr/share/icons/hicolor/scalable/apps/qbittorrent.svg |  | ||||||
|  |  | ||||||
|       - name: Package AppImage |  | ||||||
|         run: | |  | ||||||
|           ./linuxdeploy-x86_64.AppImage --appdir qbittorrent --plugin qt |  | ||||||
|           rm qbittorrent/apprun-hooks/* |  | ||||||
|           cp .github/workflows/helper/appimage/export_vars.sh qbittorrent/apprun-hooks/export_vars.sh |  | ||||||
|           NO_APPSTREAM=1 \ |  | ||||||
|             OUTPUT=upload/qbittorrent-CI_Ubuntu_x86_64.AppImage \ |  | ||||||
|             ./linuxdeploy-x86_64.AppImage --appdir qbittorrent --output appimage |  | ||||||
|  |  | ||||||
|       - name: Upload build artifacts |  | ||||||
|         uses: actions/upload-artifact@v4 |  | ||||||
|         with: |  | ||||||
|           name: qBittorrent-CI_Ubuntu-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }} |  | ||||||
|           path: upload |  | ||||||
							
								
								
									
										48
									
								
								.github/workflows/ci_webui.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								.github/workflows/ci_webui.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,48 +0,0 @@ | |||||||
| name: CI - WebUI |  | ||||||
|  |  | ||||||
| on: [pull_request, push] |  | ||||||
|  |  | ||||||
| permissions: |  | ||||||
|   security-events: write |  | ||||||
|  |  | ||||||
| concurrency: |  | ||||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |  | ||||||
|   cancel-in-progress: ${{ github.head_ref != '' }} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   ci: |  | ||||||
|     name: Check |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|  |  | ||||||
|     defaults: |  | ||||||
|       run: |  | ||||||
|         working-directory: src/webui/www |  | ||||||
|  |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout repository |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|  |  | ||||||
|       - name: Setup nodejs |  | ||||||
|         uses: actions/setup-node@v4 |  | ||||||
|         with: |  | ||||||
|           node-version: 'lts/*' |  | ||||||
|  |  | ||||||
|       - name: Install tools |  | ||||||
|         run: npm install |  | ||||||
|  |  | ||||||
|       - name: Lint code |  | ||||||
|         run: npm run lint |  | ||||||
|  |  | ||||||
|       - name: Format code |  | ||||||
|         run: | |  | ||||||
|           npm run format |  | ||||||
|           git diff --exit-code |  | ||||||
|  |  | ||||||
|       - name: Initialize CodeQL |  | ||||||
|         uses: github/codeql-action/init@v3 |  | ||||||
|         with: |  | ||||||
|           config-file: .github/workflows/helper/codeql/js.yaml |  | ||||||
|           languages: javascript |  | ||||||
|  |  | ||||||
|       - name: Run CodeQL analysis |  | ||||||
|         uses: github/codeql-action/analyze@v3 |  | ||||||
							
								
								
									
										198
									
								
								.github/workflows/ci_windows.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										198
									
								
								.github/workflows/ci_windows.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,198 +0,0 @@ | |||||||
| name: CI - Windows |  | ||||||
|  |  | ||||||
| on: [pull_request, push] |  | ||||||
|  |  | ||||||
| permissions: |  | ||||||
|   actions: write |  | ||||||
|  |  | ||||||
| concurrency: |  | ||||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |  | ||||||
|   cancel-in-progress: ${{ github.head_ref != '' }} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   ci: |  | ||||||
|     name: Build |  | ||||||
|     runs-on: windows-latest |  | ||||||
|  |  | ||||||
|     strategy: |  | ||||||
|       fail-fast: false |  | ||||||
|       matrix: |  | ||||||
|         libt_version: ["2.0.10", "1.2.19"] |  | ||||||
|  |  | ||||||
|     env: |  | ||||||
|       boost_path: "${{ github.workspace }}/../boost" |  | ||||||
|       libtorrent_path: "${{ github.workspace }}/../libtorrent" |  | ||||||
|       vcpkg_path: "c:/vcpkg" |  | ||||||
|  |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout repository |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|  |  | ||||||
|       - name: Setup devcmd |  | ||||||
|         uses: ilammy/msvc-dev-cmd@v1 |  | ||||||
|  |  | ||||||
|       - name: Install build tools |  | ||||||
|         run: | |  | ||||||
|           if ((Get-Command "ninja.exe" -ErrorAction SilentlyContinue) -eq $null) |  | ||||||
|           { |  | ||||||
|              choco install ninja |  | ||||||
|           } |  | ||||||
|           where.exe ninja |  | ||||||
|           ninja --version |  | ||||||
|  |  | ||||||
|       # https://learn.microsoft.com/en-us/vcpkg/users/binarycaching#gha |  | ||||||
|       - name: Set variables for vcpkg |  | ||||||
|         uses: actions/github-script@v7 |  | ||||||
|         with: |  | ||||||
|           script: | |  | ||||||
|             core.exportVariable('ACTIONS_CACHE_URL', (process.env.ACTIONS_CACHE_URL || '')); |  | ||||||
|             core.exportVariable('ACTIONS_RUNTIME_TOKEN', (process.env.ACTIONS_RUNTIME_TOKEN || '')); |  | ||||||
|  |  | ||||||
|       - name: Install dependencies with vcpkg |  | ||||||
|         run: | |  | ||||||
|           # create our own triplet |  | ||||||
|           New-Item ` |  | ||||||
|             -Force ` |  | ||||||
|             -ItemType File ` |  | ||||||
|             -Path "${{ env.vcpkg_path }}/triplets_overlay/x64-windows-static-md-release.cmake" |  | ||||||
|           # OpenSSL isn't compatible with `/guard:cf` flag so we omit it for now, see: https://github.com/openssl/openssl/issues/22554 |  | ||||||
|           Add-Content ` |  | ||||||
|             -Path "${{ env.vcpkg_path }}/triplets_overlay/x64-windows-static-md-release.cmake" ` |  | ||||||
|             -Value @("set(VCPKG_TARGET_ARCHITECTURE x64)", |  | ||||||
|               "set(VCPKG_LIBRARY_LINKAGE static)", |  | ||||||
|               "set(VCPKG_CRT_LINKAGE dynamic)", |  | ||||||
|               "set(VCPKG_BUILD_TYPE release)") |  | ||||||
|           # clear buildtrees after each package installation to reduce disk space requirements |  | ||||||
|           $packages = ` |  | ||||||
|             "openssl:x64-windows-static-md-release", |  | ||||||
|             "zlib:x64-windows-static-md-release" |  | ||||||
|           ${{ env.vcpkg_path }}/vcpkg.exe upgrade ` |  | ||||||
|             --no-dry-run ` |  | ||||||
|             --overlay-triplets="${{ env.vcpkg_path }}/triplets_overlay" |  | ||||||
|           ${{ env.vcpkg_path }}/vcpkg.exe install ` |  | ||||||
|             --binarysource="clear;x-gha,readwrite" ` |  | ||||||
|             --clean-after-build ` |  | ||||||
|             --overlay-triplets="${{ env.vcpkg_path }}/triplets_overlay" ` |  | ||||||
|             $packages |  | ||||||
|  |  | ||||||
|       - name: Install boost |  | ||||||
|         env: |  | ||||||
|           BOOST_MAJOR_VERSION: "1" |  | ||||||
|           BOOST_MINOR_VERSION: "85" |  | ||||||
|           BOOST_PATCH_VERSION: "0" |  | ||||||
|         run: | |  | ||||||
|           $boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" |  | ||||||
|           $boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" |  | ||||||
|           curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url" |  | ||||||
|           tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.." |  | ||||||
|           if ($LastExitCode -ne 0) |  | ||||||
|           { |  | ||||||
|             curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url2" |  | ||||||
|             tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.." |  | ||||||
|           } |  | ||||||
|           move "${{ github.workspace }}/../boost_*" "${{ env.boost_path }}" |  | ||||||
|  |  | ||||||
|       - name: Install Qt |  | ||||||
|         uses: jurplel/install-qt-action@v4 |  | ||||||
|         with: |  | ||||||
|           version: "6.7.3" |  | ||||||
|           archives: qtbase qtsvg qttools |  | ||||||
|           cache: true |  | ||||||
|  |  | ||||||
|       - name: Install libtorrent |  | ||||||
|         run: | |  | ||||||
|           git clone ` |  | ||||||
|             --branch v${{ matrix.libt_version }} ` |  | ||||||
|             --depth 1 ` |  | ||||||
|             --recurse-submodules ` |  | ||||||
|             https://github.com/arvidn/libtorrent.git ` |  | ||||||
|             ${{ env.libtorrent_path }} |  | ||||||
|           cd ${{ env.libtorrent_path }} |  | ||||||
|           $env:CXXFLAGS+=" /guard:cf" |  | ||||||
|           $env:LDFLAGS+=" /guard:cf" |  | ||||||
|           cmake ` |  | ||||||
|             -B build ` |  | ||||||
|             -G "Ninja" ` |  | ||||||
|             -DCMAKE_BUILD_TYPE=RelWithDebInfo ` |  | ||||||
|             -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ` |  | ||||||
|             -DCMAKE_INSTALL_PREFIX="${{ env.libtorrent_path }}/install" ` |  | ||||||
|             -DCMAKE_TOOLCHAIN_FILE="${{ env.vcpkg_path }}/scripts/buildsystems/vcpkg.cmake" ` |  | ||||||
|             -DBOOST_ROOT="${{ env.boost_path }}" ` |  | ||||||
|             -DBUILD_SHARED_LIBS=OFF ` |  | ||||||
|             -Ddeprecated-functions=OFF ` |  | ||||||
|             -Dstatic_runtime=OFF ` |  | ||||||
|             -DVCPKG_TARGET_TRIPLET=x64-windows-static-md-release |  | ||||||
|           cmake --build build |  | ||||||
|           cmake --install build |  | ||||||
|  |  | ||||||
|       - name: Build qBittorrent |  | ||||||
|         run: | |  | ||||||
|           $env:CXXFLAGS+=" /WX" |  | ||||||
|           cmake ` |  | ||||||
|             -B build ` |  | ||||||
|             -G "Ninja" ` |  | ||||||
|             -DCMAKE_BUILD_TYPE=RelWithDebInfo ` |  | ||||||
|             -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ` |  | ||||||
|             -DCMAKE_TOOLCHAIN_FILE="${{ env.vcpkg_path }}/scripts/buildsystems/vcpkg.cmake" ` |  | ||||||
|             -DBOOST_ROOT="${{ env.boost_path }}" ` |  | ||||||
|             -DLibtorrentRasterbar_DIR="${{ env.libtorrent_path }}/install/lib/cmake/LibtorrentRasterbar" ` |  | ||||||
|             -DMSVC_RUNTIME_DYNAMIC=ON ` |  | ||||||
|             -DTESTING=ON ` |  | ||||||
|             -DVCPKG_TARGET_TRIPLET=x64-windows-static-md-release ` |  | ||||||
|             -DVERBOSE_CONFIGURE=ON ` |  | ||||||
|             --graphviz=build/target_graph.dot |  | ||||||
|           cmake --build build --target qbt_update_translations |  | ||||||
|           cmake --build build |  | ||||||
|           cmake --build build --target check |  | ||||||
|  |  | ||||||
|       - name: Prepare build artifacts |  | ||||||
|         run: | |  | ||||||
|           mkdir upload |  | ||||||
|           mkdir upload/qBittorrent |  | ||||||
|           copy build/qbittorrent.exe upload/qBittorrent |  | ||||||
|           copy build/qbittorrent.pdb upload/qBittorrent |  | ||||||
|           copy dist/windows/qt.conf upload/qBittorrent |  | ||||||
|           # runtimes |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Core.dll" upload/qBittorrent |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Gui.dll" upload/qBittorrent |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Network.dll" upload/qBittorrent |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Sql.dll" upload/qBittorrent |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Svg.dll" upload/qBittorrent |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Widgets.dll" upload/qBittorrent |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Xml.dll" upload/qBittorrent |  | ||||||
|           mkdir upload/qBittorrent/plugins/iconengines |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/plugins/iconengines/qsvgicon.dll" upload/qBittorrent/plugins/iconengines |  | ||||||
|           mkdir upload/qBittorrent/plugins/imageformats |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/plugins/imageformats/qico.dll" upload/qBittorrent/plugins/imageformats |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/plugins/imageformats/qsvg.dll" upload/qBittorrent/plugins/imageformats |  | ||||||
|           mkdir upload/qBittorrent/plugins/platforms |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/plugins/platforms/qwindows.dll" upload/qBittorrent/plugins/platforms |  | ||||||
|           mkdir upload/qBittorrent/plugins/sqldrivers |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/qBittorrent/plugins/sqldrivers |  | ||||||
|           mkdir upload/qBittorrent/plugins/styles |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/plugins/styles/qmodernwindowsstyle.dll" upload/qBittorrent/plugins/styles |  | ||||||
|           mkdir upload/qBittorrent/plugins/tls |  | ||||||
|           copy "${{ env.Qt_ROOT_DIR }}/plugins/tls/qschannelbackend.dll" upload/qBittorrent/plugins/tls |  | ||||||
|           # cmake additionals |  | ||||||
|           mkdir upload/cmake |  | ||||||
|           copy build/compile_commands.json upload/cmake |  | ||||||
|           copy build/target_graph.dot upload/cmake |  | ||||||
|           mkdir upload/cmake/libtorrent |  | ||||||
|           copy ${{ env.libtorrent_path }}/build/compile_commands.json upload/cmake/libtorrent |  | ||||||
|  |  | ||||||
|       - name: Upload build artifacts |  | ||||||
|         uses: actions/upload-artifact@v4 |  | ||||||
|         with: |  | ||||||
|           name: qBittorrent-CI_Windows-x64_libtorrent-${{ matrix.libt_version }} |  | ||||||
|           path: upload |  | ||||||
|  |  | ||||||
|       - name: Create installer |  | ||||||
|         run: | |  | ||||||
|           7z x -o"dist/windows/" "dist/windows/NSISPlugins.zip" |  | ||||||
|           makensis /DQBT_DIST_DIR="../../upload/qBittorrent" /WX dist/windows/qbittorrent.nsi |  | ||||||
|  |  | ||||||
|       - name: Upload installer |  | ||||||
|         uses: actions/upload-artifact@v4 |  | ||||||
|         with: |  | ||||||
|           name: qBittorrent-CI_Windows-x64_libtorrent-${{ matrix.libt_version }}-setup |  | ||||||
|           path: dist/windows/qbittorrent_*_setup.exe |  | ||||||
							
								
								
									
										115
									
								
								.github/workflows/coverity-scan.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										115
									
								
								.github/workflows/coverity-scan.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,115 +0,0 @@ | |||||||
| 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. |  | ||||||
|  |  | ||||||
| permissions: {} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   coverity_scan: |  | ||||||
|     name: Scan |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|  |  | ||||||
|     strategy: |  | ||||||
|       matrix: |  | ||||||
|         libt_version: ["2.0.10"] |  | ||||||
|         qbt_gui: ["GUI=ON"] |  | ||||||
|         qt_version: ["6.5.2"] |  | ||||||
|  |  | ||||||
|     env: |  | ||||||
|       boost_path: "${{ github.workspace }}/../boost" |  | ||||||
|       coverity_path: "${{ github.workspace }}/../coverity" |  | ||||||
|       libtorrent_path: "${{ github.workspace }}/../libtorrent" |  | ||||||
|  |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout repository |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|  |  | ||||||
|       - name: Install dependencies |  | ||||||
|         run: | |  | ||||||
|           sudo apt update |  | ||||||
|           sudo apt install \ |  | ||||||
|             build-essential cmake ninja-build \ |  | ||||||
|             libssl-dev libxkbcommon-x11-dev libxcb-cursor-dev zlib1g-dev |  | ||||||
|  |  | ||||||
|       - name: Install boost |  | ||||||
|         env: |  | ||||||
|           BOOST_MAJOR_VERSION: "1" |  | ||||||
|           BOOST_MINOR_VERSION: "85" |  | ||||||
|           BOOST_PATCH_VERSION: "0" |  | ||||||
|         run: | |  | ||||||
|           boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" |  | ||||||
|           boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" |  | ||||||
|           set +e |  | ||||||
|           curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url" |  | ||||||
|           tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" |  | ||||||
|           if [ "$_exitCode" -ne "0" ]; then |  | ||||||
|             curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url2" |  | ||||||
|             tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" |  | ||||||
|           fi |  | ||||||
|           mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}" |  | ||||||
|  |  | ||||||
|       - name: Install Qt |  | ||||||
|         uses: jurplel/install-qt-action@v4 |  | ||||||
|         with: |  | ||||||
|           version: ${{ matrix.qt_version }} |  | ||||||
|           archives: icu qtbase qtdeclarative qtsvg qttools |  | ||||||
|           cache: true |  | ||||||
|  |  | ||||||
|       - name: Install libtorrent |  | ||||||
|         run: | |  | ||||||
|           git clone \ |  | ||||||
|             --branch v${{ matrix.libt_version }} \ |  | ||||||
|             --depth 1 \ |  | ||||||
|             --recurse-submodules \ |  | ||||||
|             https://github.com/arvidn/libtorrent.git \ |  | ||||||
|             ${{ env.libtorrent_path }} |  | ||||||
|           cd ${{ env.libtorrent_path }} |  | ||||||
|           cmake \ |  | ||||||
|             -B build \ |  | ||||||
|             -G "Ninja" \ |  | ||||||
|             -DCMAKE_BUILD_TYPE=RelWithDebInfo \ |  | ||||||
|             -DBOOST_ROOT="${{ env.boost_path }}" \ |  | ||||||
|             -Ddeprecated-functions=OFF |  | ||||||
|           cmake --build build |  | ||||||
|           sudo cmake --install build |  | ||||||
|  |  | ||||||
|       - name: Download Coverity Build Tool |  | ||||||
|         run: | |  | ||||||
|           curl \ |  | ||||||
|             -L \ |  | ||||||
|             -d "token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=qbittorrent%2FqBittorrent" \ |  | ||||||
|             -o "${{ runner.temp }}/coverity_tool.tgz" \ |  | ||||||
|             "https://scan.coverity.com/download/linux64" |  | ||||||
|           mkdir -p ${{ env.coverity_path }} |  | ||||||
|           tar \ |  | ||||||
|             -xf "${{ runner.temp }}/coverity_tool.tgz" \ |  | ||||||
|             -C "${{ env.coverity_path }}" \ |  | ||||||
|             --strip-components 1 |  | ||||||
|  |  | ||||||
|       - name: Build qBittorrent |  | ||||||
|         run: | |  | ||||||
|           cmake \ |  | ||||||
|             -B build \ |  | ||||||
|             -G "Ninja" \ |  | ||||||
|             -DCMAKE_BUILD_TYPE=RelWithDebInfo \ |  | ||||||
|             -DBOOST_ROOT="${{ env.boost_path }}" \ |  | ||||||
|             -DVERBOSE_CONFIGURE=ON \ |  | ||||||
|             -D${{ matrix.qbt_gui }} |  | ||||||
|           PATH="${{ env.coverity_path }}/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 |  | ||||||
							
								
								
									
										13
									
								
								.github/workflows/helper/appimage/export_vars.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.github/workflows/helper/appimage/export_vars.sh
									
									
									
									
										vendored
									
									
								
							| @@ -1,13 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
|  |  | ||||||
| # this file is called from AppRun so 'root_dir' will point to where AppRun is |  | ||||||
| root_dir="$(readlink -f "$(dirname "$0")")" |  | ||||||
|  |  | ||||||
| # Insert the default values because after the test we prepend our path |  | ||||||
| # and it will create problems with DEs (eg KDE) that don't set the variable |  | ||||||
| # and rely on the default paths |  | ||||||
| if [ -z "${XDG_DATA_DIRS}" ]; then |  | ||||||
|     XDG_DATA_DIRS="/usr/local/share/:/usr/share/" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| export XDG_DATA_DIRS="${root_dir}/usr/share:${XDG_DATA_DIRS}" |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| [Desktop Entry] |  | ||||||
| Name=qBittorrent |  | ||||||
| Exec=qbittorrent-nox %U |  | ||||||
| Icon=qbittorrent |  | ||||||
| Type=Application |  | ||||||
| Categories=Network |  | ||||||
							
								
								
									
										14
									
								
								.github/workflows/helper/codeql/cpp.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/helper/codeql/cpp.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,14 +0,0 @@ | |||||||
| name: "CodeQL config for C++" |  | ||||||
|  |  | ||||||
| queries: |  | ||||||
|   - uses: security-and-quality |  | ||||||
|  |  | ||||||
| query-filters: |  | ||||||
|   - exclude: |  | ||||||
|       id: cpp/commented-out-code |  | ||||||
|   - exclude: |  | ||||||
|       id: cpp/include-non-header |  | ||||||
|   - exclude: |  | ||||||
|       id: cpp/loop-variable-changed |  | ||||||
|   - exclude: |  | ||||||
|       id: cpp/useless-expression |  | ||||||
							
								
								
									
										11
									
								
								.github/workflows/helper/codeql/js.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.github/workflows/helper/codeql/js.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,11 +0,0 @@ | |||||||
| name: "CodeQL config for Javascript" |  | ||||||
|  |  | ||||||
| paths-ignore: |  | ||||||
|   - "**/lib/*" |  | ||||||
|  |  | ||||||
| queries: |  | ||||||
|   - uses: security-and-quality |  | ||||||
|  |  | ||||||
| query-filters: |  | ||||||
|   - exclude: |  | ||||||
|       id: js/superfluous-trailing-arguments |  | ||||||
							
								
								
									
										18
									
								
								.github/workflows/helper/pre-commit/.typos.toml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/helper/pre-commit/.typos.toml
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +0,0 @@ | |||||||
| # https://github.com/crate-ci/typos/blob/master/docs/reference.md |  | ||||||
| # https://github.com/crate-ci/typos/blob/master/docs/design.md#identifiers-and-words |  | ||||||
|  |  | ||||||
| # try adding to `identifiers` list first, if doesn't work then `words` list |  | ||||||
|  |  | ||||||
| [default.extend-identifiers] |  | ||||||
| additionals = "additionals" |  | ||||||
| caf = "caf" |  | ||||||
| curren = "curren" |  | ||||||
| FO = "FO" |  | ||||||
| ket = "ket" |  | ||||||
| Q_INVOKABLE = "Q_INVOKABLE" |  | ||||||
| switchs = "switchs" |  | ||||||
| ths = "ths" |  | ||||||
|  |  | ||||||
| [default.extend-words] |  | ||||||
| BA = "BA" |  | ||||||
| helo = "helo" |  | ||||||
| @@ -1,70 +0,0 @@ | |||||||
| #!/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: |  | ||||||
|                 # 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()) |  | ||||||
							
								
								
									
										25
									
								
								.github/workflows/stale_bot.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/stale_bot.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,25 +0,0 @@ | |||||||
| name: Stale bot |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   schedule: |  | ||||||
|     - cron: '0 0 * * *' |  | ||||||
|  |  | ||||||
| permissions: |  | ||||||
|   pull-requests: write |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   stale: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|       - name: Mark and close stale PRs |  | ||||||
|         uses: actions/stale@v9 |  | ||||||
|         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 |  | ||||||
							
								
								
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +1,9 @@ | |||||||
| .vscode/ |  | ||||||
| src/gui/geoip/GeoIP.dat | src/gui/geoip/GeoIP.dat | ||||||
| src/gui/geoip/GeoIP.dat.gz | src/gui/geoip/GeoIP.dat.gz | ||||||
| src/qbittorrent | src/qbittorrent | ||||||
| src/qbittorrent-nox | src/qbittorrent-nox | ||||||
| src/release | src/release | ||||||
| src/debug | src/debug | ||||||
| src/base/version.h |  | ||||||
| CMakeLists.txt.user* |  | ||||||
| qbittorrent.pro.user* | qbittorrent.pro.user* | ||||||
| conf.pri | conf.pri | ||||||
| Makefile* | Makefile* | ||||||
| @@ -17,15 +14,13 @@ Makefile* | |||||||
| *.o | *.o | ||||||
| *.pdb | *.pdb | ||||||
| *.exe | *.exe | ||||||
| *.dll |  | ||||||
|  |  | ||||||
| # Generated MOC, resource and UI files | # Generated MOC, resource and UI files | ||||||
| moc_*.cpp | moc_*.cpp | ||||||
| moc_*.h |  | ||||||
| qrc_*.cpp | qrc_*.cpp | ||||||
| ui_*.h | ui_*.h | ||||||
| *.moc | *.moc | ||||||
| *.qm | src/lang/qbittorrent_*.qm | ||||||
| .DS_Store | .DS_Store | ||||||
| .qmake.stash | .qmake.stash | ||||||
| src/qbittorrent.app | src/qbittorrent.app | ||||||
| @@ -35,13 +30,3 @@ src/qbittorrent.app | |||||||
| aclocal.m4 | aclocal.m4 | ||||||
| autom4te.cache/* | autom4te.cache/* | ||||||
| config.status | config.status | ||||||
| src/icons/qbt-theme/build-icons/node_modules/ |  | ||||||
| src/icons/skin/build-icons/node_modules/ |  | ||||||
| src/icons/skin/build-icons/icons/*.png |  | ||||||
|  |  | ||||||
| # CMake build directory |  | ||||||
| build/ |  | ||||||
|  |  | ||||||
| # Web UI tools |  | ||||||
| node_modules |  | ||||||
| package-lock.json |  | ||||||
|   | |||||||
| @@ -1,109 +0,0 @@ | |||||||
| repos: |  | ||||||
|   - repo: local |  | ||||||
|     hooks: |  | ||||||
|       - id: check-translation-tag |  | ||||||
|         name: Check newline characters in <translation> tag |  | ||||||
|         entry: .github/workflows/helper/pre-commit/check_translation_tag.py |  | ||||||
|         language: script |  | ||||||
|         exclude: | |  | ||||||
|           (?x)^( |  | ||||||
|             src/lang/.* |  | ||||||
|           )$ |  | ||||||
|         types_or: |  | ||||||
|           - ts |  | ||||||
|  |  | ||||||
|   - repo: https://github.com/pre-commit/pre-commit-hooks.git |  | ||||||
|     rev: v4.5.0 |  | ||||||
|     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)^( |  | ||||||
|           src/webui/www/private/css/lib/.* | |  | ||||||
|           src/webui/www/private/scripts/lib/.* | |  | ||||||
|           dist/windows/license.txt | |  | ||||||
|           test/testdata/crlf.txt |  | ||||||
|         )$ |  | ||||||
|  |  | ||||||
|     - id: end-of-file-fixer |  | ||||||
|       name: Check trailing newlines |  | ||||||
|       exclude: | |  | ||||||
|         (?x)^( |  | ||||||
|           configure | |  | ||||||
|           src/webui/www/private/css/lib/.* | |  | ||||||
|           src/webui/www/private/scripts/lib/.* | |  | ||||||
|           test/testdata/crlf.txt |  | ||||||
|         )$ |  | ||||||
|       exclude_types: |  | ||||||
|         - svg |  | ||||||
|         - ts |  | ||||||
|  |  | ||||||
|     - id: trailing-whitespace |  | ||||||
|       name: Check trailing whitespaces |  | ||||||
|       exclude: | |  | ||||||
|         (?x)^( |  | ||||||
|           src/webui/www/private/css/lib/.* | |  | ||||||
|           src/webui/www/private/scripts/lib/.* |  | ||||||
|         )$ |  | ||||||
|       exclude_types: |  | ||||||
|         - ts |  | ||||||
|  |  | ||||||
|   - repo: https://github.com/codespell-project/codespell.git |  | ||||||
|     rev: v2.2.6 |  | ||||||
|     hooks: |  | ||||||
|     - id: codespell |  | ||||||
|       name: Check spelling (codespell) |  | ||||||
|       args: ["--ignore-words-list", "additionals,curren,fo,ist,ket,searchin,superseeding,te,ths"] |  | ||||||
|       exclude: | |  | ||||||
|         (?x)^( |  | ||||||
|           .*\.desktop | |  | ||||||
|           .*\.qrc | |  | ||||||
|           build-aux/.* | |  | ||||||
|           Changelog | |  | ||||||
|           dist/windows/installer-translations/.* | |  | ||||||
|           m4/.* | |  | ||||||
|           src/base/3rdparty/.* | |  | ||||||
|           src/searchengine/nova3/socks.py | |  | ||||||
|           src/webui/www/private/scripts/lib/.* |  | ||||||
|         )$ |  | ||||||
|       exclude_types: |  | ||||||
|         - ts |  | ||||||
|  |  | ||||||
|   - repo: https://github.com/crate-ci/typos.git |  | ||||||
|     rev: v1.16.18 |  | ||||||
|     hooks: |  | ||||||
|     - id: typos |  | ||||||
|       name: Check spelling (typos) |  | ||||||
|       args: ["--config", ".github/workflows/helper/pre-commit/.typos.toml"] |  | ||||||
|       exclude: | |  | ||||||
|         (?x)^( |  | ||||||
|           .*\.asc | |  | ||||||
|           .*\.desktop | |  | ||||||
|           .*\.qrc | |  | ||||||
|           \.pre-commit-config\.yaml | |  | ||||||
|           build-aux/.* | |  | ||||||
|           Changelog | |  | ||||||
|           configure.* | |  | ||||||
|           dist/windows/installer-translations/.* | |  | ||||||
|           m4/.* | |  | ||||||
|           src/base/3rdparty/.* | |  | ||||||
|           src/searchengine/nova3/socks.py | |  | ||||||
|           src/webui/www/private/scripts/lib/.* |  | ||||||
|         )$ |  | ||||||
|       exclude_types: |  | ||||||
|         - svg |  | ||||||
|         - ts |  | ||||||
							
								
								
									
										152
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										152
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,152 @@ | |||||||
|  | language: cpp | ||||||
|  |  | ||||||
|  | os: | ||||||
|  |   - linux | ||||||
|  |   - osx | ||||||
|  | osx_image: xcode7 | ||||||
|  |  | ||||||
|  | env: | ||||||
|  |   matrix: | ||||||
|  |     # Uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package | ||||||
|  |     #- lt_branch=dist gui=true | ||||||
|  |     #- lt_branch=dist gui=false | ||||||
|  |     - lt_branch=RC_1_0 qt=5 gui=true | ||||||
|  |     - lt_branch=RC_1_0 qt=5 gui=false | ||||||
|  |     - lt_branch=RC_1_0 qt=4 gui=true | ||||||
|  |     - lt_branch=RC_1_0 qt=4 gui=false | ||||||
|  |   global: | ||||||
|  |     - secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8=" | ||||||
|  |     - coverity_branch: coverity_scan | ||||||
|  |  | ||||||
|  | branches: | ||||||
|  |   except: | ||||||
|  |     - search_encoding_windows | ||||||
|  |     - v2_9_x | ||||||
|  |  | ||||||
|  | notifications: | ||||||
|  |   email: | ||||||
|  |     on_success: change | ||||||
|  |     on_failure: change | ||||||
|  |  | ||||||
|  | # container-based builds | ||||||
|  | #sudo: false | ||||||
|  | cache: ccache | ||||||
|  |  | ||||||
|  | # opt-in Ubuntu Trusty | ||||||
|  | sudo: required | ||||||
|  | dist: trusty | ||||||
|  |  | ||||||
|  | addons: | ||||||
|  |   coverity_scan: | ||||||
|  |     project: | ||||||
|  |       name: "qbittorrent/qBittorrent" | ||||||
|  |       description: "Build submitted via Travis CI" | ||||||
|  |     build_command_prepend: "./bootstrap.sh && ./configure $qbtconf" | ||||||
|  |     build_command: make | ||||||
|  |     branch_pattern: $coverity_branch | ||||||
|  |     notification_email: sledgehammer999@qbittorrent.org | ||||||
|  |   apt: | ||||||
|  |     #sources: | ||||||
|  |     # sources list: https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json | ||||||
|  |     #- ubuntu-toolchain-r-test | ||||||
|  |     #- boost-latest | ||||||
|  |     packages: | ||||||
|  |     # packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise | ||||||
|  |     - autoconf | ||||||
|  |     - automake | ||||||
|  |     - colormake | ||||||
|  |     - libssl-dev | ||||||
|  |     - libboost-dev | ||||||
|  |     - libboost-system-dev | ||||||
|  |     # uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package | ||||||
|  |     #- libtorrent-rasterbar6 | ||||||
|  |  | ||||||
|  | before_install: | ||||||
|  |   # only allow specific build for coverity scan, others will stop | ||||||
|  |   - if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$lt_branch" = "RC_1_0" -a "$gui" = true ]; then exit ; fi | ||||||
|  |  | ||||||
|  |   - shopt -s expand_aliases | ||||||
|  |   - alias make="colormake -j3" # Using nprocs/2 sometimes may fail (gcc is killed by system) | ||||||
|  |   #- libt_path="$HOME/libt_install" | ||||||
|  |   #- ltconf="$ltconf --prefix="$libt_path" --disable-geoip" | ||||||
|  |   - qbt_path="$HOME/qbt_install" | ||||||
|  |   - qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH="$libt_path/lib/pkgconfig":$PKG_CONFIG_PATH" | ||||||
|  |  | ||||||
|  |   # options for specific branches | ||||||
|  |   - if [ "$qt" = 4 ]; then qbtconf="$qbtconf --with-qt4" ; fi | ||||||
|  |   - if [ "$gui" = false ]; then qbtconf="$qbtconf --disable-gui" ; fi | ||||||
|  |   - | | ||||||
|  |     if [ "$TRAVIS_OS_NAME" = "linux" ]; then | ||||||
|  |       # setup virtual display for after_success target | ||||||
|  |       if [ "$gui" = true ]; then export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi ; | ||||||
|  |     fi | ||||||
|  |   - | | ||||||
|  |     if [ "$TRAVIS_OS_NAME" = "osx" ]; then | ||||||
|  |       qbtconf="$qbtconf --disable-qt-dbus" ; | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |   # print settings | ||||||
|  |   - echo $lt_branch | ||||||
|  |   - echo $gui | ||||||
|  |   - echo $ltconf | ||||||
|  |   - echo $qbtconf | ||||||
|  |  | ||||||
|  | install: | ||||||
|  |   - | | ||||||
|  |     if [ "$TRAVIS_OS_NAME" = "linux" ]; then | ||||||
|  |       # libtorrent | ||||||
|  |       sudo add-apt-repository --yes ppa:qbittorrent-team/qbittorrent-stable ; | ||||||
|  |       sudo apt-get update -qq ; | ||||||
|  |       sudo apt-get install -qq libtorrent-rasterbar-dev ; | ||||||
|  |  | ||||||
|  |       # build libtorrent from source | ||||||
|  |       #if [ "$lt_branch" != "dist" ]; then | ||||||
|  |         #cd "$HOME" && pwd && git clone --depth 1 https://github.com/arvidn/libtorrent.git --branch $lt_branch ; | ||||||
|  |         #cd libtorrent && ./autotool.sh && ./configure $ltconf && make install ; | ||||||
|  |       #fi ; | ||||||
|  |  | ||||||
|  |       # Qt | ||||||
|  |       if [ "$qt" = 4 ]; then sudo apt-get -qq install qt4-default libqt4-dev ; fi ; | ||||||
|  |       if [ "$qt" = 5 ]; then sudo apt-get -qq install qt5-default qtbase5-dev qttools5-dev-tools ; fi ; | ||||||
|  |  | ||||||
|  |       # ccache | ||||||
|  |       if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then | ||||||
|  |         dpkg-query -L ccache && export use_ccache=true ; | ||||||
|  |         ccache -V && ccache --show-stats && ccache --zero-stats ; | ||||||
|  |       fi ; | ||||||
|  |     fi | ||||||
|  |   - | | ||||||
|  |     if [ "$TRAVIS_OS_NAME" = "osx" ]; then | ||||||
|  |       # dependencies | ||||||
|  |       brew update > /dev/null && brew install colormake ccache libtorrent-rasterbar ; | ||||||
|  |  | ||||||
|  |       # Qt | ||||||
|  |       if [ "$qt" = 4 ]; then brew install qt && ln -s /usr/local/Cellar/qt/4.8.7_2/plugins /usr/local ; fi ; | ||||||
|  |       if [ "$qt" = 5 ]; then brew install qt5 && brew link --force qt5 && ln -s /usr/local/Cellar/qt5/5.6.0/plugins /usr/local ; fi ; | ||||||
|  |  | ||||||
|  |       # ccache | ||||||
|  |       if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then | ||||||
|  |         export PATH="/usr/local/opt/ccache/libexec:$PATH" && export use_ccache=true ; | ||||||
|  |         ccache -V && ccache --show-stats && ccache --zero-stats ; | ||||||
|  |       fi ; | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  | script: | ||||||
|  |   - if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # skip usual build when running coverity scan | ||||||
|  |   - cd "$TRAVIS_BUILD_DIR" && ./bootstrap.sh && ./configure $qbtconf | ||||||
|  |   - | | ||||||
|  |     if [ "$TRAVIS_OS_NAME" = "osx" ]; then | ||||||
|  |       sed -i "" -e "s/^\(CC.*&&\).*$/\1 $CC/" src/Makefile ;  # workaround for Qt & ccache: https://bugreports.qt.io/browse/QTBUG-31034 | ||||||
|  |       sed -i "" -e "s/^\(CXX.*&&\).*$/\1 $CXX/" src/Makefile ; | ||||||
|  |       sed -i "" -e 's/^\(CXXFLAGS.*\)$/\1 -Wno-unused-local-typedefs -Wno-inconsistent-missing-override/' src/Makefile ; | ||||||
|  |     fi | ||||||
|  |   - make && make install | ||||||
|  |  | ||||||
|  | after_success: | ||||||
|  |   - if [ "$gui" = true ]; then qbt_exe="qbittorrent" ; else qbt_exe="qbittorrent-nox" ; fi | ||||||
|  |   - if [ "$TRAVIS_OS_NAME" = "linux" ]; then cd "$qbt_path/bin" ; fi | ||||||
|  |   - if [ "$TRAVIS_OS_NAME" = "osx" ]; then cd "$TRAVIS_BUILD_DIR/src/" && macdeployqt "$qbt_exe.app" && cd "$qbt_exe.app/Contents/MacOS" ; fi | ||||||
|  |   - ./$qbt_exe --version | ||||||
|  |  | ||||||
|  | after_script: | ||||||
|  |   - if [ "$use_ccache" = true ]; then ccache --show-stats ; fi | ||||||
							
								
								
									
										17
									
								
								.tx/config
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								.tx/config
									
									
									
									
									
								
							| @@ -1,24 +1,19 @@ | |||||||
| [main] | [main] | ||||||
| host = https://www.transifex.com | host = https://www.transifex.com | ||||||
|  |  | ||||||
| [o:sledgehammer999:p:qbittorrent:r:qbittorrent_v50x] | [qbittorrent.qbittorrent_v3_3_x] | ||||||
| file_filter = src/lang/qbittorrent_<lang>.ts | file_filter = src/lang/qbittorrent_<lang>.ts | ||||||
|  | lang_map = pt: pt_PT | ||||||
| source_file = src/lang/qbittorrent_en.ts | source_file = src/lang/qbittorrent_en.ts | ||||||
| source_lang = en | source_lang = en | ||||||
| type = QT | type = QT | ||||||
| minimum_perc = 23 | minimum_perc = 23 | ||||||
| lang_map     = pt: pt_PT, zh: zh_CN | mode = developer | ||||||
|  |  | ||||||
| [o:sledgehammer999:p:qbittorrent:r:qbittorrent_webui_v50x] |  | ||||||
| file_filter  = src/webui/www/translations/webui_<lang>.ts |  | ||||||
| source_file  = src/webui/www/translations/webui_en.ts |  | ||||||
| source_lang  = en |  | ||||||
| type         = QT |  | ||||||
| minimum_perc = 23 |  | ||||||
| lang_map     = pt: pt_PT, zh: zh_CN |  | ||||||
|  |  | ||||||
| [o:sledgehammer999:p:qbittorrent:r:qbittorrentdesktop_master] | [qbittorrent.qbittorrentdesktop_master] | ||||||
| source_file  = dist/unix/org.qbittorrent.qBittorrent.desktop | source_file = src/icons/qBittorrent.desktop | ||||||
| source_lang = en | source_lang = en | ||||||
| type = DESKTOP | type = DESKTOP | ||||||
| minimum_perc = 23 | minimum_perc = 23 | ||||||
|  | mode = developer | ||||||
|   | |||||||
							
								
								
									
										87
									
								
								5B7CC9A2.asc
									
									
									
									
									
								
							
							
						
						
									
										87
									
								
								5B7CC9A2.asc
									
									
									
									
									
								
							| @@ -26,67 +26,28 @@ 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 | =tDGM | ||||||
| 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 |  | ||||||
| xdpwp07LYo2ilhMI8RnzmtoRmg== |  | ||||||
| =UBeB |  | ||||||
| -----END PGP PUBLIC KEY BLOCK----- | -----END PGP PUBLIC KEY BLOCK----- | ||||||
|   | |||||||
							
								
								
									
										99
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -17,78 +17,73 @@ Contributors: | |||||||
| * Nick Tiskov <daymansmail@gmail.com> | * Nick Tiskov <daymansmail@gmail.com> | ||||||
|  |  | ||||||
| Code from other projects: | Code from other projects: | ||||||
| * files src/app/qtlocalpeer/* | * files src/qtsingleapplication/* src/lineedit/* | ||||||
|   copyright: Nokia Corporation |   copyright: Nokia Corporation | ||||||
|   license: mixed |   license: LGPL | ||||||
|  |  | ||||||
| * files src/gui/lineedit.* | * files src/ico.cpp src/ico.h | ||||||
|   copyright: Trolltech ASA <info@trolltech.com> |   copyright: Malte Starostik <malte@kde.org> | ||||||
|   license: custom |   license: LGPL | ||||||
|  |  | ||||||
| * files src/search_engine/socks.py | * files src/search_engine/socks.py | ||||||
|   copyright: Dan Haim <negativeiq@users.sourceforge.net> |   copyright: Dan Haim <negativeiq@users.sourceforge.net> | ||||||
|   license: BSD |   license: BSD | ||||||
|  |  | ||||||
| * files src/webui/www/private/css/lib/vanillaSelectBox.css src/webui/www/private/scripts/lib/vanillaSelectBox.js | * file src/stacktrace_win.h | ||||||
|   copyright: Philippe Meyer <pmg.meyer@gmail.com> |   copyright: Quassel Project | ||||||
|   license: MIT |   license: GPLv2/3 | ||||||
|  |  | ||||||
| Images Authors: | Images Authors: | ||||||
| * files: src/icons/qbittorrent-tray.svg | * files: src/icons/*.png | ||||||
|   copyright: Provided by HVS <hvs linuxmail org> (raster first proposal) and Atif Afzal(@atfzl github) <atif5801@gmail.com> (vectorized and modified) |   copyright: Gnome Icon Theme | ||||||
|   license: GPLv2+ |   license: GPLv2 | ||||||
|  |   url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme | ||||||
|  |  | ||||||
| * files: src/qbittorrent_file.ico src/icons/fileicon.svg | * files: src/oxygen/*.png | ||||||
|   copyright: 'unknown.svg' (LGPLv3+) from Oxygen Icon Theme was used as base which was slightly modified and 'qbittorrent-tray.svg' (GPLv2+) was overlaid above it. |   copyright: Oxygen Icon Theme (KDE) | ||||||
|   license: GPLv3+ |   license: LGPL | ||||||
|  |   url: http://www.oxygen-icons.org | ||||||
|  |  | ||||||
| * files: src/icons/flags/*.svg | * files: src/icons/flags/*.png | ||||||
|   copyright: lipis/flag-icons |   copyright: Mark James <mjames@gmail.com> | ||||||
|   license: MIT |   license: Public Domain | ||||||
|   url: https://github.com/lipis/flag-icons/ |   url: http://www.famfamfam.com | ||||||
|  |  | ||||||
| * file: src/webui/www/private/images/tabs.gif | * files: src/icons/skin/*.png | ||||||
|  |   files: src/menuicons/YYxYY/*.png | ||||||
|  |   copyright: Mateusz Tobola <tobejodok@qbittorrent.org> | ||||||
|  |   license: GPLv2 | ||||||
|  |  | ||||||
|  | * file: src/icons/skin/tabs.gif | ||||||
|   copyright: Greg Houston <gregory.houston@gmail.com> |   copyright: Greg Houston <gregory.houston@gmail.com> | ||||||
|   license: MIT |   license: MIT | ||||||
|  |  | ||||||
| * file: src/icons/qbittorrent-tray-dark.svg src/icons/qbittorrent-tray-light.svg | * file: src/icons/skin/qbittorrent_mono* | ||||||
|   copyright: Daniel Eguren <deguren@gmail.com> |   copyright: Daniel Eguren <deguren@gmail.com> | ||||||
|   modified by: now-im <now-im.d8gcu@simplelogin.com> (@now-im) |  | ||||||
|   license: LGPL |   license: LGPL | ||||||
|  |  | ||||||
| * folder: src/icons/ | * file: src/search_engine/engines/btjunkie.png | ||||||
|   files: application-rss+xml.svg, application-x-mswinurl.svg, connected.svg, disconnected.svg, checked-completed.svg, configure.svg, |   copyright: Downloaded from btjunkie.org | ||||||
|          edit-copy.svg, edit-rename.svg, folder-documents.svg, folder-new.svg, folder-remote.svg, go-bottom.svg, go-down.svg, go-top.svg, |  | ||||||
|          go-up.svg, hash.svg, inode-directory.svg, insert-link.svg, kt-magnet.svg, media-playback-pause.svg, media-playback-start.svg, |  | ||||||
|          media-seek-forward.svg, network-connect.svg, object-locked.svg, queued.svg, ratio.svg, reannounce.svg, slow_off.svg, slow.svg, |  | ||||||
|          speedometer.svg, system-log-out.svg, tags.svg, task-complete.svg, task-reject.svg, tracker-error.svg, tracker-warning.svg, |  | ||||||
|          trackerless.svg, trackers.svg, view-categories.svg |  | ||||||
|   copyright: now-im <now-im.d8gcu@simplelogin.com> (@now-im) modified from La-Capitaine icon theme (https://github.com/keeferrourke/la-capitaine-icon-theme) |  | ||||||
|   license: GPLv3+ |  | ||||||
|  |  | ||||||
| * folder: src/icons/ | * file: src/search_engine/engines/isohunt.png | ||||||
|   files: application-exit.svg, collapse.svg, dialog-warning.svg, edit-find-user.svg, edit-find.svg, filter-all.svg, firewalled.svg, |   copyright: Downloaded from isohunt.com | ||||||
|          help-about.svg, help-contents.svg, ip-blocked.svg, list-remove.svg, loading.svg, mail-folder-inbox.svg, name.svg, network-server.svg, |  | ||||||
|          office-chart-line.svg, plugins.svg, preferences-desktop.svg, preferences-other.svg, preferences-system-network.svg, security-high.svg, |  | ||||||
|          security-low.svg, set-location.svg, torrent-creator.svg, user-group-delete.svg, user-group-new.svg, view-preview.svg, view-refresh.svg, |  | ||||||
|          view-statistics.svg, wallet-open.svg, webuiapplication-exit.svg, collapse.svg, dialog-warning.svg, edit-find-user.svg, edit-find.svg, |  | ||||||
|          filter-all.svg, firewalled.svg, help-about.svg, help-contents.svg, ip-blocked.svg, list-remove.svg, loading.svg, mail-folder-inbox.svg, |  | ||||||
|          name.svg, network-server.svg, office-chart-line.svg, plugins.svg, preferences-desktop.svg, preferences-other.svg, |  | ||||||
|          preferences-system-network.svg, security-high.svg, security-low.svg, set-location.svg, torrent-creator.svg, user-group-delete.svg, |  | ||||||
|          user-group-new.svg, view-preview.svg, view-refresh.svg, view-statistics.svg, wallet-open.svg, webui.svg |  | ||||||
|   copyright: now-im <now-im.d8gcu@simplelogin.com> (@now-im) modified from Ionicons icon theme (https://github.com/ionic-team/ionicons) |  | ||||||
|   license: MIT |  | ||||||
|  |  | ||||||
| * folder: src/icons/ | * file: src/search_engine/engines/mininova.png | ||||||
|   files: force-recheck.svg |   copyright: Downloaded from mininova.org | ||||||
|   copyright: now-im <now-im.d8gcu@simplelogin.com> (@now-im) modified from Font-Awesome icon theme (https://github.com/FortAwesome/Font-Awesome) |  | ||||||
|   license: CC BY 4.0 License |  | ||||||
|  |  | ||||||
| * folder: src/icons/ | * file: src/search_engine/engines/piratebay.png | ||||||
|   files: downloading.svg, edit-clear.svg, error.svg, filter-active.svg, filter-inactive.svg, filter-stalled.svg, kt-set-max-download-speed.svg, |   copyright: Downloaded from thepiratebay.org | ||||||
|          kt-set-max-upload-speed.svg, list-add.svg, preferences-web-browser-cookies.svg, stalledDL.svg, stalledUP.svg |  | ||||||
|   copyright: now-im <now-im.d8gcu@simplelogin.com> (@now-im) | * file: src/search_engine/engines/torrentreactor.png | ||||||
|   license: BSD 2-Clause License |   copyright: Downloaded from torrentreactor.net | ||||||
|  |  | ||||||
|  | * file: src/icons/oxygen/checked.png | ||||||
|  |   copyright: Victor Buinsky <allok.victor@gmail.com> | ||||||
|  |    | ||||||
|  | * file: src/icons/skin/ratio.png | ||||||
|  |   copyright: Fatcow Web Hosting | ||||||
|  |   license: Creative Commons Attribution 3.0 License | ||||||
|  |   url: http://www.fatcow.com/free-icons | ||||||
|  |  | ||||||
| Translations authors: | Translations authors: | ||||||
| * files: src/lang/*.ts | * files: src/lang/*.ts | ||||||
| @@ -116,7 +111,7 @@ Translations authors: | |||||||
|   - German: Niels Hoffmann (zentralmaschine@users.sourceforge.net) |   - German: Niels Hoffmann (zentralmaschine@users.sourceforge.net) | ||||||
|   - Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net), Stephanos Antaris (santaris@csd.auth.gr), sledgehammer999(hammered999@gmail.com) and Γιάννης Ανθυμίδης Evropi(Transifex) |   - Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net), Stephanos Antaris (santaris@csd.auth.gr), sledgehammer999(hammered999@gmail.com) and Γιάννης Ανθυμίδης Evropi(Transifex) | ||||||
|   - Hebrew: David Deutsch (d.deffo@gmail.com) |   - Hebrew: David Deutsch (d.deffo@gmail.com) | ||||||
|   - Hungarian: Majoros Péter |   - Hungarian: Majoros Péter (majoros.j.p@t-online.hu) | ||||||
|   - Italian: bovirus (bovirus@live.it) and Matteo Sechi (bu17714@gmail.com) |   - Italian: bovirus (bovirus@live.it) and Matteo Sechi (bu17714@gmail.com) | ||||||
|   - Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com) |   - Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com) | ||||||
|   - Korean: Jin Woo Sin (jin828sin@users.sourceforge.net) |   - Korean: Jin Woo Sin (jin828sin@users.sourceforge.net) | ||||||
|   | |||||||
							
								
								
									
										106
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										106
									
								
								CMakeLists.txt
									
									
									
									
									
								
							| @@ -1,67 +1,65 @@ | |||||||
| cmake_minimum_required(VERSION 3.16 FATAL_ERROR) # Policies <= CMP0097 default to NEW | cmake_minimum_required(VERSION 3.5) | ||||||
|  | cmake_policy(VERSION 3.5) | ||||||
|  |  | ||||||
| project(qBittorrent | project(qBittorrent VERSION 3.4.0.0) | ||||||
|     DESCRIPTION "The qBittorrent BitTorrent client" |  | ||||||
|     HOMEPAGE_URL "https://www.qbittorrent.org/" |  | ||||||
|     LANGUAGES CXX |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| # version requirements - older versions may work, but you are on your own | set(VER_MAJOR ${qBittorrent_VERSION_MAJOR}) | ||||||
| set(minBoostVersion 1.76) | set(VER_MINOR ${qBittorrent_VERSION_MINOR}) | ||||||
| set(minQt6Version 6.5.0) | set(VER_BUGFIX ${qBittorrent_VERSION_PATCH}) | ||||||
| set(minOpenSSLVersion 3.0.2) | set(VER_BUILD ${qBittorrent_VERSION_TWEAK}) | ||||||
| set(minLibtorrent1Version 1.2.19) | set(VER_STATUS "alpha") # Should be empty for stable releases! | ||||||
| set(minLibtorrentVersion 2.0.10) |  | ||||||
| set(minZlibVersion 1.2.11) |  | ||||||
|  |  | ||||||
| include(GNUInstallDirs) | # Don't touch the rest part | ||||||
|  | set(PROJECT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}") | ||||||
|  |  | ||||||
| list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) | if (NOT VER_BUILD EQUAL 0) | ||||||
| include(FeatureSummary) |     set(PROJECT_VERSION "${PROJECT_VERSION}.${VER_BUILD}") | ||||||
| include(FeatureOptionsSetup) |  | ||||||
|  |  | ||||||
| # features, list is loosely sorted by user's interests |  | ||||||
| feature_option(GUI "Build GUI application" ON) |  | ||||||
| feature_option(WEBUI "Enable built-in HTTP server for remote control" ON) |  | ||||||
| feature_option(STACKTRACE "Enable stacktrace support" ON) |  | ||||||
| feature_option(TESTING "Build internal testing suite" OFF) |  | ||||||
| feature_option(VERBOSE_CONFIGURE "Show information about PACKAGES_FOUND and PACKAGES_NOT_FOUND in the configure output (only useful for debugging the CMake build scripts)" OFF) |  | ||||||
|  |  | ||||||
| if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") |  | ||||||
|     feature_option_dependent(DBUS |  | ||||||
|         "Enable support for notifications and power-management features via D-Bus" |  | ||||||
|         ON "GUI" OFF |  | ||||||
|     ) |  | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| if (CMAKE_SYSTEM_NAME STREQUAL "Linux") | set(PROJECT_VERSION "${PROJECT_VERSION}${VER_STATUS}") | ||||||
|     feature_option_dependent(SYSTEMD |  | ||||||
|         "Install systemd service file. Target directory is overridable with `SYSTEMD_SERVICES_INSTALL_DIR` variable" |  | ||||||
|         OFF "NOT GUI" OFF |  | ||||||
|     ) |  | ||||||
| endif() |  | ||||||
|  |  | ||||||
| if (MSVC) | add_definitions(-DVERSION_MAJOR=${VER_MAJOR}) | ||||||
|     feature_option(MSVC_RUNTIME_DYNAMIC "Use MSVC dynamic runtime library (-MD) instead of static (-MT)" ON) | add_definitions(-DVERSION_MINOR=${VER_MINOR}) | ||||||
| endif() | add_definitions(-DVERSION_BUGFIX=${VER_BUGFIX}) | ||||||
|  | add_definitions(-DVERSION_BUILD=${VER_BUILD}) | ||||||
|  |  | ||||||
| if (VERBOSE_CONFIGURE) | # os2 { | ||||||
|     feature_summary(WHAT ALL) | #     DEFINES += VERSION=\'\"v$${PROJECT_VERSION}\"\' | ||||||
| else() | # } else { | ||||||
|     feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES) | add_definitions(-DVERSION="v${PROJECT_VERSION}") | ||||||
| endif() | # } | ||||||
|  | list(APPEND CMAKE_MODULE_PATH ${qBittorrent_SOURCE_DIR}/cmake/Modules) | ||||||
|  |  | ||||||
| # go check the packages | # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og") | ||||||
| include(CheckPackages) | if (UNIX AND NOT APPLE) | ||||||
| # configure for specific platform |     include(GNUInstallDirs) | ||||||
| include(CommonConfig) | endif (UNIX AND NOT APPLE) | ||||||
|  |  | ||||||
|  | if(WIN32) | ||||||
|  |     include(winconf) | ||||||
|  | endif(WIN32) | ||||||
|  |  | ||||||
|  | # we need options here, because they are used not only in "src" subdir, but in the "dist" dir too | ||||||
|  | include(CMakeDependentOption) | ||||||
|  |  | ||||||
|  | option(QT5 "Compile using Qt5" ON) | ||||||
|  | option(SYSTEM_QTSINGLEAPPLICATION | ||||||
|  |     "Use the system qtsingleapplication library or shipped one otherwise") | ||||||
|  | cmake_dependent_option(SYSTEM_QJSON | ||||||
|  |     "Use the shipped qjson library or the system one (Qt4 only)" OFF "NOT QT5" OFF) | ||||||
|  |  | ||||||
|  | option(GUI "Allows to disable GUI for headless running. Disables QtDBus and the GeoIP Database" ON) | ||||||
|  |  | ||||||
|  | option(WEBUI "Allows to disable the WebUI." ON) | ||||||
|  |  | ||||||
|  | if (WIN32) | ||||||
|  |     option(STACKTRACE_WIN "") | ||||||
|  | else (WIN32) | ||||||
|  |     cmake_dependent_option(SYSTEMD "Install the systemd service file (headless only)" OFF | ||||||
|  |         "NOT GUI" OFF) | ||||||
|  |     cmake_dependent_option(DBUS "Enable use of QtDBus (GUI only)" ON "GUI" OFF) | ||||||
|  | endif(WIN32) | ||||||
|  |  | ||||||
| # Generate version header |  | ||||||
| configure_file("src/base/version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/src/base/version.h" @ONLY) |  | ||||||
|  |  | ||||||
| add_subdirectory(src) | add_subdirectory(src) | ||||||
| add_subdirectory(dist) | add_subdirectory(dist) | ||||||
|  |  | ||||||
| if (TESTING) |  | ||||||
|     add_subdirectory(test) |  | ||||||
| endif() |  | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user