You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-14 11:52:15 +02:00
Compare commits
341 Commits
release-4.
...
release-4.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0415c0c6f8 | ||
![]() |
def5765160 | ||
![]() |
9977395c03 | ||
![]() |
2b05b2b471 | ||
![]() |
d1bd426618 | ||
![]() |
b84c5edf51 | ||
![]() |
3ac8c97e6f | ||
![]() |
ede42910da | ||
![]() |
500d0e717b | ||
![]() |
a3f039ffcb | ||
![]() |
81ad324209 | ||
![]() |
81de07789a | ||
![]() |
6a8a1f602f | ||
![]() |
9dfaaa2dd1 | ||
![]() |
c06d6eaa77 | ||
![]() |
d198ee97a5 | ||
![]() |
ac8105c304 | ||
![]() |
6cb16cfbb7 | ||
![]() |
2b475c4296 | ||
![]() |
3a9e4397fd | ||
![]() |
1ce0bb7cee | ||
![]() |
dd4b09f3a9 | ||
![]() |
8c2df049f1 | ||
![]() |
8b66c444ee | ||
![]() |
0ccbdbccf4 | ||
![]() |
d08b6c81ba | ||
![]() |
5f897709cf | ||
![]() |
e25948e737 | ||
![]() |
144956a209 | ||
![]() |
667d4e4211 | ||
![]() |
d957eef331 | ||
![]() |
baa32a20e0 | ||
![]() |
eff465126e | ||
![]() |
09089b2d33 | ||
![]() |
3aa36ad40c | ||
![]() |
24bc5a9875 | ||
![]() |
744a2cb5a3 | ||
![]() |
33e090cfcb | ||
![]() |
063844ed44 | ||
![]() |
899f8a3f61 | ||
![]() |
0f72f22096 | ||
![]() |
ffda0ab0ac | ||
![]() |
21f18623db | ||
![]() |
c4265db0fd | ||
![]() |
bc8d9656f6 | ||
![]() |
bd284facbd | ||
![]() |
7eb77cbcbd | ||
![]() |
86e96b819e | ||
![]() |
132be7ee9d | ||
![]() |
9f8a6e8fb1 | ||
![]() |
e6447c8f28 | ||
![]() |
7dd9e73431 | ||
![]() |
ea82962c5d | ||
![]() |
b2a43eeffc | ||
![]() |
681347148d | ||
![]() |
1f63490755 | ||
![]() |
0140ed356f | ||
![]() |
2c8f322af5 | ||
![]() |
6f31ebd899 | ||
![]() |
014df529c5 | ||
![]() |
482dad00fd | ||
![]() |
7898037006 | ||
![]() |
5c819ee384 | ||
![]() |
a590e7139b | ||
![]() |
89a8e07217 | ||
![]() |
5c05bdaa27 | ||
![]() |
7006afc611 | ||
![]() |
9cb3a6d29e | ||
![]() |
2b6baa6099 | ||
![]() |
8881035b7a | ||
![]() |
2be30a50ef | ||
![]() |
81a7b0c034 | ||
![]() |
e7235cc3f8 | ||
![]() |
1570b51f6c | ||
![]() |
6272c6d95d | ||
![]() |
473ae25fd8 | ||
![]() |
42d7d9b5f4 | ||
![]() |
0f77b00428 | ||
![]() |
060804d3b8 | ||
![]() |
f8b6cb4879 | ||
![]() |
a6d27223db | ||
![]() |
bb32b88a62 | ||
![]() |
332b173e08 | ||
![]() |
e921cf677a | ||
![]() |
973b5a4809 | ||
![]() |
688e11a911 | ||
![]() |
f7e6b96493 | ||
![]() |
88bf6f11c7 | ||
![]() |
90e2236990 | ||
![]() |
6ad7cadc4b | ||
![]() |
0499111156 | ||
![]() |
ae44e59c9a | ||
![]() |
1de52f9bcf | ||
![]() |
448e55031e | ||
![]() |
3b748178c2 | ||
![]() |
a4a54ce712 | ||
![]() |
d19b524d2d | ||
![]() |
1e2bf50e66 | ||
![]() |
e7f3409053 | ||
![]() |
9758633eeb | ||
![]() |
3def5e40c4 | ||
![]() |
ca923ed02c | ||
![]() |
e4c3bad93a | ||
![]() |
3b52c5ce97 | ||
![]() |
44b94803a4 | ||
![]() |
5d4644c4fc | ||
![]() |
a2ef115c66 | ||
![]() |
1356f200b8 | ||
![]() |
3c68896b1d | ||
![]() |
265da50791 | ||
![]() |
4037143f4e | ||
![]() |
8cae8ad5c5 | ||
![]() |
50bd845682 | ||
![]() |
ed5aa07526 | ||
![]() |
437b51b3a5 | ||
![]() |
c2ccc9dfa4 | ||
![]() |
b2c7d8211f | ||
![]() |
726455ac3e | ||
![]() |
ae2bb4efeb | ||
![]() |
9971329121 | ||
![]() |
d0ec1c4a86 | ||
![]() |
9c55600d81 | ||
![]() |
b45fb74e01 | ||
![]() |
f16c585a77 | ||
![]() |
9c664d04ae | ||
![]() |
3d0ca83474 | ||
![]() |
e713ffb064 | ||
![]() |
cf1e61bcf5 | ||
![]() |
42b22d6645 | ||
![]() |
2d607f8c1a | ||
![]() |
69256905c2 | ||
![]() |
305316b1fc | ||
![]() |
27e222455b | ||
![]() |
2b18318e0c | ||
![]() |
49cadce253 | ||
![]() |
f1b908b95b | ||
![]() |
4acfcef8da | ||
![]() |
69f2196a22 | ||
![]() |
b20a3c5b8e | ||
![]() |
2c5271b3b2 | ||
![]() |
7696895a88 | ||
![]() |
c1ae5d2572 | ||
![]() |
0e635c7fdd | ||
![]() |
58345e5bbf | ||
![]() |
89382d4ec2 | ||
![]() |
372f5af36b | ||
![]() |
f38736729d | ||
![]() |
bf67ef21c6 | ||
![]() |
cfd40adcb5 | ||
![]() |
8210f9841e | ||
![]() |
ae3d17ec01 | ||
![]() |
349e958be3 | ||
![]() |
42acc75394 | ||
![]() |
8b91dcedb0 | ||
![]() |
a454a0303d | ||
![]() |
789c6de2e8 | ||
![]() |
c2fb51159f | ||
![]() |
bfb0afe3cf | ||
![]() |
26a2d4f24d | ||
![]() |
f6e88c8c55 | ||
![]() |
51033c212a | ||
![]() |
16c858cf61 | ||
![]() |
0496543fce | ||
![]() |
746e8a7be1 | ||
![]() |
6d301ccf55 | ||
![]() |
d441b18da0 | ||
![]() |
13023ba70a | ||
![]() |
ecb7c02d4c | ||
![]() |
fd1ac43157 | ||
![]() |
c6d4a1f7d4 | ||
![]() |
01110690da | ||
![]() |
c998c7d38d | ||
![]() |
230f98da4a | ||
![]() |
c86db0004f | ||
![]() |
e645514c8f | ||
![]() |
f3c9dbd512 | ||
![]() |
ef650293e3 | ||
![]() |
05e217537c | ||
![]() |
13cb3b5ca1 | ||
![]() |
da0b276d5f | ||
![]() |
2d73bc9e7d | ||
![]() |
fdd54fe568 | ||
![]() |
e5ce24e55e | ||
![]() |
d90349709b | ||
![]() |
adb0fe6582 | ||
![]() |
5ed81580c9 | ||
![]() |
86d6fb86d7 | ||
![]() |
ddec247d4f | ||
![]() |
d431ecbe00 | ||
![]() |
be929ed88c | ||
![]() |
2e1f9bf8be | ||
![]() |
7fff393b0e | ||
![]() |
a669ec49ad | ||
![]() |
1880082017 | ||
![]() |
0cbd15890a | ||
![]() |
7fe7c6c277 | ||
![]() |
e4c177fec7 | ||
![]() |
77f4e6c2cf | ||
![]() |
4563b11a2e | ||
![]() |
cb477f9a29 | ||
![]() |
58ac07667e | ||
![]() |
74bf3af41c | ||
![]() |
9317071122 | ||
![]() |
dab32f2090 | ||
![]() |
dc464d4d41 | ||
![]() |
e7e3f6a9db | ||
![]() |
5a1c4e79b3 | ||
![]() |
c6d9ab6810 | ||
![]() |
d7afad835e | ||
![]() |
8608d7b9da | ||
![]() |
72970602af | ||
![]() |
86579ca87d | ||
![]() |
e55582124c | ||
![]() |
bd8b06c607 | ||
![]() |
230fedf069 | ||
![]() |
7bea10f507 | ||
![]() |
7cde969b90 | ||
![]() |
a3b8f6880b | ||
![]() |
ad79fc8d43 | ||
![]() |
fb4bf94a56 | ||
![]() |
1c184944fd | ||
![]() |
ec420f6617 | ||
![]() |
d908227619 | ||
![]() |
ac8167410b | ||
![]() |
26ce187b30 | ||
![]() |
2c4e04e537 | ||
![]() |
b418f65c2f | ||
![]() |
dd3a8d5d56 | ||
![]() |
49e54a55df | ||
![]() |
8cd0a7ae85 | ||
![]() |
442f0df613 | ||
![]() |
f9ee5bdb59 | ||
![]() |
b9602cc6ab | ||
![]() |
abb854a1e6 | ||
![]() |
4ee17a73d0 | ||
![]() |
faf6e82274 | ||
![]() |
c08ec1ac5e | ||
![]() |
cd0b6d9a43 | ||
![]() |
b8f1142abe | ||
![]() |
78859415d6 | ||
![]() |
ef92c17192 | ||
![]() |
22f3abc4b5 | ||
![]() |
a56e6294c1 | ||
![]() |
77909e0093 | ||
![]() |
2c2bb14b2a | ||
![]() |
73c8b77464 | ||
![]() |
042238db87 | ||
![]() |
6e267f8e81 | ||
![]() |
fdc64d9b38 | ||
![]() |
0b42425db5 | ||
![]() |
e5d7738127 | ||
![]() |
422489e2a1 | ||
![]() |
7de983b4e5 | ||
![]() |
e4e55d2a80 | ||
![]() |
926012ce71 | ||
![]() |
487eb554c9 | ||
![]() |
5a96e1fc7a | ||
![]() |
2fe698ee60 | ||
![]() |
177ac32a5e | ||
![]() |
5f34d1555b | ||
![]() |
7cfe68f46c | ||
![]() |
f94f4d2391 | ||
![]() |
73b18d7ef3 | ||
![]() |
817e9c4747 | ||
![]() |
28844eff44 | ||
![]() |
389664213b | ||
![]() |
953b6fd6f8 | ||
![]() |
9b4f3fcbf8 | ||
![]() |
80743180be | ||
![]() |
b2847b2381 | ||
![]() |
eb657ec032 | ||
![]() |
fc2be601df | ||
![]() |
5786c7ff11 | ||
![]() |
4a183dd968 | ||
![]() |
7c10dba10c | ||
![]() |
894446d308 | ||
![]() |
47e9c5ac08 | ||
![]() |
7f47ac11f1 | ||
![]() |
67b17891fa | ||
![]() |
dd5b7ba05b | ||
![]() |
61aa4d9f1c | ||
![]() |
6e924b668e | ||
![]() |
618ce33fa0 | ||
![]() |
ac413c76b9 | ||
![]() |
f266184514 | ||
![]() |
8c48bf4a70 | ||
![]() |
8bee69c9fc | ||
![]() |
5876886345 | ||
![]() |
0392bfce3c | ||
![]() |
c66cf43d6a | ||
![]() |
7515afc058 | ||
![]() |
5fcfcc901e | ||
![]() |
1728c16580 | ||
![]() |
d3f46452a9 | ||
![]() |
7092a98c93 | ||
![]() |
8e19f66b4f | ||
![]() |
b6ab2abf3f | ||
![]() |
3edaaa30c9 | ||
![]() |
38efff461e | ||
![]() |
2179148b8d | ||
![]() |
f92c4c0a40 | ||
![]() |
1e7f792dbb | ||
![]() |
1d4af505c2 | ||
![]() |
baa609b713 | ||
![]() |
bc20cf9ad7 | ||
![]() |
7d3ecfa9a6 | ||
![]() |
88a90ed7d4 | ||
![]() |
3e540b3f51 | ||
![]() |
87e1661bd5 | ||
![]() |
f82a4051af | ||
![]() |
5730e917a1 | ||
![]() |
5e7d7c2ef0 | ||
![]() |
2b6e1953d7 | ||
![]() |
6fc50f4169 | ||
![]() |
40d7a53695 | ||
![]() |
7e89893454 | ||
![]() |
d83f09e731 | ||
![]() |
36575b225d | ||
![]() |
fe0ea843e0 | ||
![]() |
a8911f8136 | ||
![]() |
c5ef1a0207 | ||
![]() |
102d628c0a | ||
![]() |
6ea3acdaea | ||
![]() |
621578353d | ||
![]() |
ca776c3036 | ||
![]() |
9d27eb3b57 | ||
![]() |
9171dffe97 | ||
![]() |
f919d4f5bf | ||
![]() |
59afc7c520 | ||
![]() |
f02b65b866 | ||
![]() |
891c471160 | ||
![]() |
f49f5ba9a1 | ||
![]() |
539b3b7c3e | ||
![]() |
83ce285138 | ||
![]() |
260e48b705 | ||
![]() |
f09ee1b398 | ||
![]() |
e3c2266611 | ||
![]() |
53fb6220c5 | ||
![]() |
34e6b73374 | ||
![]() |
b925cffddb | ||
![]() |
3595626eff |
@@ -3,7 +3,7 @@ version: '{branch}-{build}'
|
||||
# Do not build on tags (GitHub only)
|
||||
skip_tags: true
|
||||
|
||||
image: Visual Studio 2017
|
||||
image: Visual Studio 2019
|
||||
|
||||
branches:
|
||||
except: # blacklist
|
||||
@@ -42,7 +42,7 @@ install:
|
||||
|
||||
before_build:
|
||||
# setup env
|
||||
- CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
- CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
- SET PATH=%PATH%;c:\qbt\qt5_32\bin;%CACHE_DIR%\jom;
|
||||
# setup project
|
||||
- COPY /Y "%CACHE_DIR%\conf.pri" "%REPO_DIR%"
|
||||
|
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
custom: "https://www.qbittorrent.org/donate.php"
|
1
.github/ISSUE_TEMPLATE.md
vendored
1
.github/ISSUE_TEMPLATE.md
vendored
@@ -17,4 +17,3 @@
|
||||
|
||||
### Extra info(if any)
|
||||
(type here)
|
||||
|
||||
|
64
.github/workflows/ci.yaml
vendored
64
.github/workflows/ci.yaml
vendored
@@ -4,20 +4,13 @@ name: GitHub Actions CI
|
||||
# Cache is not used for Ubuntu builds, because it already has all dependencies except
|
||||
# the appropriate libtorrent version, which only takes 3-5 minutes to build from source anyway
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
types: [edited, opened, reopened, synchronize]
|
||||
branches: [ master ]
|
||||
on: [pull_request, push]
|
||||
|
||||
env:
|
||||
# Qt: 5.15.0
|
||||
# libtorrent: RC_1_2 HEAD, 1.2.10
|
||||
VCPKG_COMMIT: 32eccc18191fbb57b159784a1724d2d00613ae82
|
||||
VCPKG_COMMIT: e4ce66eecfd3e5cca5eac06c971921bf8e37cf88
|
||||
VCPKG_DEST_MACOS: /Users/runner/qbt_tools/vcpkg
|
||||
VCPKG_DEST_WIN: C:\qbt_tools\vcpkg
|
||||
UBUNTU_LIBTORRENT_VERSION: libtorrent-1.2.10
|
||||
LIBTORRENT_VERSION_TAG: v1.2.12
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -26,7 +19,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-20.04, ubuntu-18.04]
|
||||
os: [ubuntu-20.04]
|
||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||
fail-fast: false
|
||||
|
||||
@@ -38,7 +31,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: checkout repository
|
||||
uses: actions/checkout@v2.3.2
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: install all build dependencies except libtorrent from Ubuntu repos
|
||||
run: |
|
||||
@@ -52,7 +45,7 @@ jobs:
|
||||
- name: install libtorrent from source
|
||||
run: |
|
||||
git clone https://github.com/arvidn/libtorrent && cd libtorrent
|
||||
git checkout ${{ env.UBUNTU_LIBTORRENT_VERSION }}
|
||||
git checkout ${{ env.LIBTORRENT_VERSION_TAG }}
|
||||
cmake -B cmake-build-dir -G "Ninja" \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-Ddeprecated-functions=OFF \
|
||||
@@ -70,9 +63,9 @@ jobs:
|
||||
cmake --build build
|
||||
|
||||
- name: upload artifact as zip
|
||||
uses: actions/upload-artifact@v2.1.3
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qBittorrent-CI-Ubuntu_${{ matrix.os }}-${{ matrix.qbt_gui }}
|
||||
name: qBittorrent-CI_${{ matrix.os }}-x64_${{ matrix.qbt_gui }}
|
||||
path: |
|
||||
build/compile_commands.json
|
||||
build/target_graph.dot
|
||||
@@ -92,7 +85,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: checkout repository
|
||||
uses: actions/checkout@v2.3.2
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# - ninja is needed for building qBittorrent (because it's preferrable, not a hard requirement)
|
||||
- name: install additional required packages with chocolatey
|
||||
@@ -100,7 +93,7 @@ jobs:
|
||||
choco install ninja
|
||||
|
||||
- name: setup vcpkg (cached, if possible)
|
||||
uses: lukka/run-vcpkg@v3.3
|
||||
uses: lukka/run-vcpkg@v4
|
||||
with:
|
||||
vcpkgDirectory: ${{ env.VCPKG_DEST_WIN }}
|
||||
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
|
||||
@@ -125,16 +118,21 @@ jobs:
|
||||
"qt5-svg:x64-windows-static-release",
|
||||
"qt5-tools:x64-windows-static-release",
|
||||
"qt5-winextras:x64-windows-static-release"
|
||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe upgrade `
|
||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
||||
--overlay-ports=${{ github.workspace }}/vcpkg `
|
||||
--no-dry-run
|
||||
foreach($package in $packages)
|
||||
{
|
||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe install $package `
|
||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
||||
--overlay-ports=${{ github.workspace }}/vcpkg `
|
||||
--clean-after-build
|
||||
}
|
||||
|
||||
# NOTE: this is necessary to correctly find and use cl.exe with the Ninja generator for now
|
||||
- name: setup devcmd
|
||||
uses: ilammy/msvc-dev-cmd@v1.3.0
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
|
||||
- name: build qBittorrent
|
||||
shell: cmd
|
||||
@@ -149,9 +147,9 @@ jobs:
|
||||
cmake --build build
|
||||
|
||||
- name: upload artifact as zip
|
||||
uses: actions/upload-artifact@v2.1.3
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qBittorrent-CI-Windows_x64-static-release
|
||||
name: qBittorrent-CI_Windows-x64
|
||||
path: |
|
||||
build/compile_commands.json
|
||||
build/target_graph.dot
|
||||
@@ -175,17 +173,17 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: checkout repository
|
||||
uses: actions/checkout@v2.3.2
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# - ninja is needed for building qBittorrent (because it's preferrable, not a hard requirement)
|
||||
# - pkg-config is needed for some vcpkg installations
|
||||
# - automake is needed for the installation the vcpkg installation of fontconfig, a dependency of qt5-base
|
||||
- name: install additional required packages with homebrew
|
||||
shell: bash
|
||||
run: |
|
||||
brew install ninja pkg-config
|
||||
brew install automake ninja
|
||||
|
||||
- name: setup vcpkg (cached, if possible)
|
||||
uses: lukka/run-vcpkg@v3.3
|
||||
uses: lukka/run-vcpkg@v4
|
||||
with:
|
||||
vcpkgDirectory: ${{ env.VCPKG_DEST_MACOS }}
|
||||
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
|
||||
@@ -197,14 +195,7 @@ jobs:
|
||||
Copy-Item ${{ env.RUNVCPKG_VCPKG_ROOT }}/triplets/x64-osx.cmake `
|
||||
${{ github.workspace }}/triplets_overlay/x64-osx-release.cmake
|
||||
Add-Content ${{ github.workspace }}/triplets_overlay/x64-osx-release.cmake `
|
||||
-Value "set(VCPKG_BUILD_TYPE release)"
|
||||
|
||||
# NOTE: Avoids a libtorrent ABI issue. See https://github.com/arvidn/libtorrent/issues/4965
|
||||
- name: force AppleClang to compile libtorrent with C++14
|
||||
run: |
|
||||
(Get-Content -path ${{ env.RUNVCPKG_VCPKG_ROOT }}/ports/libtorrent/portfile.cmake).Replace( `
|
||||
'${FEATURE_OPTIONS}', '${FEATURE_OPTIONS} -DCMAKE_CXX_STANDARD=14') `
|
||||
| Set-Content -Path ${{ env.RUNVCPKG_VCPKG_ROOT }}/ports/libtorrent/portfile.cmake
|
||||
-Value "set(VCPKG_BUILD_TYPE release)","set(VCPKG_OSX_DEPLOYMENT_TARGET 10.15)"
|
||||
|
||||
- name: install dependencies via vcpkg
|
||||
run: |
|
||||
@@ -215,10 +206,15 @@ jobs:
|
||||
"qt5-svg:x64-osx-release",
|
||||
"qt5-tools:x64-osx-release",
|
||||
"qt5-macextras:x64-osx-release"
|
||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg upgrade `
|
||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
||||
--overlay-ports=${{ github.workspace }}/vcpkg `
|
||||
--no-dry-run
|
||||
foreach($package in $packages)
|
||||
{
|
||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg install $package `
|
||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
||||
--overlay-ports=${{ github.workspace }}/vcpkg `
|
||||
--clean-after-build
|
||||
}
|
||||
|
||||
@@ -234,9 +230,9 @@ jobs:
|
||||
cmake --build build
|
||||
|
||||
- name: upload artifact as zip
|
||||
uses: actions/upload-artifact@v2.1.3
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qBittorrent-CI-macOS_x64-static-release_${{ matrix.qbt_gui }}
|
||||
name: qBittorrent-CI_macOS_${{ matrix.qbt_gui }}
|
||||
path: |
|
||||
build/compile_commands.json
|
||||
build/target_graph.dot
|
||||
|
85
.github/workflows/file_health.sh
vendored
Executable file
85
.github/workflows/file_health.sh
vendored
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
set -o nounset
|
||||
|
||||
# Assumption: file names don't contain `:` (for the `cut` invocation).
|
||||
# Safe to assume, as such a character in a filename would cause trouble on Windows, a platform we support
|
||||
|
||||
# any regression turn this non-zero
|
||||
regressions=0
|
||||
|
||||
# exclusions (these are just grep extended regular expressions to match against paths relative to the root of the repository)
|
||||
exclusions_nonutf8='(.*(7z|gif|ic(ns|o)|png|qm|zip))'
|
||||
exclusions_bom='src/base/unicodestrings.h'
|
||||
exclusions_tw='(*.ts)|src/webui/www/private/scripts/lib/mootools-1.2-more.js'
|
||||
exclusions_trailing_newline='configure'
|
||||
exclusions_no_lf='(*.ts)|(.*svg)|compile_commands.json|src/webui/www/private/scripts/lib/mootools-1.2-(core-yc.js|more.js)'
|
||||
|
||||
echo -e "\n*** Detect files not encoded in UTF-8 ***\n"
|
||||
|
||||
find . -path ./build -prune -false -o -path ./.git -prune -false -o -type f -exec file --mime {} \; | sort \
|
||||
| grep -v -e "charset=us-ascii" -e "charset=utf-8" | cut -d ":" -f 1 \
|
||||
| grep -E -v -e "${exclusions_nonutf8}" \
|
||||
| tee >(echo -e "--> Files not encoded in UTF-8: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect files encoded in UTF-8 with BOM ***\n"
|
||||
|
||||
grep --exclude-dir={.git,build} -rIl $'\xEF\xBB\xBF' | sort \
|
||||
| grep -E -v -e "${exclusions_bom}" \
|
||||
| tee >(echo -e "--> Files encoded in UTF-8 with BOM: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect usage of CR byte ***\n"
|
||||
|
||||
grep --exclude-dir={.git,build} -rIlU $'\x0D' | sort \
|
||||
| tee >(echo -e "--> Usage of CR byte: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect trailing whitespace in lines ***\n"
|
||||
|
||||
grep --exclude-dir={.git,build} -rIl "[[:blank:]]$" | sort \
|
||||
| grep -E -v -e "${exclusions_tw}" \
|
||||
| tee >(echo -e "--> Trailing whitespace in lines: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0';
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect too many trailing newlines ***\n"
|
||||
|
||||
find . -path ./build -prune -false -o -path ./.git -prune -false -o -type f -exec file --mime {} \; | sort \
|
||||
| grep -e "charset=us-ascii" -e "charset=utf-8" | cut -d ":" -f 1 \
|
||||
| grep -E -v -e "${exclusions_trailing_newline}" \
|
||||
| xargs -L1 -I my_input bash -c 'test "$(tail -q -c2 "my_input" | hexdump -C | grep "0a 0a")" && echo "my_input"' \
|
||||
| tee >(echo -e "--> Too many trailing newlines: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect no trailing newline ***\n"
|
||||
|
||||
find . -path ./build -prune -false -o -path ./.git -prune -false -o -type f -exec file --mime {} \; | sort \
|
||||
| grep -e "charset=us-ascii" -e "charset=utf-8" | cut -d ":" -f 1 \
|
||||
| grep -E -v -e "${exclusions_no_lf}" \
|
||||
| xargs -L1 -I my_input bash -c 'test "$(tail -q -c1 "my_input" | hexdump -C | grep "0a")" || echo "my_input"' \
|
||||
| tee >(echo -e "--> No trailing newline: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
echo -e "\n*** Detect translation closing tag in new line ***\n"
|
||||
|
||||
grep --exclude-dir={.git,build} -nri "^</translation>" | sort \
|
||||
| cut -d ":" -f 1,2 \
|
||||
| tee >(echo -e "--> Translation closing tag in new line: found" "$(wc -l < /dev/stdin)" "regression(s)\n") \
|
||||
| xargs -I my_input -0 bash -c 'echo "my_input"; test "$(echo -n "my_input" | wc -l)" -eq 0'
|
||||
regressions=$((regressions+$?))
|
||||
|
||||
if [ "$regressions" -ne 0 ]; then
|
||||
regressions=1
|
||||
echo "\nFile health regressions found. Please fix them (or add them as exclusions)."
|
||||
else
|
||||
echo "All OK, no file health regressions found."
|
||||
fi
|
||||
|
||||
exit $regressions;
|
22
.github/workflows/file_health.yaml
vendored
Normal file
22
.github/workflows/file_health.yaml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: GitHub Actions file health check
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
check_file_health:
|
||||
name: Check file health
|
||||
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- name: checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: install zsh
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install zsh
|
||||
|
||||
- name: run check file health script
|
||||
run: |
|
||||
./.github/workflows/file_health.sh
|
31
.github/workflows/webui_ci.yaml
vendored
Normal file
31
.github/workflows/webui_ci.yaml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
name: WebUI CI
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
check_webui:
|
||||
name: Check WebUI
|
||||
runs-on: ubuntu-20.04
|
||||
defaults:
|
||||
run:
|
||||
working-directory: src/webui/www
|
||||
|
||||
steps:
|
||||
- name: checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: setup nodejs
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '14'
|
||||
|
||||
- name: install tools
|
||||
run: npm install
|
||||
|
||||
- name: lint code
|
||||
run: npm run lint
|
||||
|
||||
- name: format code
|
||||
run: |
|
||||
npm run format
|
||||
git diff --exit-code
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,6 +4,7 @@ src/qbittorrent
|
||||
src/qbittorrent-nox
|
||||
src/release
|
||||
src/debug
|
||||
src/base/version.h
|
||||
CMakeLists.txt.user*
|
||||
qbittorrent.pro.user*
|
||||
conf.pri
|
||||
|
177
.travis.yml
177
.travis.yml
@@ -1,177 +0,0 @@
|
||||
language: cpp
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
dist: bionic
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- libt_branch=RC_1_2 gui=true build_system=qmake
|
||||
- libt_branch=RC_1_2 gui=false build_system=qmake
|
||||
- libt_branch=RC_1_2 gui=true build_system=cmake
|
||||
- libt_branch=RC_1_2 gui=false build_system=cmake
|
||||
global:
|
||||
- secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8="
|
||||
- coverity_branch: coverity_scan
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- env: libt_branch=RC_1_2 gui=true build_system=cmake
|
||||
- env: libt_branch=RC_1_2 gui=false build_system=cmake
|
||||
|
||||
branches:
|
||||
except:
|
||||
- search_encoding_windows
|
||||
- v2_9_x
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: change
|
||||
on_failure: change
|
||||
|
||||
cache:
|
||||
ccache: true
|
||||
directories:
|
||||
- $HOME/travis/deb
|
||||
- $HOME/travis/brew
|
||||
|
||||
addons:
|
||||
coverity_scan:
|
||||
project:
|
||||
name: "qbittorrent/qBittorrent"
|
||||
description: "Build submitted via Travis CI"
|
||||
build_command_prepend: "./bootstrap.sh && ./configure $qmake_conf"
|
||||
build_command: "make -j2"
|
||||
branch_pattern: $coverity_branch
|
||||
notification_email: sledgehammer999@qbittorrent.org
|
||||
apt:
|
||||
sources:
|
||||
# sources list: https://github.com/travis-ci/apt-source-safelist/blob/master/ubuntu.json
|
||||
- sourceline: 'ppa:qbittorrent-team/qbt-libtorrent-travisci'
|
||||
- sourceline: 'deb https://apt.kitware.com/ubuntu/ bionic main'
|
||||
key_url: 'https://apt.kitware.com/keys/kitware-archive-latest.asc'
|
||||
packages:
|
||||
# packages list: https://github.com/travis-ci/apt-package-safelist/blob/master/ubuntu-trusty
|
||||
- [autoconf, automake, cmake, colormake]
|
||||
- [libboost-dev, libboost-system-dev]
|
||||
- libssl-dev
|
||||
- [qtbase5-dev, libqt5svg5-dev, qttools5-dev]
|
||||
- zlib1g-dev
|
||||
|
||||
before_install:
|
||||
# only allow specific build for coverity scan, others will stop
|
||||
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$libt_branch" = "RC_1_2" -a "$gui" = "true" -a "$build_system" = "qmake" ]; then exit ; fi
|
||||
|
||||
- shopt -s expand_aliases
|
||||
- alias make="colormake -j2" # Using nprocs/2 sometimes may fail (gcc is killed by system)
|
||||
- qbt_path="$HOME/qbt_install"
|
||||
- qmake_conf="$qmake_conf --prefix=$qbt_path"
|
||||
- cmake_conf="$cmake_conf -DCMAKE_INSTALL_PREFIX=$qbt_path"
|
||||
|
||||
# options for specific branches
|
||||
- |
|
||||
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 ;
|
||||
# CMake from Kitware is installed in /usr/bin
|
||||
# TravisCI installs its own cmake to another location which ovverides other installations
|
||||
# if they don't call the new binary directly
|
||||
alias cmake="/usr/bin/cmake"
|
||||
fi
|
||||
- |
|
||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedefs"
|
||||
|
||||
openssl_root_path="/usr/local/opt/openssl"
|
||||
qmake_conf="$qmake_conf PKG_CONFIG_PATH=$openssl_root_path/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||
cmake_conf="$cmake_conf -DOPENSSL_ROOT_DIR=$openssl_root_path"
|
||||
fi
|
||||
- |
|
||||
if [ "$gui" = "false" ]; then
|
||||
qmake_conf="$qmake_conf --disable-gui"
|
||||
cmake_conf="$cmake_conf -DGUI=OFF"
|
||||
fi
|
||||
|
||||
# print settings
|
||||
- echo $libt_branch
|
||||
- echo $gui
|
||||
- echo $build_system
|
||||
- echo $qmake_conf
|
||||
- echo $cmake_conf
|
||||
|
||||
install:
|
||||
- |
|
||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
# dependencies
|
||||
PATH="/usr/local/opt/ccache/libexec:$PATH"
|
||||
|
||||
brew update > /dev/null
|
||||
brew upgrade cmake
|
||||
brew install ccache colormake boost openssl qt zlib
|
||||
brew link --force qt zlib
|
||||
|
||||
if [ "$build_system" = "cmake" ]; then
|
||||
sudo ln -s /usr/local/opt/qt/mkspecs /usr/local/mkspecs
|
||||
sudo ln -s /usr/local/opt/qt/plugins /usr/local/plugins
|
||||
fi
|
||||
fi
|
||||
- |
|
||||
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
|
||||
export use_ccache=true
|
||||
ccache -M 512M
|
||||
ccache -V && ccache --show-stats && ccache --zero-stats
|
||||
fi
|
||||
- |
|
||||
if [ "$libt_branch" = "RC_1_2" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||
# Will install latest 1.2.x daily build from the PPA
|
||||
sudo apt-get -y install libtorrent-rasterbar-dev
|
||||
fi
|
||||
- |
|
||||
if [ "$libt_branch" = "RC_1_2" ] && [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
# building libtorrent manually should be faster than using the official bottle
|
||||
# because the bottle will also pull in a lot of updated dependencies and prolong the overall time
|
||||
pushd "$HOME"
|
||||
git clone --single-branch --branch RC_1_2 https://github.com/arvidn/libtorrent.git
|
||||
cd libtorrent
|
||||
git checkout tags/v1.2.10
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14 -Ddeprecated-functions=OFF -DOPENSSL_ROOT_DIR="$openssl_root_path" ./
|
||||
make
|
||||
sudo make install
|
||||
popd
|
||||
fi
|
||||
|
||||
script:
|
||||
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # skip usual build when running coverity scan
|
||||
- |
|
||||
cd "$TRAVIS_BUILD_DIR"
|
||||
if [ "$build_system" = "qmake" ]; then
|
||||
# scan only as lupdate is prone to hang
|
||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
||||
./bootstrap.sh
|
||||
./configure $qmake_conf CXXFLAGS="$CXXFLAGS"
|
||||
else
|
||||
mkdir build && cd build
|
||||
cmake $cmake_conf ../
|
||||
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
|
||||
if [ "$build_system" = "qmake" ]; then
|
||||
macdeployqt "$TRAVIS_BUILD_DIR/src/$qbt_exe.app"
|
||||
cd "$TRAVIS_BUILD_DIR/src/$qbt_exe.app/Contents/MacOS"
|
||||
else
|
||||
cd "$qbt_path/$qbt_exe.app/Contents/MacOS"
|
||||
fi
|
||||
fi
|
||||
- ./$qbt_exe --version
|
||||
|
||||
after_script:
|
||||
- if [ "$use_ccache" = true ]; then ccache --show-stats ; fi
|
18
AUTHORS
18
AUTHORS
@@ -17,19 +17,23 @@ Contributors:
|
||||
* Nick Tiskov <daymansmail@gmail.com>
|
||||
|
||||
Code from other projects:
|
||||
* files src/qtsingleapplication/* src/lineedit/*
|
||||
* files src/app/qtlocalpeer/*
|
||||
copyright: Nokia Corporation
|
||||
license: LGPL
|
||||
license: mixed
|
||||
|
||||
* files src/ico.cpp src/ico.h
|
||||
copyright: Malte Starostik <malte@kde.org>
|
||||
license: LGPL
|
||||
* files src/gui/lineedit.*
|
||||
copyright: Trolltech ASA <info@trolltech.com>
|
||||
license: custom
|
||||
|
||||
* files src/search_engine/socks.py
|
||||
copyright: Dan Haim <negativeiq@users.sourceforge.net>
|
||||
license: BSD
|
||||
|
||||
* file src/stacktrace_win.h
|
||||
* file src/app/stacktrace.h
|
||||
copyright: Timo Bingmann from http://idlebox.net/
|
||||
license: WTFPL v2.0
|
||||
|
||||
* file src/app/stacktrace_win.h
|
||||
copyright: Quassel Project
|
||||
license: GPLv2/3
|
||||
|
||||
@@ -119,7 +123,7 @@ Translations authors:
|
||||
- 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)
|
||||
- Hebrew: David Deutsch (d.deffo@gmail.com)
|
||||
- Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
|
||||
- Hungarian: Majoros Péter
|
||||
- Italian: bovirus (bovirus@live.it) and Matteo Sechi (bu17714@gmail.com)
|
||||
- Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com)
|
||||
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
|
||||
|
@@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.16 FATAL_ERROR) # Policies <= CMP0097 default t
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
||||
|
||||
project(qBittorrent
|
||||
VERSION 4.3.0.0
|
||||
DESCRIPTION "The qBittorrent BitTorrent client"
|
||||
HOMEPAGE_URL "https://www.qbittorrent.org/"
|
||||
LANGUAGES CXX
|
||||
@@ -11,14 +10,15 @@ project(qBittorrent
|
||||
|
||||
# use CONFIG mode first in find_package
|
||||
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
||||
# version requirements
|
||||
set(requiredBoostVersion 1.40)
|
||||
set(requiredQtVersion 5.9.0)
|
||||
set(requiredOpenSSLVersion 1.0)
|
||||
set(requiredLibtorrentVersion 1.2.0)
|
||||
set(requiredZlibVersion 1.2.5.2)
|
||||
# version requirements - older vesions may work, but you are on your own
|
||||
set(minBoostVersion 1.65)
|
||||
set(minQtVersion 5.11)
|
||||
set(minOpenSSLVersion 1.1.1)
|
||||
set(minLibtorrentVersion 1.2.12)
|
||||
set(minZlibVersion 1.2.11)
|
||||
|
||||
# features (some are platform-specific)
|
||||
include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19
|
||||
include(FeatureSummary)
|
||||
include(FeatureOptionsSetup)
|
||||
feature_option(STACKTRACE "Enable stacktraces" ON)
|
||||
@@ -34,12 +34,22 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
"Install systemd service file to a directory manually overridable with Systemd_SERVICES_INSTALL_DIR"
|
||||
OFF "NOT GUI" OFF
|
||||
)
|
||||
if (STACKTRACE)
|
||||
check_cxx_source_compiles(
|
||||
"#include <execinfo.h>
|
||||
int main(){return 0;}"
|
||||
QBITTORRENT_HAS_EXECINFO_H
|
||||
)
|
||||
if (NOT QBITTORRENT_HAS_EXECINFO_H)
|
||||
message(FATAL_ERROR "execinfo.h header file not found.\n"
|
||||
"Please either disable the STACKTRACE feature or use a libc that has this header file, such as glibc (GNU libc)."
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
elseif (MSVC)
|
||||
feature_option(MSVC_RUNTIME_DYNAMIC "Use MSVC dynamic runtime library (-MD) instead of static (-MT)" ON)
|
||||
endif()
|
||||
|
||||
set(QBT_VER_STATUS "alpha1" CACHE STRING "Project status version. Should be empty for release builds.")
|
||||
|
||||
include(GNUInstallDirs)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(dist)
|
||||
@@ -49,3 +59,6 @@ if (VERBOSE_CONFIGURE)
|
||||
else()
|
||||
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
|
||||
endif()
|
||||
|
||||
# Generate version header
|
||||
configure_file("src/base/version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/src/base/version.h" @ONLY)
|
||||
|
File diff suppressed because it is too large
Load Diff
7
COPYING
7
COPYING
@@ -1,5 +1,6 @@
|
||||
qBittorrent is licensed under the GNU General Public License version 2 with the
|
||||
addition of the following special exception:
|
||||
qBittorrent is licensed under the GNU General Public License either version 2,
|
||||
or (at your option) any later version with the addition of the following
|
||||
special exception:
|
||||
|
||||
In addition, as a special exception, the copyright holders give permission to
|
||||
link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
@@ -10,6 +11,8 @@ 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.
|
||||
|
||||
See also the AUTHORS file
|
||||
|
||||
----------
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
|
213
Changelog
213
Changelog
@@ -1,4 +1,203 @@
|
||||
Unreleased - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.0
|
||||
Tue Aug 03 2021 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.7
|
||||
- BUGFIX: Don't forget to start Watched folders timer (glassez)
|
||||
- BUGFIX: Don't close tags menu when toggling items (tgregerson)
|
||||
- BUGFIX: Don't overwrite tracker message (glassez)
|
||||
- BUGFIX: Bump file pool size (#14966) (An0n)
|
||||
- BUGFIX: Properly create "clean path" for watched folder (glassez)
|
||||
- WEBUI: Disconnect comment links (Daniel Aleksandersen)
|
||||
- WINDOWS: NSIS: Update Danish translation (scootergrisen)
|
||||
|
||||
Sat Jun 26 2021 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.6
|
||||
- FEATURE: New languages: Mongolian, Persian, Thai
|
||||
- BUGFIX: Provide correct error description in "upload mode" (glassez)
|
||||
- BUGFIX: Allow adding torrents with relative save path (glassez)
|
||||
- BUGFIX: Fix main window turns blank after restoring from tray (#15031) (Chocobo1)
|
||||
- BUGFIX: Remove the lockfile on exit (#14997) (brvphoenix)
|
||||
- BUGFIX: Improve "Watched folders" feature (glassez)
|
||||
- BUGFIX: Keep sub-sorting order (#15074) (Dmitry Khlestkov)
|
||||
- BUGFIX: Properly add torrent with new tags (glassez)
|
||||
- WINDOWS: NSIS: Update Japanese, Turkish, Hungarian, Swedish translation (maboroshin, Burak Yavuz, xkrstudio, nonew-star)
|
||||
|
||||
Sun May 02 2021 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.5
|
||||
- BUGFIX: Move cursor to the end when autofilling URL/hash in "Download from URLs" dialog (Chocobo1)
|
||||
- BUGFIX: Sort invalid QDateTime values after valid values (Chocobo1)
|
||||
- BUGFIX: Fix tabChangesFocus attribute in "Edit trackers" dialog (Christoph Rackwitz)
|
||||
- BUGFIX: Update DynDNS register url (zhuangzi926)
|
||||
- BUGFIX: Handle "not enough disk space" error more graciously (glassez)
|
||||
- BUGFIX: Correctly draw progress background with stylesheet (jagannatharjun)
|
||||
- WEBUI: Fix magnet url from the search facility (Chocobo1)
|
||||
- WEBUI: Revise folder monitoring functions (Chocobo1)
|
||||
- WEBUI: Fix magnet url from the browser (brvphoenix)
|
||||
- WEBUI: Allow to specify file indexes in torrents/files API (glassez)
|
||||
- WINDOWS: NSIS: Allow more strings to translated (bovirus, Chocobo1)
|
||||
- WINDOWS: NSIS: Update Italian, German, Estonian, Russian, PortugueseBR translations (bovirus, Henry Water, PriitUring, Долматов Алексей, Felipe)
|
||||
- LINUX: Fix D-Bus Notification `desktop-entry` field (Chocobo1)
|
||||
- MACOS: Don't use executable name as CFBundleName value (Nick Korotysh)
|
||||
- OTHER: Lower Qt requirement to 5.11 (sledgehammer999)
|
||||
- OTHER: Clarify that the license is GPLv2+ (sledgehammer999)
|
||||
|
||||
Wed Mar 24 2021 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.4.1
|
||||
- BUGFIX: Correctly draw progress bar (glassez)
|
||||
- WEBUI: Fix javascript code which broke the UI (Chocobo1)
|
||||
|
||||
Tue Mar 23 2021 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.4
|
||||
- FEATURE: Add ability to prioritize selected items by shown file order (Chocobo1)
|
||||
- FEATURE: Allow tab to escape the text box in "Edit trackers" dialog (Christoph Rackwitz)
|
||||
- FEATURE: Support sub-sorting in Transferlist (jagannatharjun)
|
||||
- FEATURE: Expose ToS setting from libtorrent (Chocobo1)
|
||||
- FEATURE: Improve tracker entries handling (glassez)
|
||||
- BUGFIX: Drop extension from generated content folder name (glassez)
|
||||
- BUGFIX: Change qBittorrent Updater window title (xavier2k6)
|
||||
- BUGFIX: Validate HTTPS Tracker Certificate by default (an0n666)
|
||||
- BUGFIX: Don't let "program update" dialog steal focus (Chocobo1)
|
||||
- BUGFIX: Disable expand on double click in TorrentContentTreeView (jagannatharjun)
|
||||
- BUGFIX: Add hyperlink to Transifex on translator list (Si Yong Kim)
|
||||
- BUGFIX: Enlarge "speed limit" icon slightly (Chocobo1)
|
||||
- BUGFIX: Don't prevent system sleep due to errored torrents (dyumin)
|
||||
- BUGFIX: Use stable sorting in transfer list (Chocobo1)
|
||||
- BUGFIX: Allow "missing files" torrents to save more resume data (glassez)
|
||||
- BUGFIX: Restart "missing files" torrents after changing location (glassez)
|
||||
- BUGFIX: Show proper string when torrent availability is not available (Chocobo1)
|
||||
- BUGFIX: Apply "Hide zero/infinity values" to "Time Active", "Down/Up Limit" and ETA columns (Chocobo1)
|
||||
- BUGFIX: Fix potential out-of-bounds access (Chocobo1)
|
||||
- BUGFIX: Make SpeedPlotView averager time aware (jagannatharjun)
|
||||
- BUGFIX: Add a 3-Hour graph (jagannatharjun)
|
||||
- BUGFIX: Add an option to disable icons in menus (always disabled on MacOS) (Michał Kopeć)
|
||||
- BUGFIX: Improve detection of filename extension of audio/video files (Chocobo1)
|
||||
- BUGFIX: Various drawing improvements of progress bar (Chocobo1)
|
||||
- BUGFIX: Properly stop torrent creation if aborted (Chocobo1)
|
||||
- BUGFIX: Replace external program parameters in one step (Chocobo1)
|
||||
- BUGFIX: Improve "save resume data" handling (glassez)
|
||||
- BUGFIX: Fix bad IPv6 address format for outgoingInterfaces (treysis)
|
||||
- WEBUI: Properly decode strings (brvphoenix)
|
||||
- WEBUI: Accept "share limits" when adding torrent using WebAPI (glassez)
|
||||
- WEBUI: Add seeding time to the active time column (thalieht)
|
||||
- WEBUI: Fix incorrect seeding time string in General tab (thalieht)
|
||||
- WEBUI: Allow >100 days in WebUI function "friendlyDuration" (thalieht)
|
||||
- WEBUI: Avoid decoding strings repeatedly (brvphoenix)
|
||||
- RSS: Add category button on AutomatedRSSDownloader on GUI (Si Yong Kim)
|
||||
- WINDOWS: NSIS: Update Czech translation (slrslr)
|
||||
- WINDOWS: NSIS: Update Portuguese BR translation (Alex)
|
||||
- WINDOWS: NSIS: Add Estonian translation (PriitUring)
|
||||
- WINDOWS: Allow change-case-only file renaming (glassez)
|
||||
- LINUX: Systemd: wait for mounting of local filesystems (Juraj Oršulić)
|
||||
- OTHER: Raise minimum libtorrent version to 1.2.12 (glassez)
|
||||
- OTHER: Raise minimum Qt version to 5.12 (glassez)
|
||||
|
||||
Tue Jan 19 2021 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.3
|
||||
- FEATURE: New languages: Azerbaijani, Estonian
|
||||
- BUGFIX: Unify global speed dialogs for normal/alternative speeds (thalieht)
|
||||
- BUGFIX: Increase maximum global speed limits ~2 GiB/s (thalieht)
|
||||
- BUGFIX: Save fastresume when setting torrent speed limits (thalieht)
|
||||
- BUGFIX: Group several torrent options into one dialog (thalieht)
|
||||
- BUGFIX: Capitalize locale names (Chocobo1)
|
||||
- BUGFIX: Improve content file/folder names handling (glassez)
|
||||
- BUGFIX: Drop notification about move storage finished or failed (glassez)
|
||||
- BUGFIX: Reload "missing files" torrent instead of re-checking (glassez)
|
||||
- BUGFIX: Remember dialog sizes (Chocobo1)
|
||||
- BUGFIX: Improve detection of file extension string (Chocobo1)
|
||||
- WEBUI: Don't call non-existent elements (glassez)
|
||||
- WEBUI: Update "Keep top-level folder" in WebUI options (thalieht)
|
||||
- MACOS: QMake: Raise minimal macOS target version to 10.14 (glassez)
|
||||
- LINUX: Use legacy 'data' directory only as a fallback (lbilli)
|
||||
- OTHER: Bump project requirement to C++17 (Chocobo1)
|
||||
|
||||
Sun Dec 27 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.2
|
||||
- FEATURE: Allow to add root folder to torrent content (glassez)
|
||||
- FEATURE: "HTTPS tracker validation" option is available on all platforms with latest libtorrent (Chocobo1)
|
||||
- FEATURE: Option for supporting internationalized domain names (IDNs) (Chocobo1)
|
||||
- BUGFIX: Fix broken sorting on some columns (Chocobo1)
|
||||
- BUGFIX: Fix availability per file value (Chocobo1)
|
||||
- BUGFIX: Fix status of torrents without metadata (sledgehammer999)
|
||||
- BUGFIX: Don't try to remove folders for a torrent without metadata (sledgehammer999)
|
||||
- BUGFIX: Lift upper limit of "Max concurrent HTTP announces" option (Chocobo1)
|
||||
- BUGFIX: Add links to libtorrent documentation (Chocobo1)
|
||||
- BUGFIX: Move "embedded tracker" options to qbt section (Chocobo1)
|
||||
- BUGFIX: Properly handle "Append extension" option changing (glassez)
|
||||
- BUGFIX: Correctly save paused torrent state (glassez)
|
||||
- BUGFIX: Fix bug of "move storage job" can be performed multiple times (glassez)
|
||||
- WEBUI: Add ability to use 'shift+delete' to delete torrents (Chocobo1)
|
||||
- WEBUI: Allow to attach tags while adding torrents (Jesse Chan)
|
||||
- WEBUI: Bump version to 2.6.2 (Jesse Chan)
|
||||
- WEBUI: Remove unnecessary restriction on input length (Chocobo1)
|
||||
- WINDOWS: NSIS: Update Russian translation (Andrei Stepanov)
|
||||
- WINDOWS: NSIS: Update Italian translation (Alessandro Simonelli)
|
||||
- OTHER: Drop support for building with libtorrent < 1.2.11 (Vladimir Golovnev)
|
||||
|
||||
Wed Nov 25 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.1
|
||||
- FEATURE: Allow progress bar styling from custom themes (jagannatharjun)
|
||||
- FEATURE: Allow adding torrents using "Paste" key sequence (Chocobo1)
|
||||
- FEATURE: Add Latgalian translation (sledgehammer999)
|
||||
- BUGFIX: Prevent resume data to be saved for removed torrent (glassez)
|
||||
- BUGFIX: Clarify connection protocol choice label (FranciscoPombal)
|
||||
- BUGFIX: Fix crash when clicked outside the table of torrent content view (jagannatharjun)
|
||||
- BUGFIX: Don't resume "paused" torrents when put into "checking" state by libtorrent (glassez)
|
||||
- BUGFIX: Fix torrent state calculation (glassez)
|
||||
- BUGFIX: Align integer data to right in torrent content view (jagannatharjun)
|
||||
- WEBUI: Place WebUI RSS description in sandboxed iframe (Sepro)
|
||||
- WEBUI: Avoid settings being reset via WebAPI (Chocobo1)
|
||||
- WEBUI: Fix toggling advanced option in WebUI (thalieht)
|
||||
- WEBUI: Expose contentPath in WebAPI torrents/info (FranciscoPombal)
|
||||
- WEBUI: Fix the issue that IPv6 address can't be banned (brvphoenix)
|
||||
- RSS: Fix confusion in date format description (Thomas De Rocker)
|
||||
- WINDOWS: Update dutch.nsi (Thomas De Rocker)
|
||||
- LINUX: Update .desktop file translations (sledgehammer999)
|
||||
|
||||
Thu Oct 22 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.0.1
|
||||
- WINDOWS: NSIS: Update Italian translation (bovirus)
|
||||
|
||||
Sun Oct 18 2020 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.3.0
|
||||
- FEATURE: Many UI elements colors are themeable now (jagannatharjun)
|
||||
- FEATURE: Allow changing GUI icons from theme bundles (jagannatharjun)
|
||||
- FEATURE: Notify user when torrent moving finished (glassez)
|
||||
- FEATURE: Shortcut CTRL + I opens Statistics window (LoopsGod)
|
||||
- FEATURE: Add RSS functionality in Web UI (Sepro)
|
||||
- FEATURE: Drop ".unwanted folder" feature (glassez)
|
||||
- FEATURE: Expose libtorrent peer_turnover, max_concurrent_http_announces, no_connect_privileged_ports settings (Sophist, an0n666, NotTsunami)
|
||||
- BUGFIX: Fix typo in Options dialog (Andrei Stepanov)
|
||||
- BUGFIX: Remove "requires restart" from network interface settings (an0n666)
|
||||
- BUGFIX: Rename "Create subfolder" to "Keep top-level folder" (thalieht)
|
||||
- BUGFIX: Show tooltip for some properties in transfer list (Nick Korotysh)
|
||||
- BUGFIX: Fix calculation of torrent current state (glassez)
|
||||
- BUGFIX: Improve detecting completed files when adding, rechecking or moving a torrent (glassez)
|
||||
- BUGFIX: Fixed broken announce logic in embedded tracker causing failures in some cases (FranciscoPombal)
|
||||
- BUGFIX: Disable checkbox if torrent doesn't have root folder (thalieht)
|
||||
- BUGFIX: Update country flag icons with upstream (Chocobo1)
|
||||
- BUGFIX: Private torrent: If tracker entry is edited clear old peer list. Also don't allow user to manually add peers. (an0n666)
|
||||
- BUGFIX: Fix large strings not visible in log widget (jagannatharjun)
|
||||
- BUGFIX: Disable edit action in Peer list widget (Chocobo1)
|
||||
- BUGFIX: Add a scroll area to torrent creator dialog (Ernesto Castellotti)
|
||||
- BUGFIX: Content tab: Open double-clicked folder regardless on which column the click happens (Chocobo1)
|
||||
- BUGFIX: "Open containing folder" on a folder now opens it in its parent folder (Chocobo1)
|
||||
- BUGFIX: Fix GeoDB download in systems with non-C locales (FranciscoPombal)
|
||||
- BUGFIX: Fix peer blocked message (FranciscoPombal)
|
||||
- BUGFIX: Make more robust the banning of selected peers from the list (NotTsunami)
|
||||
- BUGFIX: Use toned green color for downloading pieces in Pieces bar (jagannatharjun)
|
||||
- BUGFIX: Correctly fill whole width of speed graph (jagannatharjun)
|
||||
- BUGFIX: Fix impossible speed in speed graph (jagannatharjun)
|
||||
- WEBUI: Hide additional search filters on small screens (Thomas Piccirello)
|
||||
- WEBUI: Shrink search bar on small screens (Thomas Piccirello)
|
||||
- WEBUI: Fix search categories only working in English (Thomas Piccirello)
|
||||
- WEBUI: Add Trackers section to sidebar (Thomas Piccirello)
|
||||
- WEBUI: Fix Enter button behavior in textarea (Tom Piccirello)
|
||||
- WEBUI: Fix wrong file renaming selection range (MR)
|
||||
- WEBUI: Preselect "Default save path" in watched folders (thalieht)
|
||||
- WEBUI: Fix banning peers (brvphoenix)
|
||||
- WEBUI: Fix seeding time checkbox placement (Chocobo1)
|
||||
- WEBUI: Bump Web API version (Thomas Piccirello)
|
||||
- RSS: Fix renaming RSS autodownload rule (glassez)
|
||||
- RSS: Fix RSS article is not marked as "read" when torrent is downloaded (glassez)
|
||||
- SEARCH: Update minimum Python version to 3.5.0 (ngosang)
|
||||
- SEARCH: Make middle-click close search tabs (Will Da Silva)
|
||||
- WINDOWS: NSIS: Update Dutch translation (Thomas De Rocker)
|
||||
- WINDOWS: NSIS: Change the installers uninstallation question to clear confusion (an0n666)
|
||||
- LINUX: Fix typo in systemd service file (Shane Allgeier)
|
||||
- LINUX: Don't use HTML in tray tooltip (thalieht)
|
||||
- LINUX: Don't create 'data' subdirectory in XDG_DATA_HOME (lbilli)
|
||||
- LINUX/MACOS: Add HTTPS tracker certificate validation option (NotTsunami)
|
||||
- OTHER: Many CMake improvements (FranciscoPombal)
|
||||
- OTHER: Support for libtorrent 1.1.x is dropped (Chocobo1)
|
||||
- OTHER: Many code cleanups and improvements (FranciscoPombal, Chocobo1, glassez)
|
||||
|
||||
Tue Dec 03 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.0
|
||||
- FEATURE: Libtorrent 1.2.x series are supported now (glassez)
|
||||
@@ -31,7 +230,7 @@ Tue Dec 03 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.0
|
||||
- BUGFIX: Remove the max half-open connections option (thalieht)
|
||||
- BUGFIX: Center align the section labels in advanced settings (thalieht)
|
||||
- BUGFIX: Add documentation links to some advanced settings (thalieht)
|
||||
- BUGFIX: Impove DownloadManager code (glassez)
|
||||
- BUGFIX: Improve DownloadManager code (glassez)
|
||||
- BUGFIX: Limit DownloadHandler max redirection to 20 (Chocobo1)
|
||||
- BUGFIX: Log DownloadManager SSL errors (Chocobo1)
|
||||
- BUGFIX: Force recheck multiple torrents one by one (glassez)
|
||||
@@ -262,10 +461,10 @@ Tue Dec 03 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.0
|
||||
- BUGFIX: Restore torrent in two steps (glassez)
|
||||
- BUGFIX: Improve scaling of speed graphs (dzmat)
|
||||
- BUGFIX: Add isNetworkFileSystem() detection on Windows. This allows network mounts to be monitored correctly by polling timer. (Chocobo1)
|
||||
- BUGFIX: Reduce horizontal graphs resolution. Improves perfomance. (dzmat)
|
||||
- BUGFIX: Reduce horizontal graphs resolution. Improves performance. (dzmat)
|
||||
- BUGFIX: Don't recheck just checked torrent (mj-p, glassez)
|
||||
- BUGFIX: Add SMB2 magic number (Chocobo1)
|
||||
- BUGFIX: Restore startup perfomance to v4.1.2 times. Needs at least libtorrent 1.1.10 (sledgehammer999)
|
||||
- BUGFIX: Restore startup performance to v4.1.2 times. Needs at least libtorrent 1.1.10 (sledgehammer999)
|
||||
- BUGFIX: Make strings actually translatable (sledgehammer999)
|
||||
- WEBUI: Handle downloading .torrent file as success (Tom Piccirello)
|
||||
- WEBUI: Fix Alternative Web UI to be available (glassez)
|
||||
@@ -336,7 +535,7 @@ Tue Dec 03 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.0
|
||||
- BUGFIX: Improve torrent initialization (glassez)
|
||||
- BUGFIX: Save resume data on torrent change events (glassez)
|
||||
- BUGFIX: Increase default resume data save interval (Chocobo1)
|
||||
- BUGFIX: Work around crash when procesing recursive download. Closes #9086 (Chocobo1)
|
||||
- BUGFIX: Work around crash when processing recursive download. Closes #9086 (Chocobo1)
|
||||
- BUGFIX: Reduce queries to python version (Chocobo1)
|
||||
- BUGFIX: Disable certain mouse wheel events in Options dialog (Chocobo1)
|
||||
- WEBUI: Send all rechecks in one request (Thomas Piccirello)
|
||||
@@ -823,7 +1022,7 @@ Tue Dec 03 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.0
|
||||
- COSMETIC: Change RSS view layout to horizontal. Closes #5920. (Chocobo1)
|
||||
- OSX: Fix crash on exit using Qt4. (Yez Ezey)
|
||||
- OSX: Change QSettings to IniFormat on macOS. Closes #5770 #5808. (Yez Ezey)
|
||||
- LINUX: Workaround a Qt5 bug which results in a flood of network interface change singals. (Eugene Shalygin)
|
||||
- LINUX: Workaround a Qt5 bug which results in a flood of network interface change signals. (Eugene Shalygin)
|
||||
- OTHER: Turkish translation for installer. (Burak Yavuz)
|
||||
- OTHER: Update portugueseBR for installer. (DaRKSoM)
|
||||
- OTHER: Update portuguese for installer. (EdwardLinux)
|
||||
@@ -2170,7 +2369,7 @@ Tue Dec 03 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.0
|
||||
- FEATURE: Added "Unread" item to RSS feed list to display all unread news
|
||||
- FEATURE: If a torrent contains a torrent file, process downloaded torrent file too
|
||||
- FEATURE: A random listening port can be chosen automatically
|
||||
- BUGFIX: torrent resume code rewrited
|
||||
- BUGFIX: torrent resume code rewritten
|
||||
- BUGFIX: Fixed uTorrent spoofing code
|
||||
- BUGFIX: Greatly improved column sorting code
|
||||
- BUGFIX: Possibility to create trackerless torrents
|
||||
|
16
INSTALL
16
INSTALL
@@ -3,23 +3,27 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
||||
|
||||
1) Install these dependencies:
|
||||
|
||||
- Boost >= 1.40
|
||||
- Boost >= 1.65
|
||||
|
||||
- libtorrent-rasterbar >= 1.2 (by Arvid Norberg)
|
||||
- libtorrent-rasterbar >= 1.2.12 (by Arvid Norberg)
|
||||
* https://www.libtorrent.org/
|
||||
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||
|
||||
- OpenSSL >= 1.0
|
||||
- OpenSSL >= 1.1.1
|
||||
|
||||
- Qt >= 5.9.0
|
||||
- Qt >= 5.12
|
||||
|
||||
- zlib >= 1.2.5.2
|
||||
- zlib >= 1.2.11
|
||||
|
||||
- pkg-config (compile-time only)
|
||||
- pkg-config (compile-time only on *nix systems)
|
||||
|
||||
- Python >= 3.5.0 (optional, runtime only)
|
||||
* Required by the internal search engine
|
||||
|
||||
Dependency version numbers are bumped every once in a while to keep the range of properly tested configurations manageable, even if not strictly required to build.
|
||||
You may be able to build with older versions of (some of) the dependencies other than the minimum versions specified in the build scripts, but support for such builds is not provided - you are on your own.
|
||||
Please ensure you are building with an officially supported configuration when reporting bugs.
|
||||
|
||||
2a) Compile and install qBittorrent with Qt graphical interface
|
||||
|
||||
$ ./configure
|
||||
|
@@ -1,7 +1,6 @@
|
||||
qBittorrent - A BitTorrent client in Qt
|
||||
------------------------------------------
|
||||
|
||||
[](https://travis-ci.org/qbittorrent/qBittorrent)
|
||||
[](https://ci.appveyor.com/project/qbittorrent/qBittorrent)
|
||||
[](https://github.com/qbittorrent/qBittorrent/actions)
|
||||
[](https://scan.coverity.com/projects/5494)
|
||||
|
19
build_dist.sh
Executable file
19
build_dist.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
# get version numbers
|
||||
versionSrc="src/base/version.h.in"
|
||||
versionMajor="$(grep -Po '(?<=QBT_VERSION_MAJOR )\d+' "$versionSrc")"
|
||||
versionMinor="$(grep -Po '(?<=QBT_VERSION_MINOR )\d+' "$versionSrc")"
|
||||
versionBugfix="$(grep -Po '(?<=QBT_VERSION_BUGFIX )\d+' "$versionSrc")"
|
||||
versionBuild="$(grep -Po '(?<=QBT_VERSION_BUILD )\d+' "$versionSrc")"
|
||||
versionStatus="$(grep -Po '(?<=QBT_VERSION_STATUS ")\w+' "$versionSrc")"
|
||||
|
||||
if [ "$versionBuild" != "0" ]; then
|
||||
projectVersion="$versionMajor.$versionMinor.$versionBugfix.$versionBuild$versionStatus"
|
||||
else
|
||||
projectVersion="$versionMajor.$versionMinor.$versionBugfix$versionStatus"
|
||||
fi
|
||||
|
||||
# pack archives
|
||||
git archive --format=tar --prefix="qbittorrent-$projectVersion/" HEAD | gzip -9 > "qbittorrent-$projectVersion.tar.gz"
|
||||
git archive --format=tar --prefix="qbittorrent-$projectVersion/" HEAD | xz -9 > "qbittorrent-$projectVersion.tar.xz"
|
@@ -7,47 +7,16 @@ macro(qbt_common_config)
|
||||
# treat value specified by the CXX_STANDARD target property as a requirement by default
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# these definitions are only needed for calls to
|
||||
# lt::generate_fingerprint and for the qbittorrent.rc file on Windows
|
||||
add_library(qbt_version_definitions INTERFACE)
|
||||
|
||||
target_compile_definitions(qbt_version_definitions INTERFACE
|
||||
QBT_VERSION_MAJOR=${qBittorrent_VERSION_MAJOR}
|
||||
QBT_VERSION_MINOR=${qBittorrent_VERSION_MINOR}
|
||||
QBT_VERSION_BUGFIX=${qBittorrent_VERSION_PATCH}
|
||||
QBT_VERSION_BUILD=${qBittorrent_VERSION_TWEAK}
|
||||
)
|
||||
|
||||
add_library(qbt_common_cfg INTERFACE)
|
||||
|
||||
# Full C++ 14 support is required
|
||||
# Full C++ 17 support is required
|
||||
# See also https://cmake.org/cmake/help/latest/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html
|
||||
# for a breakdown of the features that CMake recognizes for each C++ standard
|
||||
target_compile_features(qbt_common_cfg INTERFACE
|
||||
cxx_std_14
|
||||
cxx_aggregate_default_initializers
|
||||
cxx_attribute_deprecated
|
||||
cxx_binary_literals
|
||||
cxx_contextual_conversions
|
||||
cxx_decltype_auto
|
||||
cxx_digit_separators
|
||||
cxx_generic_lambdas
|
||||
cxx_lambda_init_captures
|
||||
cxx_relaxed_constexpr
|
||||
cxx_return_type_deduction
|
||||
cxx_variable_templates
|
||||
cxx_std_17
|
||||
)
|
||||
|
||||
set(QBT_PROJECT_VERSION "${qBittorrent_VERSION_MAJOR}.${qBittorrent_VERSION_MINOR}.${qBittorrent_VERSION_PATCH}")
|
||||
if (NOT ${qBittorrent_VERSION_TWEAK} EQUAL 0)
|
||||
set(QBT_PROJECT_VERSION "${QBT_PROJECT_VERSION}.${qBittorrent_VERSION_TWEAK}")
|
||||
endif()
|
||||
|
||||
set(QBT_FULL_VERSION "${QBT_PROJECT_VERSION}${QBT_VER_STATUS}")
|
||||
|
||||
target_compile_definitions(qbt_common_cfg INTERFACE
|
||||
QBT_VERSION="v${QBT_FULL_VERSION}"
|
||||
QBT_VERSION_2="${QBT_FULL_VERSION}"
|
||||
QT_DEPRECATED_WARNINGS
|
||||
QT_NO_CAST_TO_ASCII
|
||||
QT_NO_CAST_FROM_BYTEARRAY
|
||||
@@ -90,6 +59,12 @@ macro(qbt_common_config)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if ((CXX_COMPILER_ID STREQUAL "Clang") OR (CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||
target_compile_options(qbt_common_cfg INTERFACE
|
||||
-Wno-range-loop-analysis
|
||||
)
|
||||
endif()
|
||||
|
||||
if (MINGW)
|
||||
target_link_options(qbt_common_cfg INTERFACE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:LINKER:--dynamicbase>)
|
||||
endif()
|
||||
@@ -101,8 +76,12 @@ macro(qbt_common_config)
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
target_compile_options(qbt_common_cfg INTERFACE /guard:cf)
|
||||
target_link_options(qbt_common_cfg INTERFACE /guard:cf
|
||||
target_compile_options(qbt_common_cfg INTERFACE
|
||||
/guard:cf
|
||||
/utf-8
|
||||
)
|
||||
target_link_options(qbt_common_cfg INTERFACE
|
||||
/guard:cf
|
||||
$<$<NOT:$<CONFIG:Debug>>:/OPT:REF /OPT:ICF>
|
||||
# suppress linking warning due to /INCREMENTAL and /OPT:ICF being both ON
|
||||
$<$<CONFIG:RelWithDebInfo>:/INCREMENTAL:NO>
|
||||
|
56
configure.ac
56
configure.ac
@@ -1,6 +1,8 @@
|
||||
AC_INIT([qbittorrent], [v4.3.0alpha], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
||||
AC_INIT([qbittorrent], [v4.3.7], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
: ${CFLAGS=""}
|
||||
: ${CXXFLAGS=""}
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AC_PROG_SED
|
||||
@@ -139,7 +141,7 @@ AS_IF([test "x$QT_QMAKE" = "x"],
|
||||
[AC_MSG_ERROR([Could not find qmake])
|
||||
])
|
||||
AS_IF([test "x$enable_gui" = "xyes"],
|
||||
[PKG_CHECK_MODULES(Qt5Svg, [Qt5Svg >= 5.5.1])
|
||||
[PKG_CHECK_MODULES(Qt5Svg, [Qt5Svg >= 5.11])
|
||||
])
|
||||
AC_MSG_CHECKING([whether QtDBus should be enabled])
|
||||
AS_CASE(["x$enable_qt_dbus"],
|
||||
@@ -157,7 +159,7 @@ AS_CASE(["x$enable_qt_dbus"],
|
||||
AC_MSG_ERROR([Unknown option "$enable_qt_dbus". Use either "yes" or "no".])])
|
||||
|
||||
|
||||
AX_BOOST_BASE([1.40],
|
||||
AX_BOOST_BASE([1.65],
|
||||
[AC_MSG_NOTICE([Boost CXXFLAGS: "$BOOST_CPPFLAGS"])
|
||||
AC_MSG_NOTICE([Boost LDFLAGS: "$BOOST_LDFLAGS"])],
|
||||
[AC_MSG_ERROR([Could not find Boost])])
|
||||
@@ -178,48 +180,48 @@ AC_MSG_NOTICE([Boost.System LIB: "$BOOST_SYSTEM_LIB"])
|
||||
LIBS="$BOOST_SYSTEM_LIB $LIBS"
|
||||
|
||||
PKG_CHECK_MODULES(libtorrent,
|
||||
[libtorrent-rasterbar >= 1.2],
|
||||
[libtorrent-rasterbar >= 1.2.12],
|
||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS"
|
||||
LIBS="$libtorrent_LIBS $LIBS"])
|
||||
|
||||
PKG_CHECK_MODULES(openssl,
|
||||
[openssl >= 1.0],
|
||||
[openssl >= 1.1.1],
|
||||
[CXXFLAGS="$openssl_CFLAGS $CXXFLAGS"
|
||||
LIBS="$openssl_LIBS $LIBS"])
|
||||
|
||||
PKG_CHECK_MODULES(zlib,
|
||||
[zlib >= 1.2.5.2],
|
||||
[zlib >= 1.2.11],
|
||||
[CXXFLAGS="$zlib_CFLAGS $CXXFLAGS"
|
||||
LIBS="$zlib_LIBS $LIBS"])
|
||||
|
||||
# Check if already in >= C++14 mode because of the flags returned by one of the above packages
|
||||
# Check if already in >= C++17 mode because of the flags returned by one of the above packages
|
||||
TMP_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS=""
|
||||
AC_MSG_CHECKING([if compiler defaults to C++14 or later mode])
|
||||
AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()],
|
||||
AC_MSG_CHECKING([if compiler defaults to C++17 or later mode])
|
||||
AC_COMPILE_IFELSE([DETECT_CPP17_PROGRAM()],
|
||||
[AC_MSG_RESULT([yes])
|
||||
QBT_CXX14_FOUND="yes"],
|
||||
QBT_CXX17_FOUND="yes"],
|
||||
[AC_MSG_RESULT([no])
|
||||
QBT_CXX14_FOUND="no"])
|
||||
QBT_CXX17_FOUND="no"])
|
||||
|
||||
# In case of no, check if the compiler can support at least C++14
|
||||
# In case of no, check if the compiler can support at least C++17
|
||||
# and if yes, enable it leaving a warning to the user
|
||||
AS_IF([test "x$QBT_CXX14_FOUND" = "xno"],
|
||||
[AC_MSG_CHECKING([if compiler supports C++14])
|
||||
CXXFLAGS="-std=c++14"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()],
|
||||
AS_IF([test "x$QBT_CXX17_FOUND" = "xno"],
|
||||
[AC_MSG_CHECKING([if compiler supports C++17])
|
||||
CXXFLAGS="-std=c++17"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP17_PROGRAM()],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_MSG_CHECKING([if C++14 is disabled by the set compiler flags])
|
||||
AC_MSG_CHECKING([if C++17 is disabled by the set compiler flags])
|
||||
# prepend the flag so it won't override conflicting user defined flags
|
||||
CXXFLAGS="-std=c++14 $TMP_CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()],
|
||||
CXXFLAGS="-std=c++17 $TMP_CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP17_PROGRAM()],
|
||||
[AC_MSG_RESULT([no])
|
||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG c++14"
|
||||
AC_MSG_WARN([C++14 mode is now force enabled. The C++ mode should match the mode that other libraries were built with, otherwise you'll likely get linking errors.])],
|
||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG c++1z"
|
||||
AC_MSG_WARN([C++17 mode is now force enabled. The C++ mode should match the mode that other libraries were built with, otherwise you'll likely get linking errors.])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_MSG_ERROR([The compiler supports C++14 but the user or a dependency has explicitly enabled a lower mode.])])],
|
||||
AC_MSG_ERROR([The compiler supports C++17 but the user or a dependency has explicitly enabled a lower mode.])])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([A compiler supporting C++14 is required.])])
|
||||
AC_MSG_ERROR([A compiler supporting C++17 is required.])])
|
||||
])
|
||||
CXXFLAGS="$TMP_CXXFLAGS"
|
||||
|
||||
@@ -270,9 +272,13 @@ AC_SUBST(QBT_REMOVE_CONFIG)
|
||||
AC_SUBST(QBT_ADD_DEFINES)
|
||||
AC_SUBST(QBT_REMOVE_DEFINES)
|
||||
|
||||
AC_OUTPUT(conf.pri)
|
||||
QBT_CONFIG_FILES="conf.pri"
|
||||
|
||||
AS_IF([test "x$enable_systemd" = "xyes"],
|
||||
[AC_OUTPUT(dist/unix/systemd/qbittorrent-nox@.service)])
|
||||
[QBT_CONFIG_FILES="$QBT_CONFIG_FILES dist/unix/systemd/qbittorrent-nox@.service"])
|
||||
|
||||
AC_CONFIG_FILES(["$QBT_CONFIG_FILES"])
|
||||
AC_OUTPUT
|
||||
|
||||
AC_MSG_NOTICE([Running qmake to generate the makefile...])
|
||||
TOPDIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
1
dist/mac/CMakeLists.txt
vendored
1
dist/mac/CMakeLists.txt
vendored
@@ -0,0 +1 @@
|
||||
# empty
|
||||
|
8
dist/mac/Info.plist
vendored
8
dist/mac/Info.plist
vendored
@@ -47,7 +47,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleName</key>
|
||||
<string>@EXECUTABLE@</string>
|
||||
<string>qBittorrent</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>qbittorrent_mac.icns</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
@@ -55,9 +55,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.3.0</string>
|
||||
<string>4.3.7</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>@EXECUTABLE@</string>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.qbittorrent.qBittorrent</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
@@ -67,7 +67,7 @@
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<string>YES</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2006-2020 The qBittorrent project</string>
|
||||
<string>Copyright © 2006-2021 The qBittorrent project</string>
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
BIN
dist/qt-translations/qt_fa.qm
vendored
BIN
dist/qt-translations/qt_fa.qm
vendored
Binary file not shown.
BIN
dist/qt-translations/qt_gl.qm
vendored
BIN
dist/qt-translations/qt_gl.qm
vendored
Binary file not shown.
BIN
dist/qt-translations/qt_lt.qm
vendored
BIN
dist/qt-translations/qt_lt.qm
vendored
Binary file not shown.
BIN
dist/qt-translations/qt_pt.qm
vendored
BIN
dist/qt-translations/qt_pt.qm
vendored
Binary file not shown.
BIN
dist/qt-translations/qt_sl.qm
vendored
BIN
dist/qt-translations/qt_sl.qm
vendored
Binary file not shown.
BIN
dist/qt-translations/qt_zh_CN.qm
vendored
BIN
dist/qt-translations/qt_zh_CN.qm
vendored
Binary file not shown.
BIN
dist/qt-translations/qtbase_ar.qm
vendored
BIN
dist/qt-translations/qtbase_ar.qm
vendored
Binary file not shown.
BIN
dist/qt-translations/qtbase_bg.qm
vendored
BIN
dist/qt-translations/qtbase_bg.qm
vendored
Binary file not shown.
BIN
dist/qt-translations/qtbase_ca.qm
vendored
BIN
dist/qt-translations/qtbase_ca.qm
vendored
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user