You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-28 14:50:53 +01:00
Compare commits
247 Commits
release-4.
...
v4_5_x
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d7097b024 | ||
|
|
ab6f344b65 | ||
|
|
a3e08c6254 | ||
|
|
4a97e1d5be | ||
|
|
f5c52db838 | ||
|
|
93b1f3a8fd | ||
|
|
7f2cc24f22 | ||
|
|
b863f360a5 | ||
|
|
2618472e44 | ||
|
|
7376f72d34 | ||
|
|
25d57ff807 | ||
|
|
d0f071b625 | ||
|
|
710478686e | ||
|
|
d1e0c7beaa | ||
|
|
aaf757f29e | ||
|
|
93204a63ad | ||
|
|
7774020ba8 | ||
|
|
62d87f384b | ||
|
|
6ee6815d24 | ||
|
|
4497ca4a0e | ||
|
|
72028be563 | ||
|
|
b5fddd5408 | ||
|
|
c8763f08da | ||
|
|
b8259969ac | ||
|
|
d3a57e3e01 | ||
|
|
fbd228b360 | ||
|
|
23176b1a56 | ||
|
|
46afeb0f32 | ||
|
|
114e2ee1ab | ||
|
|
b5af0f71b9 | ||
|
|
bd9c42e004 | ||
|
|
272ff11d65 | ||
|
|
04bd33e5b3 | ||
|
|
6a4c423b88 | ||
|
|
112ab86a6b | ||
|
|
fcd38a497e | ||
|
|
6e75866ed7 | ||
|
|
1f9dde0c37 | ||
|
|
8b13d8f222 | ||
|
|
8d654f9802 | ||
|
|
cfc73da312 | ||
|
|
9801cd0323 | ||
|
|
c01d7a34c1 | ||
|
|
af41a0eece | ||
|
|
c509f57b66 | ||
|
|
8de091f4dd | ||
|
|
e246745776 | ||
|
|
9d42657468 | ||
|
|
2b4fcda463 | ||
|
|
70a2d7bd58 | ||
|
|
a9c85ab321 | ||
|
|
e574bc1c57 | ||
|
|
fc90953f91 | ||
|
|
7016aa372b | ||
|
|
cbe9a27a92 | ||
|
|
97853f31f2 | ||
|
|
66ffb7328d | ||
|
|
9d9101186d | ||
|
|
621ec4e92f | ||
|
|
4b752cba4f | ||
|
|
38c0864bf2 | ||
|
|
c21c3d2300 | ||
|
|
3be5273246 | ||
|
|
37e348ed92 | ||
|
|
36364121ba | ||
|
|
df08bd331c | ||
|
|
abd1ab5539 | ||
|
|
632d33b266 | ||
|
|
35f7e1c896 | ||
|
|
792301dfe4 | ||
|
|
e31cf5ac23 | ||
|
|
0bfe6ff64b | ||
|
|
d40c7e8833 | ||
|
|
8e81d44b3c | ||
|
|
97a30218bc | ||
|
|
e9884b9513 | ||
|
|
a63269e3e1 | ||
|
|
d03e715708 | ||
|
|
927732f190 | ||
|
|
88c991880f | ||
|
|
29290fa109 | ||
|
|
0a8d604ef3 | ||
|
|
532c985b50 | ||
|
|
a32182f794 | ||
|
|
1aebcd3258 | ||
|
|
9f743aab86 | ||
|
|
ece839739e | ||
|
|
2204757eca | ||
|
|
bfda520ef4 | ||
|
|
af91f4ed51 | ||
|
|
41c3a8af01 | ||
|
|
cc7f8372a8 | ||
|
|
d20633f9cc | ||
|
|
961e05e9a8 | ||
|
|
eb98a04245 | ||
|
|
5dc1c10848 | ||
|
|
dcbff74dc0 | ||
|
|
5e29960da2 | ||
|
|
aa43fc8ff4 | ||
|
|
2517e688d9 | ||
|
|
40d94fd8e9 | ||
|
|
eb97e640cb | ||
|
|
2123c1c259 | ||
|
|
6cf1351a77 | ||
|
|
c924904308 | ||
|
|
904bcc14d5 | ||
|
|
c3abe4c2a6 | ||
|
|
7144454a1f | ||
|
|
daaa88fa0d | ||
|
|
0b7c8497f9 | ||
|
|
e3562be0d6 | ||
|
|
e0d0efcc20 | ||
|
|
fb22b58ce6 | ||
|
|
c78ac614f5 | ||
|
|
de15907ea7 | ||
|
|
a4289a517f | ||
|
|
967c3bb55d | ||
|
|
c57896df8f | ||
|
|
911f0d4039 | ||
|
|
e822d4fca7 | ||
|
|
0da132b69e | ||
|
|
691cb4fe2b | ||
|
|
97a053916b | ||
|
|
24bf8eef6d | ||
|
|
4314bbdf9c | ||
|
|
65611cd3dc | ||
|
|
6a4bb1356a | ||
|
|
06593e3678 | ||
|
|
18577d9cb0 | ||
|
|
701b84dc48 | ||
|
|
9a95237b85 | ||
|
|
a6a99fbd36 | ||
|
|
86671bee46 | ||
|
|
f1432a2e3d | ||
|
|
480e3f02ca | ||
|
|
6b05c716a8 | ||
|
|
c697829b1b | ||
|
|
9a2ec6912b | ||
|
|
7601163d32 | ||
|
|
8e2bda2b7a | ||
|
|
1761f6c58e | ||
|
|
419cdde4e1 | ||
|
|
6ec46a90d1 | ||
|
|
f4051034d7 | ||
|
|
1a8ba00f2c | ||
|
|
de4c1c9265 | ||
|
|
bff9189e52 | ||
|
|
076b3628b1 | ||
|
|
75ccce705e | ||
|
|
964bf31775 | ||
|
|
507ced2fa2 | ||
|
|
e62f9ef56a | ||
|
|
a5a242377b | ||
|
|
0758109d15 | ||
|
|
3970d91d19 | ||
|
|
4e98b7f0cf | ||
|
|
27a69d9cca | ||
|
|
d884ec1731 | ||
|
|
62b2959cb4 | ||
|
|
2bdc91c53f | ||
|
|
d829df99aa | ||
|
|
4f2ac34440 | ||
|
|
94e9e9fdb2 | ||
|
|
3a2e73cc94 | ||
|
|
3ee0457cfa | ||
|
|
e19173c1f3 | ||
|
|
4a5d2e2558 | ||
|
|
027d6be48f | ||
|
|
0f2cc92ba2 | ||
|
|
07bb1df74f | ||
|
|
c29a6079bf | ||
|
|
dfb56ce31c | ||
|
|
5a8027ae1f | ||
|
|
bb2caabd61 | ||
|
|
14e4bc7eea | ||
|
|
9fb8f765e8 | ||
|
|
fe0be98fde | ||
|
|
fdba525e62 | ||
|
|
dfdaa706bd | ||
|
|
1a782a9362 | ||
|
|
f2dd1e6456 | ||
|
|
155e73df16 | ||
|
|
05b7194bf7 | ||
|
|
597444c527 | ||
|
|
1c2dc79f51 | ||
|
|
dcfd367ff8 | ||
|
|
67ee43fac1 | ||
|
|
a325ab8d6e | ||
|
|
c94152c47c | ||
|
|
a44bca3f07 | ||
|
|
698284f00e | ||
|
|
3b9d68f344 | ||
|
|
e028d8085b | ||
|
|
af1c97e2ea | ||
|
|
b95d97d07b | ||
|
|
17a5bd03c5 | ||
|
|
ada594faf3 | ||
|
|
4f0990dc29 | ||
|
|
f66ec4430d | ||
|
|
67357e9964 | ||
|
|
7eb97348de | ||
|
|
0279b80b46 | ||
|
|
d3936c07c7 | ||
|
|
aa022400f7 | ||
|
|
66795d533a | ||
|
|
ce7d8dee28 | ||
|
|
1f799689ed | ||
|
|
3463442631 | ||
|
|
c35ca52b00 | ||
|
|
6d501c2e6e | ||
|
|
a71d7e6557 | ||
|
|
30c2f9d9f3 | ||
|
|
544f9675c6 | ||
|
|
0c76321a6a | ||
|
|
10349b84d6 | ||
|
|
6fa4305aba | ||
|
|
d9af207a11 | ||
|
|
ad59eb4dfc | ||
|
|
874b015b20 | ||
|
|
21aabfdcb5 | ||
|
|
e7370d1a0f | ||
|
|
855f727451 | ||
|
|
3b0ac0962e | ||
|
|
617dedc464 | ||
|
|
8b4a0da235 | ||
|
|
dcc5206e3d | ||
|
|
9a81cbf4c0 | ||
|
|
d96ed5f4a4 | ||
|
|
102b6c32eb | ||
|
|
2af1e1874e | ||
|
|
680455a21b | ||
|
|
b568cdb1aa | ||
|
|
bc0d906adc | ||
|
|
2b385e5f92 | ||
|
|
616057a433 | ||
|
|
9a20aa51de | ||
|
|
6c8b31420c | ||
|
|
0514cb304d | ||
|
|
0a4ee60ea0 | ||
|
|
caa30e41d8 | ||
|
|
dc76a175ad | ||
|
|
92768c36aa | ||
|
|
2a3a4bff70 | ||
|
|
cacfe4f3ca | ||
|
|
37150520e1 | ||
|
|
3aadb63d80 | ||
|
|
0e0b8d1027 |
@@ -37,8 +37,6 @@ install:
|
|||||||
RMDIR /S /Q "%CACHE_DIR%" & MKDIR "%CACHE_DIR%" &&
|
RMDIR /S /Q "%CACHE_DIR%" & MKDIR "%CACHE_DIR%" &&
|
||||||
appveyor DownloadFile "%QBT_LIB_URL%" -FileName "c:\qbt_lib.7z" && 7z x "c:\qbt_lib.7z" -o"%CACHE_DIR%" > nul &&
|
appveyor DownloadFile "%QBT_LIB_URL%" -FileName "c:\qbt_lib.7z" && 7z x "c:\qbt_lib.7z" -o"%CACHE_DIR%" > nul &&
|
||||||
COPY "c:\version_new" "%CACHE_DIR%\version")
|
COPY "c:\version_new" "%CACHE_DIR%\version")
|
||||||
# Qt stay compressed in cache
|
|
||||||
- 7z x "%CACHE_DIR%\qt5_64.7z" -o"c:\qbt" > nul
|
|
||||||
|
|
||||||
before_build:
|
before_build:
|
||||||
# setup env
|
# setup env
|
||||||
@@ -47,6 +45,7 @@ before_build:
|
|||||||
# setup project
|
# setup project
|
||||||
- COPY /Y "%CACHE_DIR%\conf.pri" "%REPO_DIR%"
|
- COPY /Y "%CACHE_DIR%\conf.pri" "%REPO_DIR%"
|
||||||
# workarounds
|
# workarounds
|
||||||
|
- MKDIR "c:\qbt"
|
||||||
- MKLINK /J "c:\qbt\base" "%CACHE_DIR%\base"
|
- MKLINK /J "c:\qbt\base" "%CACHE_DIR%\base"
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
@@ -69,8 +68,11 @@ after_build:
|
|||||||
- COPY src\release\qbittorrent.exe upload
|
- COPY src\release\qbittorrent.exe upload
|
||||||
- COPY src\release\qbittorrent.pdb upload
|
- COPY src\release\qbittorrent.pdb upload
|
||||||
- COPY "%CACHE_DIR%\base\bin\libcrypto-1_1-x64.dll" upload
|
- COPY "%CACHE_DIR%\base\bin\libcrypto-1_1-x64.dll" upload
|
||||||
|
- COPY "%CACHE_DIR%\base\bin\libcrypto-1_1-x64.pdb" upload
|
||||||
- COPY "%CACHE_DIR%\base\bin\libssl-1_1-x64.dll" upload
|
- COPY "%CACHE_DIR%\base\bin\libssl-1_1-x64.dll" upload
|
||||||
- COPY "%CACHE_DIR%\base\lib\torrent-rasterbar.dll" upload
|
- COPY "%CACHE_DIR%\base\bin\libssl-1_1-x64.pdb" upload
|
||||||
|
- COPY "%CACHE_DIR%\base\bin\torrent-rasterbar.dll" upload
|
||||||
|
- COPY "%CACHE_DIR%\base\bin\torrent-rasterbar.pdb" upload
|
||||||
- COPY "%CACHE_DIR%\base\lib\zlib1.dll" upload
|
- COPY "%CACHE_DIR%\base\lib\zlib1.dll" upload
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll upload
|
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll upload
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Gui.dll upload
|
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Gui.dll upload
|
||||||
|
|||||||
2
.github/workflows/ci_file_health.yaml
vendored
2
.github/workflows/ci_file_health.yaml
vendored
@@ -2,6 +2,8 @@ name: CI - File health
|
|||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
cancel-in-progress: ${{ github.head_ref != '' }}
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
|
|||||||
37
.github/workflows/ci_macos.yaml
vendored
37
.github/workflows/ci_macos.yaml
vendored
@@ -2,6 +2,9 @@ name: CI - macOS
|
|||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
cancel-in-progress: ${{ github.head_ref != '' }}
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
@@ -14,12 +17,12 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
libt_version: ["2.0.7", "1.2.17"]
|
libt_version: ["2.0.8", "1.2.18"]
|
||||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||||
qt_version: ["5.15.2", "6.2.0"]
|
qt_version: ["5.15.2", "6.4.0"]
|
||||||
exclude:
|
exclude:
|
||||||
- libt_version: "1.2.17"
|
- libt_version: "1.2.18"
|
||||||
qt_version: "6.2.0"
|
qt_version: "6.4.0"
|
||||||
|
|
||||||
env:
|
env:
|
||||||
boost_path: "${{ github.workspace }}/../boost"
|
boost_path: "${{ github.workspace }}/../boost"
|
||||||
@@ -31,6 +34,9 @@ jobs:
|
|||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
|
export \
|
||||||
|
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 \
|
||||||
|
HOMEBREW_NO_INSTALL_CLEANUP=1
|
||||||
brew update > /dev/null
|
brew update > /dev/null
|
||||||
brew install \
|
brew install \
|
||||||
cmake ninja \
|
cmake ninja \
|
||||||
@@ -46,7 +52,7 @@ jobs:
|
|||||||
curl \
|
curl \
|
||||||
-L \
|
-L \
|
||||||
-o "${{ runner.temp }}/boost.tar.bz2" \
|
-o "${{ runner.temp }}/boost.tar.bz2" \
|
||||||
"https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2"
|
"https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2"
|
||||||
tar -xf "${{ runner.temp }}/boost.tar.bz2" -C "${{ github.workspace }}/.."
|
tar -xf "${{ runner.temp }}/boost.tar.bz2" -C "${{ github.workspace }}/.."
|
||||||
mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
|
mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
|
||||||
|
|
||||||
@@ -54,6 +60,8 @@ jobs:
|
|||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: ${{ matrix.qt_version }}
|
version: ${{ matrix.qt_version }}
|
||||||
|
archives: qtbase qtdeclarative qtsvg qttools
|
||||||
|
# Not sure why Qt made a hard dependency on qtdeclarative, try removing it when Qt > 6.4.0
|
||||||
|
|
||||||
- name: Install libtorrent
|
- name: Install libtorrent
|
||||||
run: |
|
run: |
|
||||||
@@ -66,6 +74,7 @@ jobs:
|
|||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_CXX_STANDARD=17 \
|
-DCMAKE_CXX_STANDARD=17 \
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
@@ -78,11 +87,12 @@ jobs:
|
|||||||
- name: Build qBittorrent (Qt5)
|
- name: Build qBittorrent (Qt5)
|
||||||
if: ${{ startsWith(matrix.qt_version, 5) }}
|
if: ${{ startsWith(matrix.qt_version, 5) }}
|
||||||
run: |
|
run: |
|
||||||
|
CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \
|
||||||
|
LDFLAGS="$LDFLAGS -gz" \
|
||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_CXX_FLAGS="-Werror -Wno-error=deprecated-declarations" \
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
-DBOOST_ROOT="${{ env.boost_path }}" \
|
-DBOOST_ROOT="${{ env.boost_path }}" \
|
||||||
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
||||||
@@ -96,11 +106,12 @@ jobs:
|
|||||||
- name: Build qBittorrent (Qt6)
|
- name: Build qBittorrent (Qt6)
|
||||||
if: ${{ startsWith(matrix.qt_version, 6) }}
|
if: ${{ startsWith(matrix.qt_version, 6) }}
|
||||||
run: |
|
run: |
|
||||||
|
CXXFLAGS="$CXXFLAGS -Wno-gnu-zero-variadic-macro-arguments -Werror -Wno-error=deprecated-declarations" \
|
||||||
|
LDFLAGS="$LDFLAGS -gz" \
|
||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_CXX_FLAGS="-Werror -Wno-error=deprecated-declarations" \
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
-DBOOST_ROOT="${{ env.boost_path }}" \
|
-DBOOST_ROOT="${{ env.boost_path }}" \
|
||||||
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
||||||
@@ -114,7 +125,17 @@ jobs:
|
|||||||
|
|
||||||
- name: Prepare build artifacts
|
- name: Prepare build artifacts
|
||||||
run: |
|
run: |
|
||||||
|
# create .dmg
|
||||||
|
appName="qbittorrent"
|
||||||
|
if [ "${{ matrix.qbt_gui }}" = "GUI=OFF" ]; then
|
||||||
|
appName="qbittorrent-nox"
|
||||||
|
fi
|
||||||
|
pushd build
|
||||||
|
macdeployqt "$appName.app" -dmg -no-strip
|
||||||
|
popd
|
||||||
|
# prepare upload folder
|
||||||
mkdir upload
|
mkdir upload
|
||||||
|
cp "build/$appName.dmg" upload
|
||||||
mkdir upload/cmake
|
mkdir upload/cmake
|
||||||
cp build/compile_commands.json upload/cmake
|
cp build/compile_commands.json upload/cmake
|
||||||
mkdir upload/cmake/libtorrent
|
mkdir upload/cmake/libtorrent
|
||||||
@@ -123,5 +144,5 @@ jobs:
|
|||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: build-info_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
name: qBittorrent-CI_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
||||||
path: upload
|
path: upload
|
||||||
|
|||||||
45
.github/workflows/ci_ubuntu.yaml
vendored
45
.github/workflows/ci_ubuntu.yaml
vendored
@@ -2,6 +2,9 @@ name: CI - Ubuntu
|
|||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
cancel-in-progress: ${{ github.head_ref != '' }}
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
@@ -14,11 +17,11 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
libt_version: ["2.0.7", "1.2.17"]
|
libt_version: ["2.0.8", "1.2.18"]
|
||||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||||
qt_version: ["5.15.2", "6.2.0"]
|
qt_version: ["5.15.2", "6.2.0"]
|
||||||
exclude:
|
exclude:
|
||||||
- libt_version: "1.2.17"
|
- libt_version: "1.2.18"
|
||||||
qt_version: "6.2.0"
|
qt_version: "6.2.0"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -30,7 +33,7 @@ jobs:
|
|||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install \
|
sudo apt install \
|
||||||
build-essential cmake ninja-build pkg-config \
|
build-essential cmake ninja-build pkg-config \
|
||||||
libboost-dev libssl-dev zlib1g-dev
|
libboost-dev libssl-dev libxkbcommon-x11-dev zlib1g-dev
|
||||||
|
|
||||||
- name: Setup ccache
|
- name: Setup ccache
|
||||||
uses: Chocobo1/setup-ccache-action@v1
|
uses: Chocobo1/setup-ccache-action@v1
|
||||||
@@ -43,6 +46,7 @@ jobs:
|
|||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: ${{ matrix.qt_version }}
|
version: ${{ matrix.qt_version }}
|
||||||
|
archives: icu qtbase qtsvg qttools
|
||||||
|
|
||||||
- name: Install libtorrent
|
- name: Install libtorrent
|
||||||
run: |
|
run: |
|
||||||
@@ -64,11 +68,12 @@ jobs:
|
|||||||
- name: Build qBittorrent (Qt5)
|
- name: Build qBittorrent (Qt5)
|
||||||
if: ${{ startsWith(matrix.qt_version, 5) }}
|
if: ${{ startsWith(matrix.qt_version, 5) }}
|
||||||
run: |
|
run: |
|
||||||
|
CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \
|
||||||
|
LDFLAGS="$LDFLAGS -gz" \
|
||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_CXX_FLAGS="-Werror -Wno-error=deprecated-declarations" \
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
-DCMAKE_INSTALL_PREFIX="/usr" \
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
||||||
-DTESTING=ON \
|
-DTESTING=ON \
|
||||||
@@ -82,11 +87,12 @@ jobs:
|
|||||||
- name: Build qBittorrent (Qt6)
|
- name: Build qBittorrent (Qt6)
|
||||||
if: ${{ startsWith(matrix.qt_version, 6) }}
|
if: ${{ startsWith(matrix.qt_version, 6) }}
|
||||||
run: |
|
run: |
|
||||||
|
CXXFLAGS="$CXXFLAGS -Werror" \
|
||||||
|
LDFLAGS="$LDFLAGS -gz" \
|
||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_CXX_FLAGS="-Werror" \
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
-DCMAKE_INSTALL_PREFIX="/usr" \
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
||||||
-DQT6=ON \
|
-DQT6=ON \
|
||||||
@@ -106,8 +112,35 @@ jobs:
|
|||||||
mkdir upload/cmake/libtorrent
|
mkdir upload/cmake/libtorrent
|
||||||
cp libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
cp libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
||||||
|
|
||||||
|
- name: 'AppImage: Prepare env'
|
||||||
|
run: |
|
||||||
|
sudo apt install libfuse2
|
||||||
|
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
||||||
|
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
|
||||||
|
wget https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage
|
||||||
|
chmod +x linuxdeploy-x86_64.AppImage
|
||||||
|
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
|
||||||
|
chmod +x linuxdeploy-plugin-appimage-x86_64.AppImage
|
||||||
|
|
||||||
|
- name: 'AppImage: Prepare nox'
|
||||||
|
if: matrix.qbt_gui == 'GUI=OFF'
|
||||||
|
run: |
|
||||||
|
mkdir -p qbittorrent/usr/share/icons/hicolor/scalable/apps/
|
||||||
|
mkdir -p qbittorrent/usr/share/applications/
|
||||||
|
cp dist/unix/menuicons/scalable/apps/qbittorrent.svg qbittorrent/usr/share/icons/hicolor/scalable/apps/qbittorrent.svg
|
||||||
|
cp .github/workflows/helper/appimage/org.qbittorrent.qBittorrent.desktop qbittorrent/usr/share/applications/org.qbittorrent.qBittorrent.desktop
|
||||||
|
|
||||||
|
- name: 'AppImage: Package'
|
||||||
|
run: |
|
||||||
|
./linuxdeploy-x86_64.AppImage --appdir=qbittorrent --plugin qt
|
||||||
|
rm qbittorrent/apprun-hooks/*
|
||||||
|
cp .github/workflows/helper/appimage/export_vars.sh qbittorrent/apprun-hooks/export_vars.sh
|
||||||
|
NO_APPSTREAM=1 \
|
||||||
|
OUTPUT=upload/qbittorrent-CI_Ubuntu_x86_64.AppImage \
|
||||||
|
./linuxdeploy-x86_64.AppImage --appdir=qbittorrent --output appimage
|
||||||
|
|
||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: build-info_ubuntu-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
name: qBittorrent-CI_Ubuntu-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
||||||
path: upload
|
path: upload
|
||||||
|
|||||||
2
.github/workflows/ci_webui.yaml
vendored
2
.github/workflows/ci_webui.yaml
vendored
@@ -2,6 +2,8 @@ name: CI - WebUI
|
|||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
cancel-in-progress: ${{ github.head_ref != '' }}
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
|
|||||||
12
.github/workflows/ci_windows.yaml
vendored
12
.github/workflows/ci_windows.yaml
vendored
@@ -2,6 +2,9 @@ name: CI - Windows
|
|||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
cancel-in-progress: ${{ github.head_ref != '' }}
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
@@ -14,7 +17,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
libt_version: ["2.0.7", "1.2.17"]
|
libt_version: ["2.0.8", "1.2.18"]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
boost_path: "${{ github.workspace }}/../boost"
|
boost_path: "${{ github.workspace }}/../boost"
|
||||||
@@ -67,7 +70,7 @@ jobs:
|
|||||||
- name: Install boost
|
- name: Install boost
|
||||||
run: |
|
run: |
|
||||||
aria2c `
|
aria2c `
|
||||||
"https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.7z" `
|
"https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.7z" `
|
||||||
-d "${{ runner.temp }}" `
|
-d "${{ runner.temp }}" `
|
||||||
-o "boost.7z"
|
-o "boost.7z"
|
||||||
7z x "${{ runner.temp }}/boost.7z" -o"${{ github.workspace }}/.."
|
7z x "${{ runner.temp }}/boost.7z" -o"${{ github.workspace }}/.."
|
||||||
@@ -76,7 +79,8 @@ jobs:
|
|||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: "6.3.0"
|
version: "6.4.0"
|
||||||
|
archives: qtbase qtsvg qttools
|
||||||
|
|
||||||
- name: Install libtorrent
|
- name: Install libtorrent
|
||||||
run: |
|
run: |
|
||||||
@@ -148,6 +152,8 @@ jobs:
|
|||||||
copy "${{ env.Qt6_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/plugins/sqldrivers
|
copy "${{ env.Qt6_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/plugins/sqldrivers
|
||||||
mkdir upload/plugins/styles
|
mkdir upload/plugins/styles
|
||||||
copy "${{ env.Qt6_DIR }}/plugins/styles/qwindowsvistastyle.dll" upload/plugins/styles
|
copy "${{ env.Qt6_DIR }}/plugins/styles/qwindowsvistastyle.dll" upload/plugins/styles
|
||||||
|
mkdir upload/plugins/tls
|
||||||
|
copy "${{ env.Qt6_DIR }}/plugins/tls/qschannelbackend.dll" upload/plugins/tls
|
||||||
# cmake additionals
|
# cmake additionals
|
||||||
mkdir upload/cmake
|
mkdir upload/cmake
|
||||||
copy build/compile_commands.json upload/cmake
|
copy build/compile_commands.json upload/cmake
|
||||||
|
|||||||
8
.github/workflows/coverity-scan.yml
vendored
8
.github/workflows/coverity-scan.yml
vendored
@@ -5,6 +5,8 @@ on:
|
|||||||
- cron: '0 0 1 * *' # Monthly (1st day of month at midnight)
|
- cron: '0 0 1 * *' # Monthly (1st day of month at midnight)
|
||||||
workflow_dispatch: # Mainly for testing. Don't forget the Coverity usage limits.
|
workflow_dispatch: # Mainly for testing. Don't forget the Coverity usage limits.
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
coverity_scan:
|
coverity_scan:
|
||||||
name: Scan
|
name: Scan
|
||||||
@@ -24,12 +26,13 @@ jobs:
|
|||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: "6.3.0"
|
version: "6.4.0"
|
||||||
|
archives: icu qtbase qtsvg qttools
|
||||||
|
|
||||||
- name: Install libtorrent
|
- name: Install libtorrent
|
||||||
run: |
|
run: |
|
||||||
git clone \
|
git clone \
|
||||||
--branch "v2.0.7" \
|
--branch "v2.0.8" \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
--recurse-submodules \
|
--recurse-submodules \
|
||||||
https://github.com/arvidn/libtorrent.git
|
https://github.com/arvidn/libtorrent.git
|
||||||
@@ -59,6 +62,7 @@ jobs:
|
|||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DGUI=ON \
|
-DGUI=ON \
|
||||||
|
-DQT6=ON \
|
||||||
-DVERBOSE_CONFIGURE=ON
|
-DVERBOSE_CONFIGURE=ON
|
||||||
export PATH="$(pwd)/coverity_tool/bin:$PATH"
|
export PATH="$(pwd)/coverity_tool/bin:$PATH"
|
||||||
cov-build --dir cov-int cmake --build build
|
cov-build --dir cov-int cmake --build build
|
||||||
|
|||||||
11
.github/workflows/helper/appimage/export_vars.sh
vendored
Normal file
11
.github/workflows/helper/appimage/export_vars.sh
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# this file is called from AppRun so 'root_dir' will point to where AppRun is
|
||||||
|
root_dir="$(readlink -f "$(dirname "$0")")"
|
||||||
|
|
||||||
|
# Insert the default values because after the test we prepend our path
|
||||||
|
# and it will create problems with DEs (eg KDE) that don't set the variable
|
||||||
|
# and rely on the default paths
|
||||||
|
if [[ -z ${XDG_DATA_DIRS} ]]; then
|
||||||
|
XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export XDG_DATA_DIRS="${root_dir}/usr/share:${XDG_DATA_DIRS}"
|
||||||
6
.github/workflows/helper/appimage/org.qbittorrent.qBittorrent.desktop
vendored
Normal file
6
.github/workflows/helper/appimage/org.qbittorrent.qBittorrent.desktop
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=qBittorrent
|
||||||
|
Exec=qbittorrent-nox %U
|
||||||
|
Icon=qbittorrent
|
||||||
|
Type=Application
|
||||||
|
Categories=Network
|
||||||
3
.github/workflows/stale_bot.yaml
vendored
3
.github/workflows/stale_bot.yaml
vendored
@@ -4,6 +4,9 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: '0 0 * * *'
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
35
.tx/config
35
.tx/config
@@ -1,27 +1,24 @@
|
|||||||
[main]
|
[main]
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
|
|
||||||
[qbittorrent.qbittorrent_master]
|
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_v45x]
|
||||||
file_filter = src/lang/qbittorrent_<lang>.ts
|
file_filter = src/lang/qbittorrent_<lang>.ts
|
||||||
lang_map = pt: pt_PT
|
source_file = src/lang/qbittorrent_en.ts
|
||||||
source_file = src/lang/qbittorrent_en.ts
|
source_lang = en
|
||||||
source_lang = en
|
type = QT
|
||||||
type = QT
|
|
||||||
minimum_perc = 23
|
minimum_perc = 23
|
||||||
mode = developer
|
lang_map = pt: pt_PT, zh: zh_CN
|
||||||
|
|
||||||
[qbittorrent.qbittorrentdesktop_master]
|
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_webui_v45x]
|
||||||
source_file = dist/unix/org.qbittorrent.qBittorrent.desktop
|
file_filter = src/webui/www/translations/webui_<lang>.ts
|
||||||
source_lang = en
|
source_file = src/webui/www/translations/webui_en.ts
|
||||||
type = DESKTOP
|
source_lang = en
|
||||||
|
type = QT
|
||||||
minimum_perc = 23
|
minimum_perc = 23
|
||||||
mode = developer
|
lang_map = pt: pt_PT, zh: zh_CN
|
||||||
|
|
||||||
[qbittorrent.qbittorrent_webui]
|
[o:sledgehammer999:p:qbittorrent:r:qbittorrentdesktop_master]
|
||||||
file_filter = src/webui/www/translations/webui_<lang>.ts
|
source_file = dist/unix/org.qbittorrent.qBittorrent.desktop
|
||||||
lang_map = pt: pt_PT
|
source_lang = en
|
||||||
source_file = src/webui/www/translations/webui_en.ts
|
type = DESKTOP
|
||||||
source_lang = en
|
|
||||||
type = QT
|
|
||||||
minimum_perc = 23
|
minimum_perc = 23
|
||||||
mode = developer
|
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ set(minBoostVersion 1.71)
|
|||||||
set(minQt5Version 5.15.2)
|
set(minQt5Version 5.15.2)
|
||||||
set(minQt6Version 6.2)
|
set(minQt6Version 6.2)
|
||||||
set(minOpenSSLVersion 1.1.1)
|
set(minOpenSSLVersion 1.1.1)
|
||||||
set(minLibtorrent1Version 1.2.14)
|
set(minLibtorrent1Version 1.2.18)
|
||||||
set(minLibtorrentVersion 2.0.7)
|
set(minLibtorrentVersion 2.0.8)
|
||||||
set(minZlibVersion 1.2.11)
|
set(minZlibVersion 1.2.11)
|
||||||
|
|
||||||
include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19
|
include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19
|
||||||
|
|||||||
154
Changelog
154
Changelog
@@ -1,4 +1,156 @@
|
|||||||
Unreleased - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.0
|
Tue Aug 29 2023 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.5
|
||||||
|
- BUGFIX: Fix transfer list tab hotkey (thalieht)
|
||||||
|
- BUGFIX: Don't forget to enable the Apply button in the Options dialog (glassez)
|
||||||
|
- BUGFIX: Immediately update torrent status on moving files (glassez)
|
||||||
|
- BUGFIX: Improve performance when scrolling the file list of large torrents (gdim47)
|
||||||
|
- BUGFIX: Don't operate on random torrents when multiple are selected and a sort/filter is applied (glassez)
|
||||||
|
- RSS: Fix overwriting feeds.json with an incomplete load of it (Omar Abdul Azeez)
|
||||||
|
- WINDOWS: Software update check logic is disabled for < Win10 (sledgehammer999)
|
||||||
|
- WINDOWS: NSIS: Update Turkish and French translations (Burak Yavuz, MarcDrieu)
|
||||||
|
- WINDOWS: NSIS: Add Romanian translation (rusu-afanasie)
|
||||||
|
|
||||||
|
Sun Jun 18 2023 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.4
|
||||||
|
- BUGFIX: Allow to disable confirmation of Pause/Resume All (glassez)
|
||||||
|
- BUGFIX: Sync flag icons with upstream (Priit Uring)
|
||||||
|
- WEBUI: Fix category save path (Raymond Ha)
|
||||||
|
|
||||||
|
Sun May 28 2023 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.3
|
||||||
|
- BUGFIX: Correctly check if database needs to be updated (glassez)
|
||||||
|
- BUGFIX: Prevent incorrect log message about torrent content deletion (glassez)
|
||||||
|
- BUGFIX: Improve finished torrent handling (glassez)
|
||||||
|
- BUGFIX: Correctly initialize group box children as disabled in Preferences (thalieht)
|
||||||
|
- BUGFIX: Don't miss saving "download path" in SQLite storage (glassez)
|
||||||
|
- BUGFIX: Improve logging of running external program (glassez)
|
||||||
|
- WEBUI: Disable UPnP for web UI by default (glassez)
|
||||||
|
- WEBUI: Use workaround for IOS file picker (DivineHawk)
|
||||||
|
- WEBUI: Work around Chrome download limit (Chocobo1)
|
||||||
|
- WEBUI: Improve 'exporting torrent' behavior (Chocobo1)
|
||||||
|
- WINDOWS: NSIS: Add Slovak translation (Christian Danížek)
|
||||||
|
|
||||||
|
Tue Feb 28 2023 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.2
|
||||||
|
- BUGFIX: Don't unexpectedly activate queued torrents when prefetching metadata for added magnets (glassez)
|
||||||
|
- BUGFIX: Update the cached torrent state once recheck is started (glassez)
|
||||||
|
- BUGFIX: Be more likely to allow the system to use power saving modes (glassez)
|
||||||
|
- WEBUI: Migrate away from unsafe function (Chocobo1)
|
||||||
|
- WEBUI: Blacklist bad ciphers for TLS in the server (sledgehammer999)
|
||||||
|
- WEBUI: Allow only TLS 1.2+ in the server (sledgehammer999)
|
||||||
|
- WEBUI: Allow to set read-only directory as torrent location (glassez)
|
||||||
|
- WEBUI: Reject requests that contain backslash in path (glassez)
|
||||||
|
- RSS: Prevent RSS folder from being moved into itself (glassez)
|
||||||
|
- WINDOWS: NSIS: Update Turkish, Uzbek translation (Burak Yavuz, shitcod3r)
|
||||||
|
|
||||||
|
Sun Feb 12 2023 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.1
|
||||||
|
- FEATURE: Re-allow to use icons from system theme (glassez)
|
||||||
|
- BUGFIX: Fix Speed limit icon size (Nowshed H. Imran)
|
||||||
|
- BUGFIX: Revise and fix some text colors (Chocobo1, Nowshed H. Imran)
|
||||||
|
- BUGFIX: Correctly load folder based UI theme (glassez)
|
||||||
|
- BUGFIX: Fix crash due to invalid encoding of tracker URLs (glassez)
|
||||||
|
- BUGFIX: Don't drop !qB extension when renaming incomplete file (glassez)
|
||||||
|
- BUGFIX: Correctly count the number of torrents in subcategories (glassez)
|
||||||
|
- BUGFIX: Use "additional trackers" when metadata retrieving (glassez)
|
||||||
|
- BUGFIX: Apply correct tab order to Category options dialog (glassez)
|
||||||
|
- BUGFIX: Add all torrents passed via the command line (glassez)
|
||||||
|
- BUGFIX: Fix startup performance on Qt5 (glassez)
|
||||||
|
- BUGFIX: Automatic move will now overwrite existing files (aka previous behavior) (glassez)
|
||||||
|
- BUGFIX: Some fixes for loading Chinese locales (sledgehammer999)
|
||||||
|
- BUGFIX: New Pause icon color for toolbar/menu (Nowshed H. Imran, sledgehammer999)
|
||||||
|
- BUGFIX: Adjust env variable for PDB discovery (sledgehammer999)
|
||||||
|
- WEBUI: Fix missing "queued" icon (thalieht)
|
||||||
|
- WEBUI: Return paths using platform-independent separator format (glassez)
|
||||||
|
- WEBUI: Change order of accepted types of file input (Jason Carr)
|
||||||
|
- WEBUI: Add missing icons (brvphoenix)
|
||||||
|
- WEBUI: Add "Resume data storage type" option (thalieht)
|
||||||
|
- WEBUI: Make rename file dialog resizable (Torsten Schwarz)
|
||||||
|
- WEBUI: Prevent incorrect line breaking (David Xuang)
|
||||||
|
- WEBUI: Improve hotkeys (Fidel Selva)
|
||||||
|
- WEBUI: Remove suggestions while searching for torrents (Midhun V Nadh)
|
||||||
|
- WEBUI: Expose "IS PRIVATE" flag (sotiris-bos)
|
||||||
|
- WEBUI: Return name/hash/infohash_v1/infohash_v2 torrent properties (qbittorrentfan)
|
||||||
|
- WINDOWS: Correctly detect drive letter in path (glassez)
|
||||||
|
- WINDOWS: NSIS: Update Swedish, Lithuanian translations (Jonatan, Deividas)
|
||||||
|
- LINUX: Fix tray icon issues (glassez)
|
||||||
|
|
||||||
|
Sat Nov 26 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.0
|
||||||
|
- FEATURE: Add `Auto resize columns` functionality (Chocobo1)
|
||||||
|
- FEATURE: Allow to use Category paths in `Manual` mode (glassez)
|
||||||
|
- FEATURE: Allow to disable Automatic mode when default "temp" path changed (glassez)
|
||||||
|
- FEATURE: Add tuning options related to performance warnings (Chocobo1)
|
||||||
|
- FEATURE: Add right click menu for status filters (An0n)
|
||||||
|
- FEATURE: Allow setting the number of maximum active checking torrents (An0n)
|
||||||
|
- FEATURE: Add option to toggle filters sidebar (AbeniMatteo)
|
||||||
|
- FEATURE: Allow to set `working set limit` on non-Windows OS (Chocobo1)
|
||||||
|
- FEATURE: Add `Export .torrent` action (Chocobo1)
|
||||||
|
- FEATURE: Add keyboard navigation keys (itlezy)
|
||||||
|
- FEATURE: Allow to use POSIX-compliant disk IO type (Coda)
|
||||||
|
- FEATURE: Add `Filter files` field in new torrent dialog (thalieht)
|
||||||
|
- FEATURE: Implement new icon/color theme (now-im, xavier2k6)
|
||||||
|
- FEATURE: Add file name filter/blacklist (mxtsdev, thalieht)
|
||||||
|
- FEATURE: Add support for custom SMTP ports (Emil M George)
|
||||||
|
- FEATURE: Split the OS cache settings into Disk IO read/write modes (summer)
|
||||||
|
- FEATURE: When duplicate torrent is added set metadata to existing one (glassez)
|
||||||
|
- FEATURE: Greatly improve startup time with many torrents (glassez, jagannatharjun)
|
||||||
|
- FEATURE: Add keyboard shortcut to Download URL dialog (Chocobo1)
|
||||||
|
- FEATURE: Add ability to run external program on torrent added (glassez)
|
||||||
|
- FEATURE: Add infohash and download path columns (tristanleboss)
|
||||||
|
- FEATURE: Allow to set torrent stop condition (glassez, thalieht)
|
||||||
|
- FEATURE: Add a `Moving` status filter (tristanleboss)
|
||||||
|
- FEATURE: Change color palettes for both dark, light themes (Chocobo1)
|
||||||
|
- FEATURE: Add a `Use proxy for hostname lookup` option (Nathan Lewis)
|
||||||
|
- FEATURE: Introduce a `change listen port` cmd option (BallsOfSpaghetti)
|
||||||
|
- FEATURE: Implement `Peer ID Client` column for `Peers` tab (Hanabishi)
|
||||||
|
- FEATURE: Add port forwarding option for embedded tracker (Chocobo1)
|
||||||
|
- BUGFIX: Store hybrid torrents using `torrent ID` as basename (glassez)
|
||||||
|
- BUGFIX: Enable Combobox editor for the `Mixed` file download priority (Aleksandr Cupacenko)
|
||||||
|
- BUGFIX: Allow shortcut folders for the Open and Save directory dialogs (Aleksandr Cupacenko)
|
||||||
|
- BUGFIX: Rename content tab `Size` column to `Total Size` (Aleksandr Cupacenko)
|
||||||
|
- BUGFIX: Fix scrolling to the lowermost visible torrent (Aleksandr Cupacenko)
|
||||||
|
- BUGFIX: Allow changing file priorities for finished torrents (An0n)
|
||||||
|
- BUGFIX: Focus save path when Manual mode is selected initially (Aleksandr Cupacenko)
|
||||||
|
- BUGFIX: Disable force reannounce when it is not possible (An0n)
|
||||||
|
- BUGFIX: Add horizontal scrolling for tracker list and torrent content (NotTsunami)
|
||||||
|
- BUGFIX: Enlarge "speed limits" icons (Chocobo1)
|
||||||
|
- BUGFIX: Change Downloaded to Times Downloaded in trackers tab (An0n)
|
||||||
|
- BUGFIX: Remove artificial max limits from `Torrent Queueing` related options (Chocobo1)
|
||||||
|
- BUGFIX: Preserve `skip hash check` when there is no metadata (glassez)
|
||||||
|
- BUGFIX: Fix DHT/PeX/LSD status when it is globally disabled (Kacper Michajłow)
|
||||||
|
- BUGFIX: Fix rate calculation when interval is too low (glassez)
|
||||||
|
- BUGFIX: Add tooltip message when system tray icon isn't available (Chocobo1)
|
||||||
|
- BUGFIX: Improve sender field in mail notifications (Dmitry Vodopyanov)
|
||||||
|
- BUGFIX: Fix "Add torrent dialog" spill-over on smaller screens (Chocobo1)
|
||||||
|
- BUGFIX: Fix peer count issue when tracker responds with zero figure (summer)
|
||||||
|
- BUGFIX: Don't merge trackers by default (glassez)
|
||||||
|
- BUGFIX: Don't inhibit system sleep/auto shutdown for torrents stuck at downloading metadata (summer)
|
||||||
|
- BUGFIX: Allow to pause a checking torrent from context menu (summer)
|
||||||
|
- BUGFIX: Allow to use subnet notation in reverse proxy list (Chocobo1)
|
||||||
|
- BUGFIX: Fine tune translations loading for Chinese locales (sledgehammer999)
|
||||||
|
- BUGFIX: Fix torrent content checkboxes not updated properly (Chocobo1)
|
||||||
|
- BUGFIX: Correctly load state of `Use another path for incomplete torrents` in Watched folders (glassez)
|
||||||
|
- BUGFIX: Add confirmation to resume/pause all (BallsOfSpaghetti)
|
||||||
|
- BUGFIX: Fix wrong count of errored trackers (Chocobo1)
|
||||||
|
- WEBUI: Allow blank lines in multipart form-data input (Aleksandr Cupacenko)
|
||||||
|
- WEBUI: Make various dialogs resizable (Chocobo1)
|
||||||
|
- WEBUI: Fix wrong v2 hash string displayed (Chocobo1)
|
||||||
|
- WEBUI: WebAPI: return correct status (Requi)
|
||||||
|
- WEBUI: Fix empty selection in language combobox (Chocobo1)
|
||||||
|
- WEBUI: Store WebUI port setting in human readable number (Chocobo1)
|
||||||
|
- WEBUI: Add support for exporting .torrent (Tom Piccirello)
|
||||||
|
- WEBUI: WebAPI: Add endpoint to set speed limit mode (glassez)
|
||||||
|
- WEBUI: Improve progress bar rendering (Mike Lei)
|
||||||
|
- WEBUI: Add transfer list refresh interval settings (summer)
|
||||||
|
- WEBUI: Use natural sort (Chocobo1)
|
||||||
|
- WEBUI: Apply i18n translation only to built-in WebUI (Chocobo1)
|
||||||
|
- WEBUI: Alert when HTTPS settings are incomplete (Chocobo1)
|
||||||
|
- WEBUI: Handle drag and drop events (Chocobo1)
|
||||||
|
- WEBUI: Fix wrong behavior for shutdown action (Chocobo1)
|
||||||
|
- WEBUI: Don't disable combobox for file priority (Chocobo1)
|
||||||
|
- RSS: Increase limit of maximum number of articles per feed (summer)
|
||||||
|
- WINDOWS: Fix `Open destination folder` delay on Windows (Andrew)
|
||||||
|
- WINDOWS: NSIS: Update Russian, Estonian, Japanese, Dutch, Portuguese BR, German and Indonesian translations (Andrei Stepanov, Priit Uring, maboroshin, Thomas De Rocker, Ícaro, schnurlos, Faisal A. F. Rahman)
|
||||||
|
- LINUX: Mark as single window app in .desktop file (Nicolas Fella)
|
||||||
|
- LINUX: Add Dockerfile (Amanuense-del-diavolo, Tom Piccirello, Chocobo1)
|
||||||
|
- LINUX: Remove option of using icons from system theme (now-im)
|
||||||
|
- MACOS: Fix wrong background color in properties widget (NotTsunami)
|
||||||
|
- OTHER: Binary distributions of qbittorrent are GPLv3+ licensed (sledgehammer999)
|
||||||
|
|
||||||
Thu Jan 06 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.0
|
Thu Jan 06 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.0
|
||||||
- FEATURE: Support for v2 torrents along with libtorrent 2.0.x support (glassez, Chocobo1)
|
- FEATURE: Support for v2 torrents along with libtorrent 2.0.x support (glassez, Chocobo1)
|
||||||
|
|||||||
2
INSTALL
2
INSTALL
@@ -5,7 +5,7 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
|||||||
|
|
||||||
- Boost >= 1.71
|
- Boost >= 1.71
|
||||||
|
|
||||||
- libtorrent-rasterbar 1.2.14 - 1.2.x || 2.0.7 - 2.0.x
|
- libtorrent-rasterbar 1.2.18 - 1.2.x || 2.0.8 - 2.0.x
|
||||||
* By Arvid Norberg, https://www.libtorrent.org/
|
* By Arvid Norberg, https://www.libtorrent.org/
|
||||||
* Be careful: another library (the one used by rTorrent) uses a similar name
|
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||||
|
|
||||||
|
|||||||
84
configure
vendored
84
configure
vendored
@@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.71 for qbittorrent v4.5.0beta1.
|
# Generated by GNU Autoconf 2.71 for qbittorrent v4.5.5.
|
||||||
#
|
#
|
||||||
# Report bugs to <bugs.qbittorrent.org>.
|
# Report bugs to <bugs.qbittorrent.org>.
|
||||||
#
|
#
|
||||||
@@ -611,8 +611,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='qbittorrent'
|
PACKAGE_NAME='qbittorrent'
|
||||||
PACKAGE_TARNAME='qbittorrent'
|
PACKAGE_TARNAME='qbittorrent'
|
||||||
PACKAGE_VERSION='v4.5.0beta1'
|
PACKAGE_VERSION='v4.5.5'
|
||||||
PACKAGE_STRING='qbittorrent v4.5.0beta1'
|
PACKAGE_STRING='qbittorrent v4.5.5'
|
||||||
PACKAGE_BUGREPORT='bugs.qbittorrent.org'
|
PACKAGE_BUGREPORT='bugs.qbittorrent.org'
|
||||||
PACKAGE_URL='https://www.qbittorrent.org/'
|
PACKAGE_URL='https://www.qbittorrent.org/'
|
||||||
|
|
||||||
@@ -1329,7 +1329,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures qbittorrent v4.5.0beta1 to adapt to many kinds of systems.
|
\`configure' configures qbittorrent v4.5.5 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@@ -1400,7 +1400,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of qbittorrent v4.5.0beta1:";;
|
short | recursive ) echo "Configuration of qbittorrent v4.5.5:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@@ -1533,7 +1533,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
qbittorrent configure v4.5.0beta1
|
qbittorrent configure v4.5.5
|
||||||
generated by GNU Autoconf 2.71
|
generated by GNU Autoconf 2.71
|
||||||
|
|
||||||
Copyright (C) 2021 Free Software Foundation, Inc.
|
Copyright (C) 2021 Free Software Foundation, Inc.
|
||||||
@@ -1648,7 +1648,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by qbittorrent $as_me v4.5.0beta1, which was
|
It was created by qbittorrent $as_me v4.5.5, which was
|
||||||
generated by GNU Autoconf 2.71. Invocation command line was
|
generated by GNU Autoconf 2.71. Invocation command line was
|
||||||
|
|
||||||
$ $0$ac_configure_args_raw
|
$ $0$ac_configure_args_raw
|
||||||
@@ -4779,7 +4779,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='qbittorrent'
|
PACKAGE='qbittorrent'
|
||||||
VERSION='v4.5.0beta1'
|
VERSION='v4.5.5'
|
||||||
|
|
||||||
|
|
||||||
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
|
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
|
||||||
@@ -6024,19 +6024,19 @@ LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"
|
|||||||
|
|
||||||
|
|
||||||
pkg_failed=no
|
pkg_failed=no
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 2.0.7" >&5
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 2.0.8" >&5
|
||||||
printf %s "checking for libtorrent-rasterbar >= 2.0.7... " >&6; }
|
printf %s "checking for libtorrent-rasterbar >= 2.0.8... " >&6; }
|
||||||
|
|
||||||
if test -n "$libtorrent_CFLAGS"; then
|
if test -n "$libtorrent_CFLAGS"; then
|
||||||
pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
|
pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
|
||||||
elif test -n "$PKG_CONFIG"; then
|
elif test -n "$PKG_CONFIG"; then
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 2.0.7\""; } >&5
|
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 2.0.8\""; } >&5
|
||||||
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 2.0.7") 2>&5
|
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 2.0.8") 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
test $ac_status = 0; }; then
|
test $ac_status = 0; }; then
|
||||||
pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 2.0.7" 2>/dev/null`
|
pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 2.0.8" 2>/dev/null`
|
||||||
test "x$?" != "x0" && pkg_failed=yes
|
test "x$?" != "x0" && pkg_failed=yes
|
||||||
else
|
else
|
||||||
pkg_failed=yes
|
pkg_failed=yes
|
||||||
@@ -6048,12 +6048,12 @@ if test -n "$libtorrent_LIBS"; then
|
|||||||
pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
|
pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
|
||||||
elif test -n "$PKG_CONFIG"; then
|
elif test -n "$PKG_CONFIG"; then
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 2.0.7\""; } >&5
|
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 2.0.8\""; } >&5
|
||||||
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 2.0.7") 2>&5
|
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 2.0.8") 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
test $ac_status = 0; }; then
|
test $ac_status = 0; }; then
|
||||||
pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 2.0.7" 2>/dev/null`
|
pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 2.0.8" 2>/dev/null`
|
||||||
test "x$?" != "x0" && pkg_failed=yes
|
test "x$?" != "x0" && pkg_failed=yes
|
||||||
else
|
else
|
||||||
pkg_failed=yes
|
pkg_failed=yes
|
||||||
@@ -6074,28 +6074,28 @@ else
|
|||||||
_pkg_short_errors_supported=no
|
_pkg_short_errors_supported=no
|
||||||
fi
|
fi
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
if test $_pkg_short_errors_supported = yes; then
|
||||||
libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 2.0.7" 2>&1`
|
libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 2.0.8" 2>&1`
|
||||||
else
|
else
|
||||||
libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 2.0.7" 2>&1`
|
libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 2.0.8" 2>&1`
|
||||||
fi
|
fi
|
||||||
# Put the nasty error message in config.log where it belongs
|
# Put the nasty error message in config.log where it belongs
|
||||||
echo "$libtorrent_PKG_ERRORS" >&5
|
echo "$libtorrent_PKG_ERRORS" >&5
|
||||||
|
|
||||||
|
|
||||||
pkg_failed=no
|
pkg_failed=no
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" >&5
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" >&5
|
||||||
printf %s "checking for libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2... " >&6; }
|
printf %s "checking for libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2... " >&6; }
|
||||||
|
|
||||||
if test -n "$libtorrent_CFLAGS"; then
|
if test -n "$libtorrent_CFLAGS"; then
|
||||||
pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
|
pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
|
||||||
elif test -n "$PKG_CONFIG"; then
|
elif test -n "$PKG_CONFIG"; then
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2\""; } >&5
|
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2\""; } >&5
|
||||||
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2") 2>&5
|
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2") 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
test $ac_status = 0; }; then
|
test $ac_status = 0; }; then
|
||||||
pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" 2>/dev/null`
|
pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" 2>/dev/null`
|
||||||
test "x$?" != "x0" && pkg_failed=yes
|
test "x$?" != "x0" && pkg_failed=yes
|
||||||
else
|
else
|
||||||
pkg_failed=yes
|
pkg_failed=yes
|
||||||
@@ -6107,12 +6107,12 @@ if test -n "$libtorrent_LIBS"; then
|
|||||||
pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
|
pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
|
||||||
elif test -n "$PKG_CONFIG"; then
|
elif test -n "$PKG_CONFIG"; then
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2\""; } >&5
|
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2\""; } >&5
|
||||||
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2") 2>&5
|
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2") 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
test $ac_status = 0; }; then
|
test $ac_status = 0; }; then
|
||||||
pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" 2>/dev/null`
|
pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" 2>/dev/null`
|
||||||
test "x$?" != "x0" && pkg_failed=yes
|
test "x$?" != "x0" && pkg_failed=yes
|
||||||
else
|
else
|
||||||
pkg_failed=yes
|
pkg_failed=yes
|
||||||
@@ -6133,14 +6133,14 @@ else
|
|||||||
_pkg_short_errors_supported=no
|
_pkg_short_errors_supported=no
|
||||||
fi
|
fi
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
if test $_pkg_short_errors_supported = yes; then
|
||||||
libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" 2>&1`
|
libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" 2>&1`
|
||||||
else
|
else
|
||||||
libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" 2>&1`
|
libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" 2>&1`
|
||||||
fi
|
fi
|
||||||
# Put the nasty error message in config.log where it belongs
|
# Put the nasty error message in config.log where it belongs
|
||||||
echo "$libtorrent_PKG_ERRORS" >&5
|
echo "$libtorrent_PKG_ERRORS" >&5
|
||||||
|
|
||||||
as_fn_error $? "Package requirements (libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2) were not met:
|
as_fn_error $? "Package requirements (libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2) were not met:
|
||||||
|
|
||||||
$libtorrent_PKG_ERRORS
|
$libtorrent_PKG_ERRORS
|
||||||
|
|
||||||
@@ -6177,19 +6177,19 @@ elif test $pkg_failed = untried; then
|
|||||||
printf "%s\n" "no" >&6; }
|
printf "%s\n" "no" >&6; }
|
||||||
|
|
||||||
pkg_failed=no
|
pkg_failed=no
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" >&5
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" >&5
|
||||||
printf %s "checking for libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2... " >&6; }
|
printf %s "checking for libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2... " >&6; }
|
||||||
|
|
||||||
if test -n "$libtorrent_CFLAGS"; then
|
if test -n "$libtorrent_CFLAGS"; then
|
||||||
pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
|
pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
|
||||||
elif test -n "$PKG_CONFIG"; then
|
elif test -n "$PKG_CONFIG"; then
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2\""; } >&5
|
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2\""; } >&5
|
||||||
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2") 2>&5
|
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2") 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
test $ac_status = 0; }; then
|
test $ac_status = 0; }; then
|
||||||
pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" 2>/dev/null`
|
pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" 2>/dev/null`
|
||||||
test "x$?" != "x0" && pkg_failed=yes
|
test "x$?" != "x0" && pkg_failed=yes
|
||||||
else
|
else
|
||||||
pkg_failed=yes
|
pkg_failed=yes
|
||||||
@@ -6201,12 +6201,12 @@ if test -n "$libtorrent_LIBS"; then
|
|||||||
pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
|
pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
|
||||||
elif test -n "$PKG_CONFIG"; then
|
elif test -n "$PKG_CONFIG"; then
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2\""; } >&5
|
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2\""; } >&5
|
||||||
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2") 2>&5
|
($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2") 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
test $ac_status = 0; }; then
|
test $ac_status = 0; }; then
|
||||||
pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" 2>/dev/null`
|
pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" 2>/dev/null`
|
||||||
test "x$?" != "x0" && pkg_failed=yes
|
test "x$?" != "x0" && pkg_failed=yes
|
||||||
else
|
else
|
||||||
pkg_failed=yes
|
pkg_failed=yes
|
||||||
@@ -6227,14 +6227,14 @@ else
|
|||||||
_pkg_short_errors_supported=no
|
_pkg_short_errors_supported=no
|
||||||
fi
|
fi
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
if test $_pkg_short_errors_supported = yes; then
|
||||||
libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" 2>&1`
|
libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" 2>&1`
|
||||||
else
|
else
|
||||||
libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2" 2>&1`
|
libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2" 2>&1`
|
||||||
fi
|
fi
|
||||||
# Put the nasty error message in config.log where it belongs
|
# Put the nasty error message in config.log where it belongs
|
||||||
echo "$libtorrent_PKG_ERRORS" >&5
|
echo "$libtorrent_PKG_ERRORS" >&5
|
||||||
|
|
||||||
as_fn_error $? "Package requirements (libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2) were not met:
|
as_fn_error $? "Package requirements (libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2) were not met:
|
||||||
|
|
||||||
$libtorrent_PKG_ERRORS
|
$libtorrent_PKG_ERRORS
|
||||||
|
|
||||||
@@ -7237,7 +7237,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by qbittorrent $as_me v4.5.0beta1, which was
|
This file was extended by qbittorrent $as_me v4.5.5, which was
|
||||||
generated by GNU Autoconf 2.71. Invocation command line was
|
generated by GNU Autoconf 2.71. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@@ -7297,7 +7297,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config='$ac_cs_config_escaped'
|
ac_cs_config='$ac_cs_config_escaped'
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
qbittorrent config.status v4.5.0beta1
|
qbittorrent config.status v4.5.5
|
||||||
configured by $0, generated by GNU Autoconf 2.71,
|
configured by $0, generated by GNU Autoconf 2.71,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_INIT([qbittorrent], [v4.5.0beta1], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
AC_INIT([qbittorrent], [v4.5.5], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
: ${CFLAGS=""}
|
: ${CFLAGS=""}
|
||||||
@@ -188,10 +188,10 @@ m4_define([DETECT_BOOST_VERSION_PROGRAM],
|
|||||||
[[(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))]));]])])
|
[[(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))]));]])])
|
||||||
|
|
||||||
PKG_CHECK_MODULES(libtorrent,
|
PKG_CHECK_MODULES(libtorrent,
|
||||||
[libtorrent-rasterbar >= 2.0.7],
|
[libtorrent-rasterbar >= 2.0.8],
|
||||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS" QBT_ADD_DEFINES="$QBT_ADD_DEFINES QBT_USES_LIBTORRENT2"],
|
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS" QBT_ADD_DEFINES="$QBT_ADD_DEFINES QBT_USES_LIBTORRENT2"],
|
||||||
[PKG_CHECK_MODULES(libtorrent,
|
[PKG_CHECK_MODULES(libtorrent,
|
||||||
[libtorrent-rasterbar >= 1.2.14 libtorrent-rasterbar < 2],
|
[libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2],
|
||||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS"])])
|
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS"])])
|
||||||
|
|
||||||
PKG_CHECK_MODULES(openssl,
|
PKG_CHECK_MODULES(openssl,
|
||||||
|
|||||||
8
dist/docker/.env
vendored
8
dist/docker/.env
vendored
@@ -1,8 +0,0 @@
|
|||||||
# refer to Readme.md for an explanation of the variables
|
|
||||||
|
|
||||||
QBT_EULA=
|
|
||||||
QBT_VERSION=devel
|
|
||||||
QBT_WEBUI_PORT=8080
|
|
||||||
|
|
||||||
QBT_CONFIG_PATH=<your_path>/config
|
|
||||||
QBT_DOWNLOADS_PATH=<your_path>/downloads
|
|
||||||
62
dist/docker/Dockerfile
vendored
62
dist/docker/Dockerfile
vendored
@@ -1,62 +0,0 @@
|
|||||||
# image for building
|
|
||||||
FROM alpine:latest AS builder
|
|
||||||
|
|
||||||
ARG QBT_VERSION
|
|
||||||
|
|
||||||
# alpine linux qbittorrent package: https://git.alpinelinux.org/aports/tree/community/qbittorrent/APKBUILD
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
apk --update-cache add \
|
|
||||||
boost-dev \
|
|
||||||
cmake \
|
|
||||||
g++ \
|
|
||||||
libtorrent-rasterbar-dev \
|
|
||||||
ninja \
|
|
||||||
qt6-qtbase-dev \
|
|
||||||
qt6-qttools-dev
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
if [ "$QBT_VERSION" = "devel" ]; then \
|
|
||||||
wget https://github.com/qbittorrent/qBittorrent/archive/refs/heads/master.zip && \
|
|
||||||
unzip master.zip && \
|
|
||||||
cd qBittorrent-master ; \
|
|
||||||
else \
|
|
||||||
wget "https://github.com/qbittorrent/qBittorrent/archive/refs/tags/release-${QBT_VERSION}.tar.gz" && \
|
|
||||||
tar -xf "release-${QBT_VERSION}.tar.gz" && \
|
|
||||||
cd "qBittorrent-release-${QBT_VERSION}" ; \
|
|
||||||
fi && \
|
|
||||||
cmake \
|
|
||||||
-B build \
|
|
||||||
-G Ninja \
|
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-DGUI=OFF \
|
|
||||||
-DQT6=ON \
|
|
||||||
-DSTACKTRACE=OFF && \
|
|
||||||
cmake --build build && \
|
|
||||||
cmake --install build
|
|
||||||
|
|
||||||
# image for running
|
|
||||||
FROM alpine:latest
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
apk --no-cache add \
|
|
||||||
doas \
|
|
||||||
libtorrent-rasterbar \
|
|
||||||
python3 \
|
|
||||||
qt6-qtbase \
|
|
||||||
tini
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
adduser \
|
|
||||||
-D \
|
|
||||||
-H \
|
|
||||||
-s /sbin/nologin \
|
|
||||||
-u 1000 \
|
|
||||||
qbtUser && \
|
|
||||||
echo "permit nopass :root" >> "/etc/doas.d/doas.conf"
|
|
||||||
|
|
||||||
COPY --from=builder /usr/local/bin/qbittorrent-nox /usr/bin/qbittorrent-nox
|
|
||||||
|
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["/sbin/tini", "-g", "--", "/entrypoint.sh"]
|
|
||||||
101
dist/docker/Readme.md
vendored
101
dist/docker/Readme.md
vendored
@@ -1,101 +0,0 @@
|
|||||||
# qBittorrent-nox Docker Image
|
|
||||||
|
|
||||||
This Dockerfile allows you to build a Docker Image containing qBittorrent-nox
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
In order to build/run this image you'll need Docker installed: https://docs.docker.com/get-docker/
|
|
||||||
|
|
||||||
If you don't need the GUI, you can just install Docker Engine: https://docs.docker.com/engine/install/
|
|
||||||
|
|
||||||
It is also recommended to install Docker Compose as it can significantly ease the process: https://docs.docker.com/compose/install/
|
|
||||||
|
|
||||||
## Building Docker Image
|
|
||||||
|
|
||||||
* If you are using Docker (not Docker Compose) then run the following commands in this folder:
|
|
||||||
```shell
|
|
||||||
export \
|
|
||||||
QBT_VERSION=devel
|
|
||||||
docker build \
|
|
||||||
--build-arg QBT_VERSION \
|
|
||||||
-t qbittorrent-nox:"$QBT_VERSION" \
|
|
||||||
.
|
|
||||||
```
|
|
||||||
|
|
||||||
* If you are using Docker Compose then you should edit `.env` file first.
|
|
||||||
You can find an explanation of the variables in the following [Parameters](#parameters) section. \
|
|
||||||
Then run the following commands in this folder:
|
|
||||||
```shell
|
|
||||||
docker compose build \
|
|
||||||
--build-arg QBT_VERSION
|
|
||||||
```
|
|
||||||
|
|
||||||
### Parameters
|
|
||||||
|
|
||||||
#### Environment variables
|
|
||||||
|
|
||||||
* `QBT_EULA` \
|
|
||||||
This environment variable defines whether you accept the end-user license agreement (EULA) of qBittorrent. \
|
|
||||||
**Put `accept` only if you understand and accepted the EULA.** You can find
|
|
||||||
the EULA [here](https://github.com/qbittorrent/qBittorrent/blob/56667e717b82c79433ecb8a5ff6cc2d7b315d773/src/app/main.cpp#L320-L323).
|
|
||||||
* `QBT_VERSION` \
|
|
||||||
This environment variable specifies the version of qBittorrent-nox to be built. \
|
|
||||||
For example, `4.4.0` is a valid entry. You can find all tagged versions [here](https://github.com/qbittorrent/qBittorrent/tags). \
|
|
||||||
Or you can put `devel` to build the latest development version.
|
|
||||||
* `QBT_WEBUI_PORT` \
|
|
||||||
This environment variable sets the port number which qBittorrent WebUI will be binded to.
|
|
||||||
|
|
||||||
#### Volumes
|
|
||||||
|
|
||||||
There are some paths involved:
|
|
||||||
* `<your_path>/config` \
|
|
||||||
Full path to a folder on your host machine which will store qBittorrent configurations.
|
|
||||||
Using relative path won't work.
|
|
||||||
* `<your_path>/downloads` \
|
|
||||||
Full path to a folder on your host machine which will store the files downloaded by qBittorrent.
|
|
||||||
Using relative path won't work.
|
|
||||||
|
|
||||||
## Running container
|
|
||||||
|
|
||||||
* Using Docker (not Docker Compose), simply run:
|
|
||||||
```shell
|
|
||||||
export \
|
|
||||||
QBT_EULA=accept \
|
|
||||||
QBT_VERSION=devel \
|
|
||||||
QBT_WEBUI_PORT=8080 \
|
|
||||||
QBT_CONFIG_PATH="/tmp/bbb/config"
|
|
||||||
QBT_DOWNLOADS_PATH="/tmp/bbb/downloads"
|
|
||||||
docker run \
|
|
||||||
-t \
|
|
||||||
--read-only \
|
|
||||||
--rm \
|
|
||||||
--tmpfs /tmp \
|
|
||||||
--name qbittorrent-nox \
|
|
||||||
-e QBT_EULA \
|
|
||||||
-e QBT_WEBUI_PORT \
|
|
||||||
-p "$QBT_WEBUI_PORT":"$QBT_WEBUI_PORT"/tcp \
|
|
||||||
-p 6881:6881/tcp \
|
|
||||||
-p 6881:6881/udp \
|
|
||||||
-v "$QBT_CONFIG_PATH":/config \
|
|
||||||
-v "$QBT_DOWNLOADS_PATH":/downloads \
|
|
||||||
qbittorrent-nox:"$QBT_VERSION"
|
|
||||||
```
|
|
||||||
|
|
||||||
* Using Docker Compose:
|
|
||||||
```shell
|
|
||||||
docker compose up
|
|
||||||
```
|
|
||||||
|
|
||||||
Then you can login at: `http://127.0.0.1:8080`
|
|
||||||
|
|
||||||
## Stopping container
|
|
||||||
|
|
||||||
* Using Docker (not Docker Compose):
|
|
||||||
```shell
|
|
||||||
docker stop -t 1800 qbittorrent-nox
|
|
||||||
```
|
|
||||||
|
|
||||||
* Using Docker Compose:
|
|
||||||
```shell
|
|
||||||
docker compose down
|
|
||||||
```
|
|
||||||
25
dist/docker/docker-compose.yml
vendored
25
dist/docker/docker-compose.yml
vendored
@@ -1,25 +0,0 @@
|
|||||||
version: "3.9"
|
|
||||||
|
|
||||||
services:
|
|
||||||
qbittorrent-nox:
|
|
||||||
build: .
|
|
||||||
container_name: qbittorrent-nox
|
|
||||||
environment:
|
|
||||||
- QBT_EULA=${QBT_EULA}
|
|
||||||
- QBT_VERSION=${QBT_VERSION}
|
|
||||||
- QBT_WEBUI_PORT=${QBT_WEBUI_PORT}
|
|
||||||
image: qbittorrent-nox:${QBT_VERSION}
|
|
||||||
ports:
|
|
||||||
# for bittorrent traffic
|
|
||||||
- 6881:6881/tcp
|
|
||||||
- 6881:6881/udp
|
|
||||||
# for WebUI
|
|
||||||
- ${QBT_WEBUI_PORT}:${QBT_WEBUI_PORT}/tcp
|
|
||||||
read_only: true
|
|
||||||
stop_grace_period: 30m
|
|
||||||
tmpfs:
|
|
||||||
- /tmp
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ${QBT_CONFIG_PATH}:/config
|
|
||||||
- ${QBT_DOWNLOADS_PATH}:/downloads
|
|
||||||
35
dist/docker/entrypoint.sh
vendored
35
dist/docker/entrypoint.sh
vendored
@@ -1,35 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
downloadsPath="/downloads"
|
|
||||||
profilePath="/config"
|
|
||||||
qbtConfigFile="$profilePath/qBittorrent/config/qBittorrent.conf"
|
|
||||||
|
|
||||||
if [ ! -f "$qbtConfigFile" ]; then
|
|
||||||
mkdir -p "$(dirname $qbtConfigFile)"
|
|
||||||
cat << EOF > "$qbtConfigFile"
|
|
||||||
[BitTorrent]
|
|
||||||
Session\DefaultSavePath=/downloads
|
|
||||||
Session\Port=6881
|
|
||||||
Session\TempPath=/downloads/temp
|
|
||||||
|
|
||||||
[LegalNotice]
|
|
||||||
Accepted=false
|
|
||||||
EOF
|
|
||||||
|
|
||||||
if [ "$QBT_EULA" = "accept" ]; then
|
|
||||||
sed -i '/^\[LegalNotice\]$/{$!{N;s|\(\[LegalNotice\]\nAccepted=\).*|\1true|}}' "$qbtConfigFile"
|
|
||||||
else
|
|
||||||
sed -i '/^\[LegalNotice\]$/{$!{N;s|\(\[LegalNotice\]\nAccepted=\).*|\1false|}}' "$qbtConfigFile"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# those are owned by root by default
|
|
||||||
# don't change existing files owner in `$downloadsPath`
|
|
||||||
chown qbtUser:qbtUser "$downloadsPath"
|
|
||||||
chown qbtUser:qbtUser -R "$profilePath"
|
|
||||||
|
|
||||||
doas -u qbtUser \
|
|
||||||
qbittorrent-nox \
|
|
||||||
--profile="$profilePath" \
|
|
||||||
--webui-port="$QBT_WEBUI_PORT" \
|
|
||||||
"$@"
|
|
||||||
4
dist/mac/Info.plist
vendored
4
dist/mac/Info.plist
vendored
@@ -55,7 +55,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>4.5.0</string>
|
<string>4.5.5</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>${EXECUTABLE_NAME}</string>
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<key>NSAppleScriptEnabled</key>
|
<key>NSAppleScriptEnabled</key>
|
||||||
<string>YES</string>
|
<string>YES</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Copyright © 2006-2022 The qBittorrent project</string>
|
<string>Copyright © 2006-2023 The qBittorrent project</string>
|
||||||
<key>UTExportedTypeDeclarations</key>
|
<key>UTExportedTypeDeclarations</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
|
|||||||
@@ -74,6 +74,6 @@
|
|||||||
<url type="translate">https://github.com/qbittorrent/qBittorrent/wiki/How-to-translate-qBittorrent</url>
|
<url type="translate">https://github.com/qbittorrent/qBittorrent/wiki/How-to-translate-qBittorrent</url>
|
||||||
<content_rating type="oars-1.1"/>
|
<content_rating type="oars-1.1"/>
|
||||||
<releases>
|
<releases>
|
||||||
<release version="4.5.0" date="2022-01-06"/>
|
<release version="4.5.5" date="2023-08-29"/>
|
||||||
</releases>
|
</releases>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
10
dist/unix/org.qbittorrent.qBittorrent.desktop
vendored
10
dist/unix/org.qbittorrent.qBittorrent.desktop
vendored
@@ -98,8 +98,8 @@ Name[is]=qBittorrent
|
|||||||
Comment[it]=Scarica e condividi file tramite BitTorrent
|
Comment[it]=Scarica e condividi file tramite BitTorrent
|
||||||
GenericName[it]=Client BitTorrent
|
GenericName[it]=Client BitTorrent
|
||||||
Name[it]=qBittorrent
|
Name[it]=qBittorrent
|
||||||
Comment[ja]=BitTorrent でファイルをダウンロードおよび共有します
|
Comment[ja]=BitTorrentでファイルのダウンロードと共有
|
||||||
GenericName[ja]=BitTorrent クライアント
|
GenericName[ja]=BitTorrentクライアント
|
||||||
Name[ja]=qBittorrent
|
Name[ja]=qBittorrent
|
||||||
Comment[ka]=გადმოტვირთეთ და გააზიარეთ ფაილები BitTorrent-ის საშუალებით
|
Comment[ka]=გადმოტვირთეთ და გააზიარეთ ფაილები BitTorrent-ის საშუალებით
|
||||||
GenericName[ka]=BitTorrent კლიენტი
|
GenericName[ka]=BitTorrent კლიენტი
|
||||||
@@ -160,7 +160,7 @@ Comment[te]=క్యు బిట్ టొరెంట్ తో ఫైల్
|
|||||||
GenericName[te]=క్యు బిట్ టొరెంట్ క్లయింట్
|
GenericName[te]=క్యు బిట్ టొరెంట్ క్లయింట్
|
||||||
Name[te]=qBittorrent
|
Name[te]=qBittorrent
|
||||||
Comment[th]=ดาวน์โหลดและแชร์ไฟล์ผ่าน BitTorrent
|
Comment[th]=ดาวน์โหลดและแชร์ไฟล์ผ่าน BitTorrent
|
||||||
GenericName[th]=ไคลเอนต์ BitTorrent
|
GenericName[th]=โปรแกรมบิททอเร้นท์
|
||||||
Name[th]=qBittorrent
|
Name[th]=qBittorrent
|
||||||
Comment[tr]=Dosyaları BitTorrent üzerinden indirin ve paylaşın
|
Comment[tr]=Dosyaları BitTorrent üzerinden indirin ve paylaşın
|
||||||
GenericName[tr]=BitTorrent istemcisi
|
GenericName[tr]=BitTorrent istemcisi
|
||||||
@@ -178,7 +178,7 @@ Comment[zh_HK]=經由BitTorrent下載並分享檔案
|
|||||||
GenericName[zh_HK]=BitTorrent用戶端
|
GenericName[zh_HK]=BitTorrent用戶端
|
||||||
Name[zh_HK]=qBittorrent
|
Name[zh_HK]=qBittorrent
|
||||||
Comment[zh_TW]=經由 BitTorrent 下載並分享檔案
|
Comment[zh_TW]=經由 BitTorrent 下載並分享檔案
|
||||||
GenericName[zh_TW]=BitTorrent 客戶端
|
GenericName[zh_TW]=BitTorrent 用戶端
|
||||||
Name[zh_TW]=qBittorrent
|
Name[zh_TW]=qBittorrent
|
||||||
Comment[eo]=Elŝutu kaj kunhavigu dosierojn per BitTorrent
|
Comment[eo]=Elŝutu kaj kunhavigu dosierojn per BitTorrent
|
||||||
GenericName[eo]=BitTorrent-kliento
|
GenericName[eo]=BitTorrent-kliento
|
||||||
@@ -208,7 +208,7 @@ Name[ltg]=qBittorrent
|
|||||||
Comment[hi_IN]=BitTorrent द्वारा फाइल डाउनलोड व सहभाजन
|
Comment[hi_IN]=BitTorrent द्वारा फाइल डाउनलोड व सहभाजन
|
||||||
GenericName[hi_IN]=Bittorrent साधन
|
GenericName[hi_IN]=Bittorrent साधन
|
||||||
Name[hi_IN]=qBittorrent
|
Name[hi_IN]=qBittorrent
|
||||||
Comment[az@latin]=Faylları BitTorrent vasitəsilə göndərin və paylaşın
|
Comment[az@latin]=Faylları BitTorrent vasitəsilə endirin və paylaşın
|
||||||
GenericName[az@latin]=BitTorrent client
|
GenericName[az@latin]=BitTorrent client
|
||||||
Name[az@latin]=qBittorrent
|
Name[az@latin]=qBittorrent
|
||||||
Comment[lv_LV]=Lejupielādēt un koplietot failus ar BitTorrent
|
Comment[lv_LV]=Lejupielādēt un koplietot failus ar BitTorrent
|
||||||
|
|||||||
61
dist/windows/3rdparty/VersionCompleteXXXX.nsi
vendored
Normal file
61
dist/windows/3rdparty/VersionCompleteXXXX.nsi
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
; Code taken from https://nsis.sourceforge.io/VersionCompleteXXXX
|
||||||
|
; See http://nsis.sourceforge.net/VersionCompleteXXXX for documentation
|
||||||
|
!macro VersionCompleteXXXRevision _INPUT_VALUE _OUTPUT_SYMBOL _REVISION
|
||||||
|
!searchparse /noerrors ${_INPUT_VALUE} "" _VERSION_1 "." _VERSION_2 "." _VERSION_3 "." _VERSION_4
|
||||||
|
!ifndef _VERSION_1
|
||||||
|
!define _VERSION_1 0
|
||||||
|
!else if `${_VERSION_1}` == ``
|
||||||
|
!define /redef _VERSION_1 0
|
||||||
|
!endif
|
||||||
|
!ifndef _VERSION_2
|
||||||
|
!define _VERSION_2 0
|
||||||
|
!else if `${_VERSION_2}` == ``
|
||||||
|
!define /redef _VERSION_2 0
|
||||||
|
!endif
|
||||||
|
!ifndef _VERSION_3
|
||||||
|
!define _VERSION_3 0
|
||||||
|
!else if `${_VERSION_3}` == ``
|
||||||
|
!define /redef _VERSION_3 0
|
||||||
|
!endif
|
||||||
|
!ifndef _VERSION_4
|
||||||
|
!define _VERSION_4 0
|
||||||
|
!else if `${_VERSION_4}` == ``
|
||||||
|
!define /redef _VERSION_4 0
|
||||||
|
!endif
|
||||||
|
!define ${_OUTPUT_SYMBOL} ${_VERSION_1}.${_VERSION_2}.${_VERSION_3}.${_REVISION}
|
||||||
|
!undef _VERSION_1
|
||||||
|
!undef _VERSION_2
|
||||||
|
!undef _VERSION_3
|
||||||
|
!undef _VERSION_4
|
||||||
|
!undef _REVISION
|
||||||
|
!macroend
|
||||||
|
!define VersionCompleteXXXRevision `!insertmacro VersionCompleteXXXRevision`
|
||||||
|
!macro VersionCompleteXXXX _INPUT_VALUE _OUTPUT_SYMBOL
|
||||||
|
!searchparse /noerrors ${_INPUT_VALUE} "" _VERSION_1 "." _VERSION_2 "." _VERSION_3 "." _VERSION_4
|
||||||
|
!ifndef _VERSION_1
|
||||||
|
!define _VERSION_1 0
|
||||||
|
!else if `${_VERSION_1}` == ``
|
||||||
|
!define /redef _VERSION_1 0
|
||||||
|
!endif
|
||||||
|
!ifndef _VERSION_2
|
||||||
|
!define _VERSION_2 0
|
||||||
|
!else if `${_VERSION_2}` == ``
|
||||||
|
!define /redef _VERSION_2 0
|
||||||
|
!endif
|
||||||
|
!ifndef _VERSION_3
|
||||||
|
!define _VERSION_3 0
|
||||||
|
!else if `${_VERSION_3}` == ``
|
||||||
|
!define /redef _VERSION_3 0
|
||||||
|
!endif
|
||||||
|
!ifndef _VERSION_4
|
||||||
|
!define _VERSION_4 0
|
||||||
|
!else if `${_VERSION_4}` == ``
|
||||||
|
!define /redef _VERSION_4 0
|
||||||
|
!endif
|
||||||
|
!define ${_OUTPUT_SYMBOL} ${_VERSION_1}.${_VERSION_2}.${_VERSION_3}.${_VERSION_4}
|
||||||
|
!undef _VERSION_1
|
||||||
|
!undef _VERSION_2
|
||||||
|
!undef _VERSION_3
|
||||||
|
!undef _VERSION_4
|
||||||
|
!macroend
|
||||||
|
!define VersionCompleteXXXX `!insertmacro VersionCompleteXXXX`
|
||||||
26
dist/windows/README.txt
vendored
26
dist/windows/README.txt
vendored
@@ -16,16 +16,16 @@ TRANSLATORS:
|
|||||||
|
|
||||||
PACKAGERS:
|
PACKAGERS:
|
||||||
|
|
||||||
You will need NSIS and upx to make the installer. You need a unicode version of NSIS.
|
You will need NSIS 3 to make the installer. UPX is an optional requirement.
|
||||||
I tested with NSIS 3.0 (final).
|
|
||||||
|
|
||||||
1. Open the options.nsi file in an editor and change line that contains
|
1. Open the config.nsi file in an editor and change line that contains
|
||||||
"!define PROG_VERSION "3.0.3"" to the version of qbittorrent you just built.
|
"!define QBT_VERSION "3.0.3"" to the version of qbittorrent you just built.
|
||||||
2. Extract the plugins found in the folder "nsis plugins" into your
|
2. config.nsi contains some other defines that control the installer output. Read the comments in that file.
|
||||||
|
3. Extract the plugins found in the folder "nsis plugins" into your
|
||||||
NSIS's unicode Plugin directory(usually C:\Program Files\NSIS\Plugins\x86-unicode).
|
NSIS's unicode Plugin directory(usually C:\Program Files\NSIS\Plugins\x86-unicode).
|
||||||
Only the *.dll files are needed. Use the unicode version of the dlls.
|
Only the *.dll files are needed. Use the unicode version of the dlls.
|
||||||
3. The script you need to compile is "qbittorrent.nsi". It includes all other necessary scripts.
|
4. The script you need to compile is "qbittorrent.nsi". It includes all other necessary scripts.
|
||||||
4. The script expects the following file tree:
|
5. The script expects the following file tree:
|
||||||
|
|
||||||
The installer script expects the following file tree:
|
The installer script expects the following file tree:
|
||||||
|
|
||||||
@@ -42,13 +42,14 @@ translations
|
|||||||
You will need the files that conform to this globbing expression 'qt_??.qm qt_??_??.qm qtbase_??.qm qtbase_??_??.qm'.
|
You will need the files that conform to this globbing expression 'qt_??.qm qt_??_??.qm qtbase_??.qm qtbase_??_??.qm'.
|
||||||
Some of those files will be stubs. Filter any file that is smaller than 10KB in size.
|
Some of those files will be stubs. Filter any file that is smaller than 10KB in size.
|
||||||
Alternatively you can use the 'gather_qt_translations.py' script found in the same folder as this file.
|
Alternatively you can use the 'gather_qt_translations.py' script found in the same folder as this file.
|
||||||
Run it with '--help' to see its usage.
|
Run it with '--help' to see its usage.)
|
||||||
**YOU MUST** edit the list of .qm files in the 'installer.nsi' to match whatever files are in the 'translations' subfolder.)
|
|
||||||
qt_zh_TW.qm
|
qt_zh_TW.qm
|
||||||
installer.nsi
|
installer.nsi
|
||||||
license.txt
|
license.txt
|
||||||
options.nsi
|
config.nsi
|
||||||
|
helper.nsi
|
||||||
qbittorrent.exe
|
qbittorrent.exe
|
||||||
|
qbittorrent.pdb
|
||||||
qbittorrent.nsi
|
qbittorrent.nsi
|
||||||
qt.conf
|
qt.conf
|
||||||
translations.nsi
|
translations.nsi
|
||||||
@@ -56,9 +57,10 @@ UAC.nsh
|
|||||||
uninstaller.nsi
|
uninstaller.nsi
|
||||||
|
|
||||||
|
|
||||||
5. "license.txt" is a text file that contains the text rendered
|
6. "license.txt" is a text file that contains the text rendered
|
||||||
from src\gui\gpl.html
|
from src\gui\gpl.html
|
||||||
6. "qbittorrent.exe" is the compiled binary file.
|
7. "qbittorrent.exe" is the compiled binary file.
|
||||||
|
8. "qbittorrent.pdb" is the compiled binary's PDB file.
|
||||||
|
|
||||||
SCRIPT HACKERS:
|
SCRIPT HACKERS:
|
||||||
|
|
||||||
|
|||||||
114
dist/windows/options.nsi → dist/windows/config.nsi
vendored
114
dist/windows/options.nsi → dist/windows/config.nsi
vendored
@@ -1,23 +1,95 @@
|
|||||||
|
;Start of user configurable options
|
||||||
|
;==============================================================================
|
||||||
|
|
||||||
|
; Uncomment if you want to use UPX to pack the installer header
|
||||||
|
; Doing so may make antivirus software flag the installer as virus/malware
|
||||||
|
;!define USE_UPX
|
||||||
|
|
||||||
|
; Uncomment when packaging 64bit qbittorrent
|
||||||
|
;!define QBT_IS_X64
|
||||||
|
|
||||||
|
; Uncomment when packaging qt6 qbittorrent
|
||||||
|
; It will also define QBT_IS_X64
|
||||||
|
;!define QBT_USES_QT6
|
||||||
|
|
||||||
|
!ifdef QBT_USES_QT6
|
||||||
|
!define /redef QBT_IS_X64
|
||||||
|
!endif
|
||||||
|
|
||||||
|
; qBittorrent version
|
||||||
|
; The string MUST contain ONLY numbers delimited by dots.
|
||||||
|
; It MUST contain a maximum of 4 delimited numbers
|
||||||
|
; Other values will result in undefined behavior
|
||||||
|
; examples:
|
||||||
|
; 4.5.0 -> good
|
||||||
|
; 4.5.1.3 -> good
|
||||||
|
; 4.5.1.3.2 -> bad
|
||||||
|
; 4.5.0beta -> bad
|
||||||
|
!define /ifndef QBT_VERSION "4.5.5"
|
||||||
|
|
||||||
|
; Option that controls the installer's window name
|
||||||
|
; If set, its value will be used like this:
|
||||||
|
; "qBittorrent ${QBT_INSTALLER_FILENAME}"
|
||||||
|
; If not set, the window name will be auto composed from QBT_VERSION, QBT_USES_QT6, QBT_IS_X64
|
||||||
|
; If you set this define then you MUST set QBT_INSTALLER_FILENAME too. Otherwise it will be ignored.
|
||||||
|
; This define is meant to ease automation from scripts/commandline
|
||||||
|
;!define QBT_INSTALLER_WINDOWNAME
|
||||||
|
|
||||||
|
; Option that controls the installer's window name
|
||||||
|
; If set, its value will be used like this:
|
||||||
|
; "qbittorrent_${QBT_INSTALLER_FILENAME}_setup.exe"
|
||||||
|
; If not set, the window name will be auto composed from QBT_VERSION, QBT_USES_QT6, QBT_IS_X64
|
||||||
|
; If you set this define then you MUST set QBT_INSTALLER_WINDOWNAME too. Otherwise it will be ignored.
|
||||||
|
; This define is meant to ease automation from scripts/commandline
|
||||||
|
;!define QBT_INSTALLER_FILENAME
|
||||||
|
|
||||||
|
;End of user configurable options
|
||||||
|
;==============================================================================
|
||||||
|
|
||||||
|
!ifndef QBT_INSTALLER_WINDOWNAME | QBT_INSTALLER_FILENAME
|
||||||
|
!ifndef QBT_IS_X64
|
||||||
|
; The name of the installer
|
||||||
|
!define QBT_INSTALLER_WINDOWNAME "${QBT_VERSION}"
|
||||||
|
|
||||||
|
; The file to write
|
||||||
|
!define QBT_INSTALLER_FILENAME "${QBT_VERSION}"
|
||||||
|
!else ; QBT_IS_X64
|
||||||
|
!ifndef QBT_USES_QT6
|
||||||
|
; The name of the installer
|
||||||
|
!define QBT_INSTALLER_WINDOWNAME "${QBT_VERSION} x64"
|
||||||
|
|
||||||
|
; The file to write
|
||||||
|
!define QBT_INSTALLER_FILENAME "${QBT_VERSION}_x64"
|
||||||
|
!else ; QBT_USES_QT6
|
||||||
|
; The name of the installer
|
||||||
|
!define QBT_INSTALLER_WINDOWNAME "${QBT_VERSION} (qt6) x64"
|
||||||
|
|
||||||
|
; The file to write
|
||||||
|
!define QBT_INSTALLER_FILENAME "${QBT_VERSION}_qt6_x64"
|
||||||
|
!endif ; QBT_USES_QT6
|
||||||
|
!endif ; QBT_IS_X64
|
||||||
|
!endif
|
||||||
|
|
||||||
Unicode true
|
Unicode true
|
||||||
ManifestDPIAware true
|
ManifestDPIAware true
|
||||||
;Compress the header too
|
|
||||||
|
!ifdef USE_UPX
|
||||||
!packhdr "$%TEMP%\exehead.tmp" 'upx.exe -9 --best --ultra-brute "$%TEMP%\exehead.tmp"'
|
!packhdr "$%TEMP%\exehead.tmp" 'upx.exe -9 --best --ultra-brute "$%TEMP%\exehead.tmp"'
|
||||||
|
!endif
|
||||||
|
|
||||||
;Setting the compression
|
;Setting the compression
|
||||||
SetCompressor /SOLID LZMA
|
SetCompressor /SOLID LZMA
|
||||||
SetCompressorDictSize 64
|
SetCompressorDictSize 64
|
||||||
XPStyle on
|
XPStyle on
|
||||||
|
|
||||||
;Uncomment when packaging 64bit qbittorrent
|
!include "MUI2.nsh"
|
||||||
;!define APP64BIT
|
|
||||||
|
|
||||||
!include "MUI.nsh"
|
|
||||||
!include "UAC.nsh"
|
!include "UAC.nsh"
|
||||||
!include "FileFunc.nsh"
|
!include "FileFunc.nsh"
|
||||||
!include "WinVer.nsh"
|
!include "WinVer.nsh"
|
||||||
!ifdef APP64BIT
|
!ifdef QBT_IS_X64
|
||||||
!include "x64.nsh"
|
!include "x64.nsh"
|
||||||
!endif
|
!endif
|
||||||
|
!include "3rdparty\VersionCompleteXXXX.nsi"
|
||||||
|
|
||||||
;For the file association
|
;For the file association
|
||||||
!define SHCNE_ASSOCCHANGED 0x8000000
|
!define SHCNE_ASSOCCHANGED 0x8000000
|
||||||
@@ -27,41 +99,33 @@ XPStyle on
|
|||||||
!define CSIDL_APPDATA '0x1A' ;Application Data path
|
!define CSIDL_APPDATA '0x1A' ;Application Data path
|
||||||
!define CSIDL_LOCALAPPDATA '0x1C' ;Local Application Data path
|
!define CSIDL_LOCALAPPDATA '0x1C' ;Local Application Data path
|
||||||
|
|
||||||
; Program specific
|
|
||||||
!define PROG_VERSION "4.5.0"
|
|
||||||
|
|
||||||
!define MUI_FINISHPAGE_RUN
|
!define MUI_FINISHPAGE_RUN
|
||||||
!define MUI_FINISHPAGE_RUN_FUNCTION PageFinishRun
|
!define MUI_FINISHPAGE_RUN_FUNCTION PageFinishRun
|
||||||
!define MUI_FINISHPAGE_RUN_TEXT $(launch_qbt)
|
!define MUI_FINISHPAGE_RUN_TEXT $(launch_qbt)
|
||||||
|
|
||||||
!ifndef APP64BIT
|
; The name of the installer
|
||||||
; The name of the installer
|
Name "qBittorrent ${QBT_INSTALLER_WINDOWNAME}"
|
||||||
Name "qBittorrent ${PROG_VERSION}"
|
|
||||||
|
|
||||||
; The file to write
|
; The file to write
|
||||||
OutFile "qbittorrent_${PROG_VERSION}_setup.exe"
|
OutFile "qbittorrent_${QBT_INSTALLER_FILENAME}_setup.exe"
|
||||||
!else
|
|
||||||
; The name of the installer
|
|
||||||
Name "qBittorrent ${PROG_VERSION} x64"
|
|
||||||
|
|
||||||
; The file to write
|
|
||||||
OutFile "qbittorrent_${PROG_VERSION}_x64_setup.exe"
|
|
||||||
!endif
|
|
||||||
|
|
||||||
;Installer Version Information
|
;Installer Version Information
|
||||||
VIAddVersionKey "ProductName" "qBittorrent"
|
VIAddVersionKey "ProductName" "qBittorrent"
|
||||||
VIAddVersionKey "CompanyName" "The qBittorrent project"
|
VIAddVersionKey "CompanyName" "The qBittorrent project"
|
||||||
VIAddVersionKey "LegalCopyright" "Copyright ©2006-2022 The qBittorrent project"
|
VIAddVersionKey "LegalCopyright" "Copyright ©2006-2023 The qBittorrent project"
|
||||||
VIAddVersionKey "FileDescription" "qBittorrent - A Bittorrent Client"
|
VIAddVersionKey "FileDescription" "qBittorrent - A Bittorrent Client"
|
||||||
VIAddVersionKey "FileVersion" "${PROG_VERSION}"
|
VIAddVersionKey "FileVersion" "${QBT_VERSION}"
|
||||||
|
|
||||||
VIProductVersion "${PROG_VERSION}.0"
|
; VIProductVersion needs a 4 part version.
|
||||||
|
; If QBT_VERSION contains less than 4 parts then VersionCompleteXXXX, will extend it with zeroes.
|
||||||
|
${VersionCompleteXXXX} ${QBT_VERSION} VERSION_4_PART
|
||||||
|
VIProductVersion "${VERSION_4_PART}"
|
||||||
|
|
||||||
; The default installation directory. It changes depending if we install in the 64bit dir or not.
|
; The default installation directory. It changes depending if we install in the 64bit dir or not.
|
||||||
; A caveat of this is if a user has installed a 32bit version and then runs the 64bit installer
|
; A caveat of this is if a user has installed a 32bit version and then runs the 64bit installer
|
||||||
; (which in turn launches the 32bit uninstaller first) the value will still point to the 32bit location.
|
; (which in turn launches the 32bit uninstaller first) the value will still point to the 32bit location.
|
||||||
; The user has to manually uninstall the old version and THEN run the 64bit installer
|
; The user has to manually uninstall the old version and THEN run the 64bit installer
|
||||||
!ifndef APP64BIT
|
!ifndef QBT_IS_X64
|
||||||
InstallDir $PROGRAMFILES32\qBittorrent
|
InstallDir $PROGRAMFILES32\qBittorrent
|
||||||
!else
|
!else
|
||||||
InstallDir $PROGRAMFILES64\qBittorrent
|
InstallDir $PROGRAMFILES64\qBittorrent
|
||||||
2
dist/windows/gather_qt_translations.py
vendored
2
dist/windows/gather_qt_translations.py
vendored
@@ -19,7 +19,7 @@ def main() -> int:
|
|||||||
tmp_translations: List[str] = glob.glob(f'{args.qt_translations_folder}/qt_??.qm')
|
tmp_translations: List[str] = glob.glob(f'{args.qt_translations_folder}/qt_??.qm')
|
||||||
tmp_translations += glob.glob(f'{args.qt_translations_folder}/qt_??_??.qm')
|
tmp_translations += glob.glob(f'{args.qt_translations_folder}/qt_??_??.qm')
|
||||||
tmp_translations += glob.glob(f'{args.qt_translations_folder}/qtbase_??.qm')
|
tmp_translations += glob.glob(f'{args.qt_translations_folder}/qtbase_??.qm')
|
||||||
tmp_translations += glob.glob(f'{args.qt_translations_folder}qtbase_??_??.qm')
|
tmp_translations += glob.glob(f'{args.qt_translations_folder}/qtbase_??_??.qm')
|
||||||
|
|
||||||
filtered = filter(isNotStub, tmp_translations)
|
filtered = filter(isNotStub, tmp_translations)
|
||||||
for file in filtered:
|
for file in filtered:
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
;LangString inst_qbt_req ${LANG_ENGLISH} "qBittorrent (required)"
|
;LangString inst_qbt_req ${LANG_ENGLISH} "qBittorrent (required)"
|
||||||
LangString inst_qbt_req ${LANG_AFRIKAANS} "qBittorrent (required)"
|
LangString inst_qbt_req ${LANG_AFRIKAANS} "qBittorrent (required)"
|
||||||
;LangString inst_dekstop ${LANG_ENGLISH} "Create Desktop Shortcut"
|
;LangString inst_desktop ${LANG_ENGLISH} "Create Desktop Shortcut"
|
||||||
LangString inst_dekstop ${LANG_AFRIKAANS} "Create Desktop Shortcut"
|
LangString inst_desktop ${LANG_AFRIKAANS} "Create Desktop Shortcut"
|
||||||
;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut"
|
;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut"
|
||||||
LangString inst_startmenu ${LANG_AFRIKAANS} "Create Start Menu Shortcut"
|
LangString inst_startmenu ${LANG_AFRIKAANS} "Create Start Menu Shortcut"
|
||||||
;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up"
|
;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up"
|
||||||
@@ -30,6 +30,8 @@ LangString launch_qbt ${LANG_AFRIKAANS} "Launch qBittorrent."
|
|||||||
LangString inst_requires_64bit ${LANG_AFRIKAANS} "This installer works only in 64-bit Windows versions."
|
LangString inst_requires_64bit ${LANG_AFRIKAANS} "This installer works only in 64-bit Windows versions."
|
||||||
;LangString inst_requires_win7 ${LANG_ENGLISH} "This qBittorrent version requires at least Windows 7."
|
;LangString inst_requires_win7 ${LANG_ENGLISH} "This qBittorrent version requires at least Windows 7."
|
||||||
LangString inst_requires_win7 ${LANG_AFRIKAANS} "This qBittorrent version requires at least Windows 7."
|
LangString inst_requires_win7 ${LANG_AFRIKAANS} "This qBittorrent version requires at least Windows 7."
|
||||||
|
;LangString inst_requires_win10 ${LANG_ENGLISH} "This installer requires at least Windows 10 1809."
|
||||||
|
LangString inst_requires_win10 ${LANG_AFRIKAANS} "This installer requires at least Windows 10 1809."
|
||||||
;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent"
|
;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent"
|
||||||
LangString inst_uninstall_link_description ${LANG_AFRIKAANS} "Uninstall qBittorrent"
|
LangString inst_uninstall_link_description ${LANG_AFRIKAANS} "Uninstall qBittorrent"
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
;LangString inst_qbt_req ${LANG_ENGLISH} "qBittorrent (required)"
|
;LangString inst_qbt_req ${LANG_ENGLISH} "qBittorrent (required)"
|
||||||
LangString inst_qbt_req ${LANG_ALBANIAN} "qBittorrent (required)"
|
LangString inst_qbt_req ${LANG_ALBANIAN} "qBittorrent (required)"
|
||||||
;LangString inst_dekstop ${LANG_ENGLISH} "Create Desktop Shortcut"
|
;LangString inst_desktop ${LANG_ENGLISH} "Create Desktop Shortcut"
|
||||||
LangString inst_dekstop ${LANG_ALBANIAN} "Create Desktop Shortcut"
|
LangString inst_desktop ${LANG_ALBANIAN} "Create Desktop Shortcut"
|
||||||
;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut"
|
;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut"
|
||||||
LangString inst_startmenu ${LANG_ALBANIAN} "Create Start Menu Shortcut"
|
LangString inst_startmenu ${LANG_ALBANIAN} "Create Start Menu Shortcut"
|
||||||
;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up"
|
;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up"
|
||||||
@@ -30,6 +30,8 @@ LangString launch_qbt ${LANG_ALBANIAN} "Launch qBittorrent."
|
|||||||
LangString inst_requires_64bit ${LANG_ALBANIAN} "This installer works only in 64-bit Windows versions."
|
LangString inst_requires_64bit ${LANG_ALBANIAN} "This installer works only in 64-bit Windows versions."
|
||||||
;LangString inst_requires_win7 ${LANG_ENGLISH} "This qBittorrent version requires at least Windows 7."
|
;LangString inst_requires_win7 ${LANG_ENGLISH} "This qBittorrent version requires at least Windows 7."
|
||||||
LangString inst_requires_win7 ${LANG_ALBANIAN} "This qBittorrent version requires at least Windows 7."
|
LangString inst_requires_win7 ${LANG_ALBANIAN} "This qBittorrent version requires at least Windows 7."
|
||||||
|
;LangString inst_requires_win10 ${LANG_ENGLISH} "This installer requires at least Windows 10 1809."
|
||||||
|
LangString inst_requires_win10 ${LANG_ALBANIAN} "This installer requires at least Windows 10 1809."
|
||||||
;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent"
|
;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent"
|
||||||
LangString inst_uninstall_link_description ${LANG_ALBANIAN} "Uninstall qBittorrent"
|
LangString inst_uninstall_link_description ${LANG_ALBANIAN} "Uninstall qBittorrent"
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
;LangString inst_qbt_req ${LANG_ENGLISH} "qBittorrent (required)"
|
;LangString inst_qbt_req ${LANG_ENGLISH} "qBittorrent (required)"
|
||||||
LangString inst_qbt_req ${LANG_ARABIC} "qBittorrent (مطلوب)"
|
LangString inst_qbt_req ${LANG_ARABIC} "qBittorrent (مطلوب)"
|
||||||
;LangString inst_dekstop ${LANG_ENGLISH} "Create Desktop Shortcut"
|
;LangString inst_desktop ${LANG_ENGLISH} "Create Desktop Shortcut"
|
||||||
LangString inst_dekstop ${LANG_ARABIC} "وضع اختصار على سطح المكتب"
|
LangString inst_desktop ${LANG_ARABIC} "وضع اختصار على سطح المكتب"
|
||||||
;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut"
|
;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut"
|
||||||
LangString inst_startmenu ${LANG_ARABIC} "وضع اختصار في قائمة البداية"
|
LangString inst_startmenu ${LANG_ARABIC} "وضع اختصار في قائمة البداية"
|
||||||
;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up"
|
;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up"
|
||||||
@@ -30,6 +30,8 @@ LangString launch_qbt ${LANG_ARABIC} "تشغيل البرنامج"
|
|||||||
LangString inst_requires_64bit ${LANG_ARABIC} "هذا المثبت يعمل فقط في نسخ ويندوز 64 بت"
|
LangString inst_requires_64bit ${LANG_ARABIC} "هذا المثبت يعمل فقط في نسخ ويندوز 64 بت"
|
||||||
;LangString inst_requires_win7 ${LANG_ENGLISH} "This qBittorrent version requires at least Windows 7."
|
;LangString inst_requires_win7 ${LANG_ENGLISH} "This qBittorrent version requires at least Windows 7."
|
||||||
LangString inst_requires_win7 ${LANG_ARABIC} "This qBittorrent version requires at least Windows 7."
|
LangString inst_requires_win7 ${LANG_ARABIC} "This qBittorrent version requires at least Windows 7."
|
||||||
|
;LangString inst_requires_win10 ${LANG_ENGLISH} "This installer requires at least Windows 10 1809."
|
||||||
|
LangString inst_requires_win10 ${LANG_ARABIC} "This installer requires at least Windows 10 1809."
|
||||||
;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent"
|
;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent"
|
||||||
LangString inst_uninstall_link_description ${LANG_ARABIC} "Uninstall qBittorrent"
|
LangString inst_uninstall_link_description ${LANG_ARABIC} "Uninstall qBittorrent"
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
;LangString inst_qbt_req ${LANG_ENGLISH} "qBittorrent (required)"
|
;LangString inst_qbt_req ${LANG_ENGLISH} "qBittorrent (required)"
|
||||||
LangString inst_qbt_req ${LANG_BASQUE} "qBittorrent (beharrezkoa)"
|
LangString inst_qbt_req ${LANG_BASQUE} "qBittorrent (beharrezkoa)"
|
||||||
;LangString inst_dekstop ${LANG_ENGLISH} "Create Desktop Shortcut"
|
;LangString inst_desktop ${LANG_ENGLISH} "Create Desktop Shortcut"
|
||||||
LangString inst_dekstop ${LANG_BASQUE} "Sortu Mahaigaineko Lasterbidea"
|
LangString inst_desktop ${LANG_BASQUE} "Sortu Mahaigaineko Lasterbidea"
|
||||||
;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut"
|
;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut"
|
||||||
LangString inst_startmenu ${LANG_BASQUE} "Sortu Hasierako Lasterbidea"
|
LangString inst_startmenu ${LANG_BASQUE} "Sortu Hasierako Lasterbidea"
|
||||||
;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up"
|
;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up"
|
||||||
@@ -30,6 +30,8 @@ LangString launch_qbt ${LANG_BASQUE} "Abiarazi qBittorrent."
|
|||||||
LangString inst_requires_64bit ${LANG_BASQUE} "This installer works only in 64-bit Windows versions."
|
LangString inst_requires_64bit ${LANG_BASQUE} "This installer works only in 64-bit Windows versions."
|
||||||
;LangString inst_requires_win7 ${LANG_ENGLISH} "This qBittorrent version requires at least Windows 7."
|
;LangString inst_requires_win7 ${LANG_ENGLISH} "This qBittorrent version requires at least Windows 7."
|
||||||
LangString inst_requires_win7 ${LANG_BASQUE} "This qBittorrent version requires at least Windows 7."
|
LangString inst_requires_win7 ${LANG_BASQUE} "This qBittorrent version requires at least Windows 7."
|
||||||
|
;LangString inst_requires_win10 ${LANG_ENGLISH} "This installer requires at least Windows 10 1809."
|
||||||
|
LangString inst_requires_win10 ${LANG_BASQUE} "This installer requires at least Windows 10 1809."
|
||||||
;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent"
|
;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent"
|
||||||
LangString inst_uninstall_link_description ${LANG_BASQUE} "Uninstall qBittorrent"
|
LangString inst_uninstall_link_description ${LANG_BASQUE} "Uninstall qBittorrent"
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user