You've already forked qBittorrent
							
							
				mirror of
				https://github.com/qbittorrent/qBittorrent
				synced 2025-11-02 08:10:54 +01:00 
			
		
		
		
	Compare commits
	
		
			108 Commits
		
	
	
		
			release-4.
			...
			release-4.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					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 | 
@@ -37,6 +37,8 @@ install:
 | 
			
		||||
      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 &&
 | 
			
		||||
      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:
 | 
			
		||||
  # setup env
 | 
			
		||||
@@ -45,12 +47,11 @@ before_build:
 | 
			
		||||
  # setup project
 | 
			
		||||
  - COPY /Y "%CACHE_DIR%\conf.pri" "%REPO_DIR%"
 | 
			
		||||
  # workarounds
 | 
			
		||||
  - MKDIR "c:\qbt"
 | 
			
		||||
  - MKLINK /J "c:\qbt\base" "%CACHE_DIR%\base"
 | 
			
		||||
 | 
			
		||||
build_script:
 | 
			
		||||
  - cd "%REPO_DIR%"
 | 
			
		||||
  # lupdate chokes when it parses headers from system includes, especially Boost
 | 
			
		||||
  # lupdate chokes when it parses headers from system inludes, especially Boost
 | 
			
		||||
  # it also chokes with the sources from src/app/qtlocalpeer (formerly qtsingleapplication)
 | 
			
		||||
  # Workaround: temporarily rename them to run lupdate with the .pro file
 | 
			
		||||
  - RENAME conf.pri conf.pri.temp
 | 
			
		||||
@@ -68,11 +69,8 @@ after_build:
 | 
			
		||||
  - COPY src\release\qbittorrent.exe upload
 | 
			
		||||
  - COPY src\release\qbittorrent.pdb upload
 | 
			
		||||
  - COPY "%CACHE_DIR%\base\bin\libcrypto-1_1-x64.dll" upload
 | 
			
		||||
  - COPY "%CACHE_DIR%\base\bin\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.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\torrent-rasterbar.dll" upload
 | 
			
		||||
  - COPY "%CACHE_DIR%\base\lib\zlib1.dll" upload
 | 
			
		||||
  - COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll upload
 | 
			
		||||
  - COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Gui.dll upload
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										82
									
								
								.clang-tidy
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								.clang-tidy
									
									
									
									
									
								
							@@ -1,82 +0,0 @@
 | 
			
		||||
Checks: >
 | 
			
		||||
  bugprone-*,
 | 
			
		||||
  cert-*,
 | 
			
		||||
  concurrency-*,
 | 
			
		||||
  cppcoreguidelines-*,
 | 
			
		||||
  misc-*,
 | 
			
		||||
  modernize-*,
 | 
			
		||||
  performance-*,
 | 
			
		||||
  portability-*,
 | 
			
		||||
  readability-*,
 | 
			
		||||
  -# not applicable at all,
 | 
			
		||||
  -bugprone-easily-swappable-parameters,
 | 
			
		||||
  -bugprone-implicit-widening-of-multiplication-result,
 | 
			
		||||
  -bugprone-macro-parentheses,
 | 
			
		||||
  -cppcoreguidelines-avoid-c-arrays,
 | 
			
		||||
  -cppcoreguidelines-avoid-magic-numbers,
 | 
			
		||||
  -cppcoreguidelines-avoid-non-const-global-variables,
 | 
			
		||||
  -cppcoreguidelines-macro-usage,
 | 
			
		||||
  -cppcoreguidelines-non-private-member-variables-in-classes,
 | 
			
		||||
  -cppcoreguidelines-owning-memory,
 | 
			
		||||
  -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
 | 
			
		||||
  -cppcoreguidelines-pro-bounds-constant-array-index,
 | 
			
		||||
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
 | 
			
		||||
  -cppcoreguidelines-pro-type-const-cast,
 | 
			
		||||
  -cppcoreguidelines-pro-type-reinterpret-cast,
 | 
			
		||||
  -cppcoreguidelines-pro-type-union-access,
 | 
			
		||||
  -cppcoreguidelines-pro-type-vararg,
 | 
			
		||||
  -cppcoreguidelines-special-member-functions,
 | 
			
		||||
  -cppcoreguidelines-virtual-class-destructor,
 | 
			
		||||
  -misc-no-recursion,
 | 
			
		||||
  -misc-non-private-member-variables-in-classes,
 | 
			
		||||
  -misc-unused-parameters,
 | 
			
		||||
  -modernize-avoid-c-arrays,
 | 
			
		||||
  -modernize-pass-by-value,
 | 
			
		||||
  -modernize-use-auto,
 | 
			
		||||
  -modernize-use-nodiscard,
 | 
			
		||||
  -modernize-use-trailing-return-type,
 | 
			
		||||
  -modernize-use-using,
 | 
			
		||||
  -readability-function-cognitive-complexity,
 | 
			
		||||
  -readability-function-size,
 | 
			
		||||
  -readability-identifier-length,
 | 
			
		||||
  -readability-implicit-bool-conversion,
 | 
			
		||||
  -readability-isolate-declaration,
 | 
			
		||||
  -readability-magic-numbers,
 | 
			
		||||
  -readability-named-parameter,
 | 
			
		||||
  -readability-redundant-access-specifiers,
 | 
			
		||||
  -readability-simplify-boolean-expr,
 | 
			
		||||
  -readability-uppercase-literal-suffix,
 | 
			
		||||
  -# only sometimes useful,
 | 
			
		||||
  -bugprone-narrowing-conversions,
 | 
			
		||||
  -cert-dcl58-cpp,
 | 
			
		||||
  -cert-err33-c,
 | 
			
		||||
  -cert-err58-cpp,
 | 
			
		||||
  -clang-analyzer-core.CallAndMessage,
 | 
			
		||||
  -clang-analyzer-cplusplus.NewDelete,
 | 
			
		||||
  -clang-analyzer-cplusplus.NewDeleteLeaks,
 | 
			
		||||
  -concurrency-mt-unsafe,
 | 
			
		||||
  -cppcoreguidelines-init-variables,
 | 
			
		||||
  -cppcoreguidelines-narrowing-conversions,
 | 
			
		||||
  -cppcoreguidelines-prefer-member-initializer,
 | 
			
		||||
  -cppcoreguidelines-pro-type-static-cast-downcast,
 | 
			
		||||
  -misc-definitions-in-headers,
 | 
			
		||||
  -modernize-concat-nested-namespaces,
 | 
			
		||||
  -modernize-loop-convert,
 | 
			
		||||
  -modernize-raw-string-literal,
 | 
			
		||||
  -modernize-unary-static-assert,
 | 
			
		||||
  -performance-no-automatic-move,
 | 
			
		||||
  -readability-convert-member-functions-to-static,
 | 
			
		||||
  -readability-else-after-return,
 | 
			
		||||
  -readability-redundant-declaration,
 | 
			
		||||
  -# obsoleted,
 | 
			
		||||
  -cert-dcl21-cpp
 | 
			
		||||
 | 
			
		||||
CheckOptions:
 | 
			
		||||
  - { key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors, value: true }
 | 
			
		||||
  - { key: modernize-use-override.IgnoreDestructors, value: true }
 | 
			
		||||
  - { key: performance-for-range-copy.AllowedTypes, value: "QJsonValue" }
 | 
			
		||||
  - { key: performance-for-range-copy.WarnOnAllAutoCopies, value: true }
 | 
			
		||||
  - { key: readability-braces-around-statements.ShortStatementLines, value: 3 }
 | 
			
		||||
 | 
			
		||||
HeaderFilterRegex: ".+/src/.*\\.h"
 | 
			
		||||
WarningsAsErrors: "*"
 | 
			
		||||
							
								
								
									
										2
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							@@ -5,5 +5,3 @@ core.eol=lf
 | 
			
		||||
*.png binary
 | 
			
		||||
*.qm binary
 | 
			
		||||
*.zip binary
 | 
			
		||||
 | 
			
		||||
test/testdata/crlf.txt text eol=crlf
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										61
									
								
								.github/workflows/ci_macos.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										61
									
								
								.github/workflows/ci_macos.yaml
									
									
									
									
										vendored
									
									
								
							@@ -17,12 +17,12 @@ jobs:
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        libt_version: ["2.0.9", "1.2.19"]
 | 
			
		||||
        libt_version: ["2.0.8", "1.2.18"]
 | 
			
		||||
        qbt_gui: ["GUI=ON", "GUI=OFF"]
 | 
			
		||||
        qt_version: ["5.15.2", "6.5.0"]
 | 
			
		||||
        qt_version: ["5.15.2", "6.4.0"]
 | 
			
		||||
        exclude:
 | 
			
		||||
          - libt_version: "1.2.19"
 | 
			
		||||
            qt_version: "6.5.0"
 | 
			
		||||
          - libt_version: "1.2.18"
 | 
			
		||||
            qt_version: "6.4.0"
 | 
			
		||||
 | 
			
		||||
    env:
 | 
			
		||||
      boost_path: "${{ github.workspace }}/../boost"
 | 
			
		||||
@@ -33,33 +33,26 @@ jobs:
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        uses: Wandalen/wretry.action@v1
 | 
			
		||||
        env:
 | 
			
		||||
           HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
 | 
			
		||||
           HOMEBREW_NO_INSTALL_CLEANUP: 1
 | 
			
		||||
        with:
 | 
			
		||||
          attempt_delay: 20000
 | 
			
		||||
          attempt_limit: 6
 | 
			
		||||
          command: |
 | 
			
		||||
            brew update > /dev/null
 | 
			
		||||
            brew install \
 | 
			
		||||
              cmake ninja \
 | 
			
		||||
              openssl@1.1 zlib
 | 
			
		||||
        run: |
 | 
			
		||||
          export \
 | 
			
		||||
            HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 \
 | 
			
		||||
            HOMEBREW_NO_INSTALL_CLEANUP=1
 | 
			
		||||
          brew update > /dev/null
 | 
			
		||||
          brew install \
 | 
			
		||||
            cmake ninja \
 | 
			
		||||
            openssl@1.1 zlib
 | 
			
		||||
 | 
			
		||||
      - name: Setup ccache
 | 
			
		||||
        uses: Chocobo1/setup-ccache-action@v1
 | 
			
		||||
        with:
 | 
			
		||||
          store_cache: ${{ github.ref == 'refs/heads/master' }}
 | 
			
		||||
          update_packager_index: false
 | 
			
		||||
          ccache_options: |
 | 
			
		||||
            max_size=2G
 | 
			
		||||
 | 
			
		||||
      - name: Install boost
 | 
			
		||||
        run: |
 | 
			
		||||
          curl \
 | 
			
		||||
            -L \
 | 
			
		||||
            -o "${{ runner.temp }}/boost.tar.bz2" \
 | 
			
		||||
            "https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_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 }}/.."
 | 
			
		||||
          mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
 | 
			
		||||
 | 
			
		||||
@@ -69,7 +62,6 @@ jobs:
 | 
			
		||||
          version: ${{ matrix.qt_version }}
 | 
			
		||||
          archives: qtbase qtdeclarative qtsvg qttools
 | 
			
		||||
          # Not sure why Qt made a hard dependency on qtdeclarative, try removing it when Qt > 6.4.0
 | 
			
		||||
          cache: true
 | 
			
		||||
 | 
			
		||||
      - name: Install libtorrent
 | 
			
		||||
        run: |
 | 
			
		||||
@@ -82,7 +74,6 @@ jobs:
 | 
			
		||||
          cmake \
 | 
			
		||||
            -B build \
 | 
			
		||||
            -G "Ninja" \
 | 
			
		||||
            -DBUILD_SHARED_LIBS=OFF \
 | 
			
		||||
            -DCMAKE_BUILD_TYPE=RelWithDebInfo \
 | 
			
		||||
            -DCMAKE_CXX_STANDARD=17 \
 | 
			
		||||
            -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
 | 
			
		||||
@@ -93,7 +84,7 @@ jobs:
 | 
			
		||||
          sudo cmake --install build
 | 
			
		||||
 | 
			
		||||
      - name: Build qBittorrent (Qt5)
 | 
			
		||||
        if: startsWith(matrix.qt_version, 5)
 | 
			
		||||
        if: ${{ startsWith(matrix.qt_version, 5) }}
 | 
			
		||||
        run: |
 | 
			
		||||
          CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \
 | 
			
		||||
          LDFLAGS="$LDFLAGS -gz" \
 | 
			
		||||
@@ -112,7 +103,7 @@ jobs:
 | 
			
		||||
          cmake --build build --target check
 | 
			
		||||
 | 
			
		||||
      - name: Build qBittorrent (Qt6)
 | 
			
		||||
        if: startsWith(matrix.qt_version, 6)
 | 
			
		||||
        if: ${{ startsWith(matrix.qt_version, 6) }}
 | 
			
		||||
        run: |
 | 
			
		||||
          CXXFLAGS="$CXXFLAGS -Wno-gnu-zero-variadic-macro-arguments -Werror -Wno-error=deprecated-declarations" \
 | 
			
		||||
          LDFLAGS="$LDFLAGS -gz" \
 | 
			
		||||
@@ -133,27 +124,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Prepare build artifacts
 | 
			
		||||
        run: |
 | 
			
		||||
          # create .dmg
 | 
			
		||||
          appName="qbittorrent"
 | 
			
		||||
          if [ "${{ matrix.qbt_gui }}" = "GUI=OFF" ]; then
 | 
			
		||||
            appName="qbittorrent-nox"
 | 
			
		||||
          fi
 | 
			
		||||
          # package
 | 
			
		||||
          pushd build
 | 
			
		||||
          PACKAGE_RETRY=0
 | 
			
		||||
          while [ "$PACKAGE_RETRY" -lt "3" ]; do
 | 
			
		||||
            macdeployqt "$appName.app" -dmg -no-strip
 | 
			
		||||
            if [ -f "$appName.dmg" ]; then
 | 
			
		||||
              break
 | 
			
		||||
            fi
 | 
			
		||||
            sleep 5
 | 
			
		||||
            PACKAGE_RETRY=$((PACKAGE_RETRY + 1))
 | 
			
		||||
            echo "Retry $PACKAGE_RETRY..."
 | 
			
		||||
          done
 | 
			
		||||
          popd
 | 
			
		||||
          # prepare upload folder
 | 
			
		||||
          mkdir upload
 | 
			
		||||
          cp "build/$appName.dmg" upload
 | 
			
		||||
          mkdir upload/cmake
 | 
			
		||||
          cp build/compile_commands.json upload/cmake
 | 
			
		||||
          mkdir upload/cmake/libtorrent
 | 
			
		||||
@@ -162,5 +133,5 @@ jobs:
 | 
			
		||||
      - name: Upload build artifacts
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: qBittorrent-CI_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
 | 
			
		||||
          name: build-info_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
 | 
			
		||||
          path: upload
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								.github/workflows/ci_ubuntu.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								.github/workflows/ci_ubuntu.yaml
									
									
									
									
										vendored
									
									
								
							@@ -4,7 +4,6 @@ on: [pull_request, push]
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  actions: write
 | 
			
		||||
  security-events: write
 | 
			
		||||
 | 
			
		||||
concurrency:
 | 
			
		||||
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
 | 
			
		||||
@@ -18,11 +17,11 @@ jobs:
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        libt_version: ["2.0.9", "1.2.19"]
 | 
			
		||||
        libt_version: ["2.0.8", "1.2.18"]
 | 
			
		||||
        qbt_gui: ["GUI=ON", "GUI=OFF"]
 | 
			
		||||
        qt_version: ["5.15.2", "6.2.0"]
 | 
			
		||||
        exclude:
 | 
			
		||||
          - libt_version: "1.2.19"
 | 
			
		||||
          - libt_version: "1.2.18"
 | 
			
		||||
            qt_version: "6.2.0"
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
@@ -39,7 +38,6 @@ jobs:
 | 
			
		||||
      - name: Setup ccache
 | 
			
		||||
        uses: Chocobo1/setup-ccache-action@v1
 | 
			
		||||
        with:
 | 
			
		||||
          store_cache: ${{ github.ref == 'refs/heads/master' }}
 | 
			
		||||
          update_packager_index: false
 | 
			
		||||
          ccache_options: |
 | 
			
		||||
            max_size=2G
 | 
			
		||||
@@ -49,7 +47,6 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ matrix.qt_version }}
 | 
			
		||||
          archives: icu qtbase qtsvg qttools
 | 
			
		||||
          cache: true
 | 
			
		||||
 | 
			
		||||
      - name: Install libtorrent
 | 
			
		||||
        run: |
 | 
			
		||||
@@ -62,23 +59,14 @@ jobs:
 | 
			
		||||
          cmake \
 | 
			
		||||
            -B build \
 | 
			
		||||
            -G "Ninja" \
 | 
			
		||||
            -DBUILD_SHARED_LIBS=OFF \
 | 
			
		||||
            -DCMAKE_BUILD_TYPE=RelWithDebInfo \
 | 
			
		||||
            -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
 | 
			
		||||
            -Ddeprecated-functions=OFF
 | 
			
		||||
          cmake --build build
 | 
			
		||||
          sudo cmake --install build
 | 
			
		||||
 | 
			
		||||
      # to avoid scanning 3rdparty codebases, initialize it just before building qbt
 | 
			
		||||
      - name: Initialize CodeQL
 | 
			
		||||
        uses: github/codeql-action/init@v2
 | 
			
		||||
        if: startsWith(matrix.libt_version, 2) && (matrix.qbt_gui == 'GUI=ON') && startsWith(matrix.qt_version, 6)
 | 
			
		||||
        with:
 | 
			
		||||
          config-file: ./.github/workflows/helper/codeql/cpp.yaml
 | 
			
		||||
          languages: cpp
 | 
			
		||||
 | 
			
		||||
      - name: Build qBittorrent (Qt5)
 | 
			
		||||
        if: startsWith(matrix.qt_version, 5)
 | 
			
		||||
        if: ${{ startsWith(matrix.qt_version, 5) }}
 | 
			
		||||
        run: |
 | 
			
		||||
          CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \
 | 
			
		||||
          LDFLAGS="$LDFLAGS -gz" \
 | 
			
		||||
@@ -97,7 +85,7 @@ jobs:
 | 
			
		||||
          DESTDIR="qbittorrent" cmake --install build
 | 
			
		||||
 | 
			
		||||
      - name: Build qBittorrent (Qt6)
 | 
			
		||||
        if: startsWith(matrix.qt_version, 6)
 | 
			
		||||
        if: ${{ startsWith(matrix.qt_version, 6) }}
 | 
			
		||||
        run: |
 | 
			
		||||
          CXXFLAGS="$CXXFLAGS -Werror" \
 | 
			
		||||
          LDFLAGS="$LDFLAGS -gz" \
 | 
			
		||||
@@ -116,12 +104,6 @@ jobs:
 | 
			
		||||
          cmake --build build --target check
 | 
			
		||||
          DESTDIR="qbittorrent" cmake --install build
 | 
			
		||||
 | 
			
		||||
      - name: Run CodeQL analysis
 | 
			
		||||
        uses: github/codeql-action/analyze@v2
 | 
			
		||||
        if: startsWith(matrix.libt_version, 2) && (matrix.qbt_gui == 'GUI=ON') && startsWith(matrix.qt_version, 6)
 | 
			
		||||
        with:
 | 
			
		||||
          category: ${{ github.base_ref || github.ref_name }}
 | 
			
		||||
 | 
			
		||||
      - name: Prepare build artifacts
 | 
			
		||||
        run: |
 | 
			
		||||
          mkdir upload
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/ci_webui.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/ci_webui.yaml
									
									
									
									
										vendored
									
									
								
							@@ -2,8 +2,7 @@ name: CI - WebUI
 | 
			
		||||
 | 
			
		||||
on: [pull_request, push]
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  security-events: write
 | 
			
		||||
permissions: {}
 | 
			
		||||
 | 
			
		||||
concurrency:
 | 
			
		||||
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
 | 
			
		||||
@@ -37,12 +36,3 @@ jobs:
 | 
			
		||||
        run: |
 | 
			
		||||
          npm run format
 | 
			
		||||
          git diff --exit-code
 | 
			
		||||
 | 
			
		||||
      - name: Initialize CodeQL
 | 
			
		||||
        uses: github/codeql-action/init@v2
 | 
			
		||||
        with:
 | 
			
		||||
          config-file: ./.github/workflows/helper/codeql/js.yaml
 | 
			
		||||
          languages: javascript
 | 
			
		||||
 | 
			
		||||
      - name: Run CodeQL analysis
 | 
			
		||||
        uses: github/codeql-action/analyze@v2
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										54
									
								
								.github/workflows/ci_windows.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								.github/workflows/ci_windows.yaml
									
									
									
									
										vendored
									
									
								
							@@ -17,12 +17,11 @@ jobs:
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        libt_version: ["2.0.9", "1.2.19"]
 | 
			
		||||
        libt_version: ["2.0.8", "1.2.18"]
 | 
			
		||||
 | 
			
		||||
    env:
 | 
			
		||||
      boost_path: "${{ github.workspace }}/../boost"
 | 
			
		||||
      libtorrent_path: "${{ github.workspace }}/libtorrent"
 | 
			
		||||
      vpkg_triplet_path: "${{ github.workspace }}/../triplets_overlay"
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout repository
 | 
			
		||||
@@ -43,36 +42,35 @@ jobs:
 | 
			
		||||
          vcpkgDirectory: C:/vcpkg
 | 
			
		||||
          doNotUpdateVcpkg: true  # the preinstalled vcpkg is updated regularly
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies with vcpkg
 | 
			
		||||
      - name: Install dependencies from vcpkg
 | 
			
		||||
        run: |
 | 
			
		||||
          # create our own triplet
 | 
			
		||||
          # tell vcpkg to only build Release variants of the dependencies
 | 
			
		||||
          New-Item `
 | 
			
		||||
            -Force `
 | 
			
		||||
            -ItemType File `
 | 
			
		||||
            -Path "${{ env.vpkg_triplet_path }}/x64-windows-static-md-release.cmake"
 | 
			
		||||
          # OpenSSL isn't compatible with `/guard:cf` flag so we omit it for now, see: https://github.com/openssl/openssl/issues/22554
 | 
			
		||||
            -Path "${{ github.workspace }}" `
 | 
			
		||||
            -Name "triplets_overlay" `
 | 
			
		||||
            -ItemType Directory
 | 
			
		||||
          Copy-Item `
 | 
			
		||||
            "${{ env.RUNVCPKG_VCPKG_ROOT }}/triplets/x64-windows-static.cmake" `
 | 
			
		||||
            "${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake"
 | 
			
		||||
          Add-Content `
 | 
			
		||||
            -Path "${{ env.vpkg_triplet_path }}/x64-windows-static-md-release.cmake" `
 | 
			
		||||
            -Value @("set(VCPKG_TARGET_ARCHITECTURE x64)",
 | 
			
		||||
              "set(VCPKG_LIBRARY_LINKAGE static)",
 | 
			
		||||
              "set(VCPKG_CRT_LINKAGE dynamic)",
 | 
			
		||||
              "set(VCPKG_BUILD_TYPE release)")
 | 
			
		||||
            "${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake" `
 | 
			
		||||
            -Value "set(VCPKG_BUILD_TYPE release)"
 | 
			
		||||
          # clear buildtrees after each package installation to reduce disk space requirements
 | 
			
		||||
          $packages = `
 | 
			
		||||
            "openssl:x64-windows-static-md-release",
 | 
			
		||||
            "zlib:x64-windows-static-md-release"
 | 
			
		||||
            "openssl:x64-windows-static-release",
 | 
			
		||||
            "zlib:x64-windows-static-release"
 | 
			
		||||
          ${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe upgrade `
 | 
			
		||||
            --no-dry-run `
 | 
			
		||||
            --overlay-triplets="${{ env.vpkg_triplet_path }}"
 | 
			
		||||
            --overlay-triplets="${{ github.workspace }}/triplets_overlay" `
 | 
			
		||||
            --no-dry-run
 | 
			
		||||
          ${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe install `
 | 
			
		||||
            --overlay-triplets="${{ github.workspace }}/triplets_overlay" `
 | 
			
		||||
            --clean-after-build `
 | 
			
		||||
            --overlay-triplets="${{ env.vpkg_triplet_path }}" `
 | 
			
		||||
            $packages
 | 
			
		||||
 | 
			
		||||
      - name: Install boost
 | 
			
		||||
        run: |
 | 
			
		||||
          aria2c `
 | 
			
		||||
            "https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.7z" `
 | 
			
		||||
            "https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.7z" `
 | 
			
		||||
            -d "${{ runner.temp }}" `
 | 
			
		||||
            -o "boost.7z"
 | 
			
		||||
          7z x "${{ runner.temp }}/boost.7z" -o"${{ github.workspace }}/.."
 | 
			
		||||
@@ -81,9 +79,8 @@ jobs:
 | 
			
		||||
      - name: Install Qt
 | 
			
		||||
        uses: jurplel/install-qt-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          version: "6.5.0"
 | 
			
		||||
          version: "6.4.0"
 | 
			
		||||
          archives: qtbase qtsvg qttools
 | 
			
		||||
          cache: true
 | 
			
		||||
 | 
			
		||||
      - name: Install libtorrent
 | 
			
		||||
        run: |
 | 
			
		||||
@@ -93,38 +90,37 @@ jobs:
 | 
			
		||||
            --recurse-submodules `
 | 
			
		||||
            https://github.com/arvidn/libtorrent.git
 | 
			
		||||
          cd libtorrent
 | 
			
		||||
          $env:CXXFLAGS+=" /guard:cf"
 | 
			
		||||
          $env:LDFLAGS+=" /guard:cf"
 | 
			
		||||
          cmake `
 | 
			
		||||
            -B build `
 | 
			
		||||
            -G "Ninja" `
 | 
			
		||||
            -DCMAKE_BUILD_TYPE=RelWithDebInfo `
 | 
			
		||||
            -DCMAKE_CXX_FLAGS=/guard:cf `
 | 
			
		||||
            -DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
 | 
			
		||||
            -DCMAKE_INSTALL_PREFIX="${{ env.libtorrent_path }}" `
 | 
			
		||||
            -DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
 | 
			
		||||
            -DBOOST_ROOT="${{ env.boost_path }}" `
 | 
			
		||||
            -DBUILD_SHARED_LIBS=OFF `
 | 
			
		||||
            -Ddeprecated-functions=OFF `
 | 
			
		||||
            -Dstatic_runtime=OFF `
 | 
			
		||||
            -DVCPKG_TARGET_TRIPLET=x64-windows-static-md-release
 | 
			
		||||
            -Dstatic_runtime=ON `
 | 
			
		||||
            -DVCPKG_TARGET_TRIPLET=x64-windows-static-release
 | 
			
		||||
          cmake --build build
 | 
			
		||||
          cmake --install build
 | 
			
		||||
 | 
			
		||||
      - name: Build qBittorrent
 | 
			
		||||
        run: |
 | 
			
		||||
          $env:CXXFLAGS+=" /WX"
 | 
			
		||||
          cmake `
 | 
			
		||||
            -B build `
 | 
			
		||||
            -G "Ninja" `
 | 
			
		||||
            -DCMAKE_BUILD_TYPE=RelWithDebInfo `
 | 
			
		||||
            -DCMAKE_CXX_FLAGS="/WX" `
 | 
			
		||||
            -DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
 | 
			
		||||
            -DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
 | 
			
		||||
            -DBOOST_ROOT="${{ env.boost_path }}" `
 | 
			
		||||
            -DLibtorrentRasterbar_DIR="${{ env.libtorrent_path }}/lib/cmake/LibtorrentRasterbar" `
 | 
			
		||||
            -DMSVC_RUNTIME_DYNAMIC=ON `
 | 
			
		||||
            -DMSVC_RUNTIME_DYNAMIC=OFF `
 | 
			
		||||
            -DQT6=ON `
 | 
			
		||||
            -DTESTING=ON `
 | 
			
		||||
            -DVCPKG_TARGET_TRIPLET=x64-windows-static-md-release `
 | 
			
		||||
            -DVCPKG_TARGET_TRIPLET=x64-windows-static-release `
 | 
			
		||||
            -DVERBOSE_CONFIGURE=ON `
 | 
			
		||||
            --graphviz=build/target_graph.dot
 | 
			
		||||
          cmake --build build --target qbt_update_translations
 | 
			
		||||
@@ -156,8 +152,6 @@ jobs:
 | 
			
		||||
          copy "${{ env.Qt6_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/plugins/sqldrivers
 | 
			
		||||
          mkdir 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
 | 
			
		||||
          mkdir upload/cmake
 | 
			
		||||
          copy build/compile_commands.json upload/cmake
 | 
			
		||||
 
 | 
			
		||||
@@ -26,13 +26,13 @@ jobs:
 | 
			
		||||
      - name: Install Qt
 | 
			
		||||
        uses: jurplel/install-qt-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          version: "6.5.0"
 | 
			
		||||
          version: "6.4.0"
 | 
			
		||||
          archives: icu qtbase qtsvg qttools
 | 
			
		||||
 | 
			
		||||
      - name: Install libtorrent
 | 
			
		||||
        run: |
 | 
			
		||||
          git clone \
 | 
			
		||||
            --branch "v2.0.9" \
 | 
			
		||||
            --branch "v2.0.8" \
 | 
			
		||||
            --depth 1 \
 | 
			
		||||
            --recurse-submodules \
 | 
			
		||||
            https://github.com/arvidn/libtorrent.git
 | 
			
		||||
@@ -69,7 +69,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Submit the result to Coverity Scan
 | 
			
		||||
        run: |
 | 
			
		||||
          tar -caf qbittorrent.xz cov-int
 | 
			
		||||
          tar caf qbittorrent.xz cov-int
 | 
			
		||||
          curl \
 | 
			
		||||
            --form token="${{ secrets.COVERITY_SCAN_TOKEN }}" \
 | 
			
		||||
            --form email=sledgehammer999@qbittorrent.org \
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/helper/appimage/export_vars.sh
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/helper/appimage/export_vars.sh
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							@@ -1,12 +1,10 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
# this file is called from AppRun so 'root_dir' will point to where AppRun is
 | 
			
		||||
root_dir="$(readlink -f "$(dirname "$0")")"
 | 
			
		||||
 | 
			
		||||
# Insert the default values because after the test we prepend our path
 | 
			
		||||
# and it will create problems with DEs (eg KDE) that don't set the variable
 | 
			
		||||
# and rely on the default paths
 | 
			
		||||
if [ -z "${XDG_DATA_DIRS}" ]; then
 | 
			
		||||
if [[ -z ${XDG_DATA_DIRS} ]]; then
 | 
			
		||||
    XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								.github/workflows/helper/codeql/cpp.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/helper/codeql/cpp.yaml
									
									
									
									
										vendored
									
									
								
							@@ -1,14 +0,0 @@
 | 
			
		||||
name: "CodeQL config for C++"
 | 
			
		||||
 | 
			
		||||
queries:
 | 
			
		||||
  - uses: security-and-quality
 | 
			
		||||
 | 
			
		||||
query-filters:
 | 
			
		||||
  - exclude:
 | 
			
		||||
      id: cpp/commented-out-code
 | 
			
		||||
  - exclude:
 | 
			
		||||
      id: cpp/include-non-header
 | 
			
		||||
  - exclude:
 | 
			
		||||
      id: cpp/loop-variable-changed
 | 
			
		||||
  - exclude:
 | 
			
		||||
      id: cpp/useless-expression
 | 
			
		||||
							
								
								
									
										11
									
								
								.github/workflows/helper/codeql/js.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.github/workflows/helper/codeql/js.yaml
									
									
									
									
										vendored
									
									
								
							@@ -1,11 +0,0 @@
 | 
			
		||||
name: "CodeQL config for Javascript"
 | 
			
		||||
 | 
			
		||||
paths-ignore:
 | 
			
		||||
  - "**/lib/*"
 | 
			
		||||
 | 
			
		||||
queries:
 | 
			
		||||
  - uses: security-and-quality
 | 
			
		||||
 | 
			
		||||
query-filters:
 | 
			
		||||
  - exclude:
 | 
			
		||||
      id: js/superfluous-trailing-arguments
 | 
			
		||||
							
								
								
									
										18
									
								
								.github/workflows/helper/pre-commit/.typos.toml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/helper/pre-commit/.typos.toml
									
									
									
									
										vendored
									
									
								
							@@ -1,18 +0,0 @@
 | 
			
		||||
# https://github.com/crate-ci/typos/blob/master/docs/reference.md
 | 
			
		||||
# https://github.com/crate-ci/typos/blob/master/docs/design.md#identifiers-and-words
 | 
			
		||||
 | 
			
		||||
# try adding to `identifiers` list first, if doesn't work then `words` list
 | 
			
		||||
 | 
			
		||||
[default.extend-identifiers]
 | 
			
		||||
additionals = "additionals"
 | 
			
		||||
caf = "caf"
 | 
			
		||||
curren = "curren"
 | 
			
		||||
FO = "FO"
 | 
			
		||||
ket = "ket"
 | 
			
		||||
Q_INVOKABLE = "Q_INVOKABLE"
 | 
			
		||||
switchs = "switchs"
 | 
			
		||||
ths = "ths"
 | 
			
		||||
 | 
			
		||||
[default.extend-words]
 | 
			
		||||
BA = "BA"
 | 
			
		||||
helo = "helo"
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/stale_bot.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/stale_bot.yaml
									
									
									
									
										vendored
									
									
								
							@@ -12,7 +12,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Mark and close stale PRs
 | 
			
		||||
        uses: actions/stale@v8
 | 
			
		||||
        uses: actions/stale@v5
 | 
			
		||||
        with:
 | 
			
		||||
          stale-pr-message: "This PR is stale because it has been 60 days with no activity. This PR will be automatically closed within 7 days if there is no further activity."
 | 
			
		||||
          close-pr-message: "This PR was closed because it has been stalled for some time with no activity."
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,3 @@
 | 
			
		||||
.vscode/
 | 
			
		||||
src/gui/geoip/GeoIP.dat
 | 
			
		||||
src/gui/geoip/GeoIP.dat.gz
 | 
			
		||||
src/qbittorrent
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ repos:
 | 
			
		||||
    hooks:
 | 
			
		||||
      - id: check-translation-tag
 | 
			
		||||
        name: Check newline characters in <translation> tag
 | 
			
		||||
        entry: .github/workflows/helper/pre-commit/check_translation_tag.py
 | 
			
		||||
        entry: .github/workflows/check_translation_tag.py
 | 
			
		||||
        language: script
 | 
			
		||||
        exclude: |
 | 
			
		||||
          (?x)^(
 | 
			
		||||
@@ -13,7 +13,7 @@ repos:
 | 
			
		||||
          - ts
 | 
			
		||||
 | 
			
		||||
  - repo: https://github.com/pre-commit/pre-commit-hooks.git
 | 
			
		||||
    rev: v4.4.0
 | 
			
		||||
    rev: v4.3.0
 | 
			
		||||
    hooks:
 | 
			
		||||
    - id: check-json
 | 
			
		||||
      name: Check JSON files
 | 
			
		||||
@@ -33,19 +33,17 @@ repos:
 | 
			
		||||
      args: ["--fix=lf"]
 | 
			
		||||
      exclude: |
 | 
			
		||||
        (?x)^(
 | 
			
		||||
          src/webui/www/private/css/lib/.* |
 | 
			
		||||
          src/webui/www/private/scripts/lib/.* |
 | 
			
		||||
          test/testdata/crlf.txt
 | 
			
		||||
          compile_commands.json |
 | 
			
		||||
          src/webui/www/private/scripts/lib/.*
 | 
			
		||||
        )$
 | 
			
		||||
 | 
			
		||||
    - id: end-of-file-fixer
 | 
			
		||||
      name: Check trailing newlines
 | 
			
		||||
      exclude: |
 | 
			
		||||
        (?x)^(
 | 
			
		||||
          compile_commands.json |
 | 
			
		||||
          configure |
 | 
			
		||||
          src/webui/www/private/css/lib/.* |
 | 
			
		||||
          src/webui/www/private/scripts/lib/.* |
 | 
			
		||||
          test/testdata/crlf.txt
 | 
			
		||||
          src/webui/www/private/scripts/lib/.*
 | 
			
		||||
        )$
 | 
			
		||||
      exclude_types:
 | 
			
		||||
        - svg
 | 
			
		||||
@@ -55,54 +53,7 @@ repos:
 | 
			
		||||
      name: Check trailing whitespaces
 | 
			
		||||
      exclude: |
 | 
			
		||||
        (?x)^(
 | 
			
		||||
          src/webui/www/private/css/lib/.* |
 | 
			
		||||
          src/webui/www/private/scripts/lib/.*
 | 
			
		||||
        )$
 | 
			
		||||
      exclude_types:
 | 
			
		||||
        - ts
 | 
			
		||||
 | 
			
		||||
  - repo: https://github.com/codespell-project/codespell
 | 
			
		||||
    rev: v2.2.5
 | 
			
		||||
    hooks:
 | 
			
		||||
    - id: codespell
 | 
			
		||||
      name: Check spelling (codespell)
 | 
			
		||||
      args: ["--ignore-words-list", "additionals,curren,fo,ket,superseeding,te,ths"]
 | 
			
		||||
      exclude: |
 | 
			
		||||
        (?x)^(
 | 
			
		||||
          .*\.desktop |
 | 
			
		||||
          .*\.qrc |
 | 
			
		||||
          build-aux/.* |
 | 
			
		||||
          Changelog |
 | 
			
		||||
          dist/windows/installer-translations/.* |
 | 
			
		||||
          m4/.* |
 | 
			
		||||
          src/base/3rdparty/.* |
 | 
			
		||||
          src/searchengine/nova3/socks.py |
 | 
			
		||||
          src/webui/www/private/scripts/lib/.*
 | 
			
		||||
        )$
 | 
			
		||||
      exclude_types:
 | 
			
		||||
        - ts
 | 
			
		||||
 | 
			
		||||
  - repo: https://github.com/crate-ci/typos
 | 
			
		||||
    rev: v1.15.5
 | 
			
		||||
    hooks:
 | 
			
		||||
    - id: typos
 | 
			
		||||
      name: Check spelling (typos)
 | 
			
		||||
      args: ["--config", ".github/workflows/helper/pre-commit/.typos.toml"]
 | 
			
		||||
      exclude: |
 | 
			
		||||
        (?x)^(
 | 
			
		||||
          .*\.asc |
 | 
			
		||||
          .*\.desktop |
 | 
			
		||||
          .*\.qrc |
 | 
			
		||||
          \.pre-commit-config\.yaml |
 | 
			
		||||
          build-aux/.* |
 | 
			
		||||
          Changelog |
 | 
			
		||||
          configure.* |
 | 
			
		||||
          dist/windows/installer-translations/.* |
 | 
			
		||||
          m4/.* |
 | 
			
		||||
          src/base/3rdparty/.* |
 | 
			
		||||
          src/searchengine/nova3/socks.py |
 | 
			
		||||
          src/webui/www/private/scripts/lib/.*
 | 
			
		||||
        )$
 | 
			
		||||
      exclude_types:
 | 
			
		||||
        - svg
 | 
			
		||||
        - ts
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
[main]
 | 
			
		||||
host = https://www.transifex.com
 | 
			
		||||
 | 
			
		||||
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_v46x]
 | 
			
		||||
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_master]
 | 
			
		||||
file_filter  = src/lang/qbittorrent_<lang>.ts
 | 
			
		||||
source_file  = src/lang/qbittorrent_en.ts
 | 
			
		||||
source_lang  = en
 | 
			
		||||
@@ -9,7 +9,7 @@ type         = QT
 | 
			
		||||
minimum_perc = 23
 | 
			
		||||
lang_map     = pt: pt_PT, zh: zh_CN
 | 
			
		||||
 | 
			
		||||
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_webui_v46x]
 | 
			
		||||
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_webui]
 | 
			
		||||
file_filter  = src/webui/www/translations/webui_<lang>.ts
 | 
			
		||||
source_file  = src/webui/www/translations/webui_en.ts
 | 
			
		||||
source_lang  = en
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								AUTHORS
									
									
									
									
									
								
							@@ -29,17 +29,13 @@ Code from other projects:
 | 
			
		||||
  copyright: Dan Haim <negativeiq@users.sourceforge.net>
 | 
			
		||||
  license: BSD
 | 
			
		||||
 | 
			
		||||
* files src/webui/www/private/css/lib/vanillaSelectBox.css src/webui/www/private/scripts/lib/vanillaSelectBox.js
 | 
			
		||||
  copyright: Philippe Meyer <pmg.meyer@gmail.com>
 | 
			
		||||
  license: MIT
 | 
			
		||||
 | 
			
		||||
Images Authors:
 | 
			
		||||
* files: src/icons/qbittorrent-tray.svg
 | 
			
		||||
  copyright: Provided by HVS <hvs linuxmail org> (raster first proposal) and Atif Afzal(@atfzl github) <atif5801@gmail.com> (vectorized and modified)
 | 
			
		||||
  license: GPLv2+
 | 
			
		||||
 | 
			
		||||
* files: src/qbittorrent_file.ico src/icons/fileicon.svg
 | 
			
		||||
  copyright: 'unknown.svg' (LGPLv3+) from Oxygen Icon Theme was used as base which was slightly modified and 'qbittorrent-tray.svg' (GPLv2+) was overlaid above it.
 | 
			
		||||
  copyright: 'uknown.svg' (LGPLv3+) from Oxygen Icon Theme was used as base which was slightly modified and 'qbittorrent-tray.svg' (GPLv2+) was overlayed above it.
 | 
			
		||||
  license: GPLv3+
 | 
			
		||||
 | 
			
		||||
* files: src/icons/flags/*.svg
 | 
			
		||||
 
 | 
			
		||||
@@ -11,8 +11,8 @@ set(minBoostVersion 1.71)
 | 
			
		||||
set(minQt5Version 5.15.2)
 | 
			
		||||
set(minQt6Version 6.2)
 | 
			
		||||
set(minOpenSSLVersion 1.1.1)
 | 
			
		||||
set(minLibtorrent1Version 1.2.19)
 | 
			
		||||
set(minLibtorrentVersion 2.0.9)
 | 
			
		||||
set(minLibtorrent1Version 1.2.18)
 | 
			
		||||
set(minLibtorrentVersion 2.0.8)
 | 
			
		||||
set(minZlibVersion 1.2.11)
 | 
			
		||||
 | 
			
		||||
include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19
 | 
			
		||||
@@ -30,21 +30,16 @@ feature_option(STACKTRACE "Enable stacktrace support" ON)
 | 
			
		||||
feature_option(TESTING "Build internal testing suite" OFF)
 | 
			
		||||
feature_option(VERBOSE_CONFIGURE "Show information about PACKAGES_FOUND and PACKAGES_NOT_FOUND in the configure output (only useful for debugging the CMake build scripts)" OFF)
 | 
			
		||||
 | 
			
		||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
 | 
			
		||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
 | 
			
		||||
    feature_option_dependent(DBUS
 | 
			
		||||
        "Enable support for notifications and power-management features via D-Bus"
 | 
			
		||||
        "Enable support for notifications and power-management features via D-Bus on Linux"
 | 
			
		||||
        ON "GUI" OFF
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
 | 
			
		||||
    feature_option_dependent(SYSTEMD
 | 
			
		||||
        "Install systemd service file. Target directory is overridable with `SYSTEMD_SERVICES_INSTALL_DIR` variable"
 | 
			
		||||
        OFF "NOT GUI" OFF
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (MSVC)
 | 
			
		||||
elseif (MSVC)
 | 
			
		||||
    feature_option(MSVC_RUNTIME_DYNAMIC "Use MSVC dynamic runtime library (-MD) instead of static (-MT)" ON)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -200,7 +200,7 @@ Following these guidelines helps maintainers and the community understand your s
 | 
			
		||||
[coding-guidelines-url]: https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md
 | 
			
		||||
[coding-guidelines-git-commit-message-url]: https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md#10-git-commit-message
 | 
			
		||||
[commit-message-fix-issue-example-url]: https://github.com/qbittorrent/qBittorrent/commit/c07cd440cd46345297debb47cb260f8688975f50
 | 
			
		||||
[forum-url]: https://forum.qbittorrent.org/
 | 
			
		||||
[forum-url]: http://forum.qbittorrent.org/
 | 
			
		||||
[howto-report-bugs-url]: https://www.chiark.greenend.org.uk/~sgtatham/bugs.html
 | 
			
		||||
[how-to-translate-url]: https://github.com/qbittorrent/qBittorrent/wiki/How-to-translate-qBittorrent
 | 
			
		||||
[merging-vs-rebasing-url]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										162
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						
									
										162
									
								
								Changelog
									
									
									
									
									
								
							@@ -1,125 +1,47 @@
 | 
			
		||||
Sun May 26th 2024 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.6.5
 | 
			
		||||
    - BUGFIX: Prevent app from being closed when disabling system tray icon (glassez)
 | 
			
		||||
    - BUGFIX: Fix <kbd>Enter</kbd> key behavior in Add new torrent dialog (glassez)
 | 
			
		||||
    - BUGFIX: Prevent invalid status filter index from being used (glassez)
 | 
			
		||||
    - BUGFIX: Add extra offset for dialog frame (glassez)
 | 
			
		||||
    - BUGFIX: Don't overwrite stored layout of main window with incorrect one (glassez)
 | 
			
		||||
    - BUGFIX: Don't forget to resume "missing files" torrent when rechecking (glassez)
 | 
			
		||||
    - WEBUI: Restore ability to use server-side translation by custom WebUI (glassez)
 | 
			
		||||
    - WEBUI: Fix wrong peer number (Chocobo1)
 | 
			
		||||
    - LINUX: Improve AppStream metadata (Chocobo1)
 | 
			
		||||
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 Mar 24th 2024 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.6.4
 | 
			
		||||
    - BUGFIX: Correctly adjust "Add New torrent" dialog position in all the cases (glassez)
 | 
			
		||||
    - BUGFIX: Change "metadata received" stop condition behavior (glassez)
 | 
			
		||||
    - BUGFIX: Add a small delay before processing the key input of search boxes (Chocobo1)
 | 
			
		||||
    - BUGFIX: Ensure the profile path is pointing to a directory (Chocobo1)
 | 
			
		||||
    - RSS: Use better icons for RSS articles (glassez)
 | 
			
		||||
    - WINDOWS: NSIS: Update French, Hungarian translations (MarcDrieu, foxi69)
 | 
			
		||||
    - LINUX: Fix sorting when ICU isn't used (Chocobo1)
 | 
			
		||||
    - LINUX: Fix invisible tray icon on Plasma 6 (tehcneko)
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
Mon Jan 15th 2024 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.6.3
 | 
			
		||||
    - BUGFIX: Correctly update number of filtered items (glassez)
 | 
			
		||||
    - BUGFIX: Don't forget to store Stop condition value (glassez)
 | 
			
		||||
    - BUGFIX: Show correctly decoded filename in log (glassez)
 | 
			
		||||
    - BUGFIX: Specify a locale if none is set (Chocobo1)
 | 
			
		||||
    - BUGFIX: Apply inactive seeding time limit set on new torrents (glassez)
 | 
			
		||||
    - BUGFIX: Show URL seeds for torrents that have no metadata (glassez)
 | 
			
		||||
    - BUGFIX: Don't get stuck loading on mismatched info-hashes in resume data (glassez)
 | 
			
		||||
 | 
			
		||||
Mon Nov 27th 2023 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.6.2
 | 
			
		||||
    - BUGFIX: Do not apply share limit if the previous one was applied (glassez)
 | 
			
		||||
    - BUGFIX: Show Add new torrent dialog on main window screen (glassez)
 | 
			
		||||
    - WEBUI: Fix JS memory leak (brvphoenix)
 | 
			
		||||
    - WEBUI: Disable stdout buffering for qbt-nox (Chocobo1)
 | 
			
		||||
    - WINDOWS: NSIS: Display correct Minimum Windows OS requirement (xavier2k6)
 | 
			
		||||
    - WINDOWS: NSIS: Add Hebrew translation (avivmu)
 | 
			
		||||
    - LINUX: WAYLAND: Fix parent widget of "Lock qBittorrent" submenu (Vlad Zahorodnii)
 | 
			
		||||
 | 
			
		||||
Mon Nov 20th 2023 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.6.1
 | 
			
		||||
    - FEATURE: Add option to enable previous Add new torrent dialog behavior (glassez)
 | 
			
		||||
    - BUGFIX: Prevent crash due to race condition when adding magnet link (glassez)
 | 
			
		||||
    - BUGFIX: Fix Enter key behavior when add new torrent (glassez)
 | 
			
		||||
    - BUGFIX: Add missing main window icon (iomezk)
 | 
			
		||||
    - BUGFIX: Update size of selected files when selection is changed (glassez)
 | 
			
		||||
    - BUGFIX: Correctly handle changing save path of torrent w/o metadata (glassez)
 | 
			
		||||
    - BUGFIX: Use appropriate icon for "moving" torrents in transfer list (xavier2k6)
 | 
			
		||||
    - WEBUI: Drop WebUI default credentials (glassez)
 | 
			
		||||
    - WEBUI: Add I2P settings to WebUI (thalieht)
 | 
			
		||||
    - WEBUI: Fix duplicate scrollbar on Transfer List (AgentConDier)
 | 
			
		||||
    - WEBUI: Fix .torrent file upload on iPadOS (Vitaly Cheptsov)
 | 
			
		||||
    - WEBUI: Fix incorrect subcategory sorting (Bartu Özen)
 | 
			
		||||
    - WEBUI: Correctly set save path in RSS rules (glassez)
 | 
			
		||||
    - WEBUI: Allow to request torrents count via WebAPI (glassez)
 | 
			
		||||
    - WEBUI: Improve performance of getting torrent numbers via WebAPI (Chocobo1)
 | 
			
		||||
    - WEBUI: Improve free disk space checking for WebAPI (glassez)
 | 
			
		||||
    - WINDOWS: NSIS: Fixed typo in the installer's hungarian translation (MartinKing01)
 | 
			
		||||
    - LINUX: Fix invisible tray icon with Qt5 in Linux (thalieht)
 | 
			
		||||
    - MACOS: Remove "Physical memory (RAM) usage limit" option (Chocobo1)
 | 
			
		||||
 | 
			
		||||
Sun Oct 22nd 2023 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.6.0
 | 
			
		||||
    - FEATURE: Add (experimental) I2P support (glassez)
 | 
			
		||||
    - FEATURE: Provide UI editor for the default theme (glassez)
 | 
			
		||||
    - FEATURE: Various UI theming improvements (glassez)
 | 
			
		||||
    - FEATURE: Implement torrent tags editing dialog (glassez)
 | 
			
		||||
    - FEATURE: Revamp "Watched folder options" and "Automated RSS downloader" dialog (glassez)
 | 
			
		||||
    - FEATURE: Allow to use another icons in dark mode (glassez)
 | 
			
		||||
    - FEATURE: Allow to add new torrents to queue top (glassez)
 | 
			
		||||
    - FEATURE: Allow to filter torrent list by save path (Tom)
 | 
			
		||||
    - FEATURE: Expose 'socket send/receive buffer size' options (Chocobo1)
 | 
			
		||||
    - FEATURE: Expose 'max torrent file size' setting (Chocobo1)
 | 
			
		||||
    - FEATURE: Expose 'bdecode limits' settings (Chocobo1)
 | 
			
		||||
    - FEATURE: Add options to adjust behavior of merging trackers to existing torrent (glassez)
 | 
			
		||||
    - FEATURE: Add option to stop seeding when torrent has been inactive (Christopher)
 | 
			
		||||
    - FEATURE: Allow to use proxy per subsystem (glassez)
 | 
			
		||||
    - FEATURE: Expand the scope of "Proxy hostname lookup" option (glassez)
 | 
			
		||||
    - FEATURE: Add shortcut for "Ban peer permanently" function (Luka Čelebić)
 | 
			
		||||
    - FEATURE: Add option to auto hide zero status filters (glassez)
 | 
			
		||||
    - FEATURE: Allow to disable confirmation of Pause/Resume All (glassez)
 | 
			
		||||
    - FEATURE: Add alternative shortcut CTRL+E for CTRL+F (Luka Čelebić)
 | 
			
		||||
    - FEATURE: Show filtered port numbers in logs (Hanabishi)
 | 
			
		||||
    - FEATURE: Add button to copy library versions to clipboard (Chocobo1)
 | 
			
		||||
    - BUGFIX: Ensure ongoing storage moving job will be completed when shutting down (Chocobo1)
 | 
			
		||||
    - BUGFIX: Refactored many areas to call non UI blocking code (glassez)
 | 
			
		||||
    - BUGFIX: Various improvements to the SQLite backend (glassez)
 | 
			
		||||
    - BUGFIX: Improve startup window state handling (glassez)
 | 
			
		||||
    - BUGFIX: Use tray icon from system theme only if option is set (glassez)
 | 
			
		||||
    - BUGFIX: Inhibit system sleep while torrents are moving (Sentox6)
 | 
			
		||||
    - BUGFIX: Use hostname instead of domain name in tracker filter list (tearfur)
 | 
			
		||||
    - BUGFIX: Visually validate input path in torrent creator dialog (Chocobo1)
 | 
			
		||||
    - BUGFIX: Disable symlink resolving in Torrent creator (Ignat Loskutov)
 | 
			
		||||
    - BUGFIX: Change default value for `file pool size` and `stop tracker timeout` settings (stalkerok)
 | 
			
		||||
    - BUGFIX: Log when duplicate torrents are being added (glassez)
 | 
			
		||||
    - BUGFIX: Inhibit suspend instead of screen idle (axet)
 | 
			
		||||
    - BUGFIX: Ensure file name is valid when exporting torrents (glassez)
 | 
			
		||||
    - BUGFIX: Open "Save path" if torrent has no metadata (Xu Chao)
 | 
			
		||||
    - BUGFIX: Prevent torrent starting unexpectedly edge case with magnet (Xu Chao)
 | 
			
		||||
    - BUGFIX: Better ergonomics of the "Add new torrent" dialog (Xu Chao, glassez)
 | 
			
		||||
    - WEBUI: Add log viewer (brvphoenix)
 | 
			
		||||
    - WEBUI: WebAPI: Allow to specify session cookie name (glassez)
 | 
			
		||||
    - WEBUI: Improve sync API performance (glassez)
 | 
			
		||||
    - WEBUI: Add filelog settings (brvphoenix)
 | 
			
		||||
    - WEBUI: Add multi-file renaming (loligans)
 | 
			
		||||
    - WEBUI: Add "Add to top of queue" option (thalieht)
 | 
			
		||||
    - WEBUI: Implement subcategories (Bartu Özen)
 | 
			
		||||
    - WEBUI: Set "SameSite=None" if CSRF Protection is disabled (七海千秋)
 | 
			
		||||
    - WEBUI: Show only hosts in tracker filter list (ttys3)
 | 
			
		||||
    - WEBUI: Set Connection status and Speed limits tooltips (Raymond Ha)
 | 
			
		||||
    - WEBUI: set Cross Origin Opener Policy to `same-origin` (Chocobo1)
 | 
			
		||||
    - WEBUI: Fix response for HTTP HEAD method (Chocobo1)
 | 
			
		||||
    - WEBUI: Preserve the network interfaces when connection is down (Fabricio Silva)
 | 
			
		||||
    - WEBUI: Add "Add Tags" field for RSS rules (Matic Babnik)
 | 
			
		||||
    - WEBUI: Fix missing error icon (Trim21)
 | 
			
		||||
    - RSS: Add "Rename rule" button to RSS Downloader (BallsOfSpaghetti)
 | 
			
		||||
    - RSS: Allow to edit RSS feed URL (glassez)
 | 
			
		||||
    - RSS: Allow to assign priority to RSS download rule (glassez)
 | 
			
		||||
    - SEARCH: Use python isolate mode (Chocobo1)
 | 
			
		||||
    - SEARCH: Bump python version minimum requirement to 3.7.0 (Chocobo1)
 | 
			
		||||
    - OTHER: Enable DBUS cmake option on FreeBSD (yuri@FreeBSD)
 | 
			
		||||
    - OTHER: Numerous code improvements and refactorings (glassez, Chocobo1)
 | 
			
		||||
 | 
			
		||||
Unreleased - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.0
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								INSTALL
									
									
									
									
									
								
							@@ -5,7 +5,7 @@ qBittorrent - A BitTorrent client in C++ / Qt
 | 
			
		||||
 | 
			
		||||
  - Boost >= 1.71
 | 
			
		||||
 | 
			
		||||
  - libtorrent-rasterbar 1.2.19 - 1.2.x || 2.0.9 - 2.0.x
 | 
			
		||||
  - libtorrent-rasterbar 1.2.18 - 1.2.x || 2.0.8 - 2.0.x
 | 
			
		||||
      * By Arvid Norberg, https://www.libtorrent.org/
 | 
			
		||||
      * Be careful: another library (the one used by rTorrent) uses a similar name
 | 
			
		||||
 | 
			
		||||
@@ -18,7 +18,7 @@ qBittorrent - A BitTorrent client in C++ / Qt
 | 
			
		||||
  - pkg-config *
 | 
			
		||||
      * Compile-time only on *nix systems
 | 
			
		||||
 | 
			
		||||
  - Python >= 3.7.0
 | 
			
		||||
  - Python >= 3.5.0
 | 
			
		||||
      * Optional, run-time only
 | 
			
		||||
      * Used by the bundled search engine
 | 
			
		||||
 | 
			
		||||
@@ -43,7 +43,7 @@ Please ensure you are building with an officially supported configuration when r
 | 
			
		||||
  will install and execute qBittorrent.
 | 
			
		||||
 | 
			
		||||
DOCUMENTATION:
 | 
			
		||||
Please note that there is a "Compilation" section at https://wiki.qbittorrent.org.
 | 
			
		||||
Please note that there is a "Compilation" section at http://wiki.qbittorrent.org.
 | 
			
		||||
 | 
			
		||||
------------------------------------------
 | 
			
		||||
sledgehammer999 <sledgehammer999@qbittorrent.org>
 | 
			
		||||
 
 | 
			
		||||
@@ -37,13 +37,13 @@ For more information please visit:
 | 
			
		||||
https://www.qbittorrent.org
 | 
			
		||||
 | 
			
		||||
or our wiki here:
 | 
			
		||||
https://wiki.qbittorrent.org
 | 
			
		||||
http://wiki.qbittorrent.org
 | 
			
		||||
 | 
			
		||||
Use the forum for troubleshooting before reporting bugs:
 | 
			
		||||
https://forum.qbittorrent.org
 | 
			
		||||
http://forum.qbittorrent.org
 | 
			
		||||
 | 
			
		||||
Please report any bug (or feature request) to:
 | 
			
		||||
https://bugs.qbittorrent.org
 | 
			
		||||
http://bugs.qbittorrent.org
 | 
			
		||||
 | 
			
		||||
Official IRC channel:
 | 
			
		||||
[#qbittorrent on irc.libera.chat](ircs://irc.libera.chat:6697/qbittorrent)
 | 
			
		||||
 
 | 
			
		||||
@@ -101,10 +101,6 @@ if (MSVC)
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (DBUS)
 | 
			
		||||
    target_compile_definitions(qbt_common_cfg INTERFACE QBT_USES_DBUS)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (LibtorrentRasterbar_VERSION VERSION_GREATER_EQUAL ${minLibtorrentVersion})
 | 
			
		||||
    target_compile_definitions(qbt_common_cfg INTERFACE QBT_USES_LIBTORRENT2)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										86
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										86
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
# Guess values for system-dependent variables and create Makefiles.
 | 
			
		||||
# Generated by GNU Autoconf 2.71 for qbittorrent v4.6.5.
 | 
			
		||||
# Generated by GNU Autoconf 2.71 for qbittorrent v4.5.2.
 | 
			
		||||
#
 | 
			
		||||
# Report bugs to <bugs.qbittorrent.org>.
 | 
			
		||||
#
 | 
			
		||||
@@ -611,8 +611,8 @@ MAKEFLAGS=
 | 
			
		||||
# Identity of this package.
 | 
			
		||||
PACKAGE_NAME='qbittorrent'
 | 
			
		||||
PACKAGE_TARNAME='qbittorrent'
 | 
			
		||||
PACKAGE_VERSION='v4.6.5'
 | 
			
		||||
PACKAGE_STRING='qbittorrent v4.6.5'
 | 
			
		||||
PACKAGE_VERSION='v4.5.2'
 | 
			
		||||
PACKAGE_STRING='qbittorrent v4.5.2'
 | 
			
		||||
PACKAGE_BUGREPORT='bugs.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.
 | 
			
		||||
  # This message is too long to be a string in the A/UX 3.1 sh.
 | 
			
		||||
  cat <<_ACEOF
 | 
			
		||||
\`configure' configures qbittorrent v4.6.5 to adapt to many kinds of systems.
 | 
			
		||||
\`configure' configures qbittorrent v4.5.2 to adapt to many kinds of systems.
 | 
			
		||||
 | 
			
		||||
Usage: $0 [OPTION]... [VAR=VALUE]...
 | 
			
		||||
 | 
			
		||||
@@ -1400,7 +1400,7 @@ fi
 | 
			
		||||
 | 
			
		||||
if test -n "$ac_init_help"; then
 | 
			
		||||
  case $ac_init_help in
 | 
			
		||||
     short | recursive ) echo "Configuration of qbittorrent v4.6.5:";;
 | 
			
		||||
     short | recursive ) echo "Configuration of qbittorrent v4.5.2:";;
 | 
			
		||||
   esac
 | 
			
		||||
  cat <<\_ACEOF
 | 
			
		||||
 | 
			
		||||
@@ -1533,7 +1533,7 @@ fi
 | 
			
		||||
test -n "$ac_init_help" && exit $ac_status
 | 
			
		||||
if $ac_init_version; then
 | 
			
		||||
  cat <<\_ACEOF
 | 
			
		||||
qbittorrent configure v4.6.5
 | 
			
		||||
qbittorrent configure v4.5.2
 | 
			
		||||
generated by GNU Autoconf 2.71
 | 
			
		||||
 | 
			
		||||
Copyright (C) 2021 Free Software Foundation, Inc.
 | 
			
		||||
@@ -1648,7 +1648,7 @@ cat >config.log <<_ACEOF
 | 
			
		||||
This file contains any messages produced by compilers while
 | 
			
		||||
running configure, to aid debugging if configure makes a mistake.
 | 
			
		||||
 | 
			
		||||
It was created by qbittorrent $as_me v4.6.5, which was
 | 
			
		||||
It was created by qbittorrent $as_me v4.5.2, which was
 | 
			
		||||
generated by GNU Autoconf 2.71.  Invocation command line was
 | 
			
		||||
 | 
			
		||||
  $ $0$ac_configure_args_raw
 | 
			
		||||
@@ -4779,7 +4779,7 @@ fi
 | 
			
		||||
 | 
			
		||||
# Define the identity of the package.
 | 
			
		||||
 PACKAGE='qbittorrent'
 | 
			
		||||
 VERSION='v4.6.5'
 | 
			
		||||
 VERSION='v4.5.2'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
 | 
			
		||||
@@ -5649,7 +5649,7 @@ fi
 | 
			
		||||
then :
 | 
			
		||||
  as_fn_error $? "Could not find QtDBus" "$LINENO" 5
 | 
			
		||||
else $as_nop
 | 
			
		||||
  QBT_ADD_CONFIG="$QBT_ADD_CONFIG dbus" QBT_ADD_DEFINES="$QBT_ADD_DEFINES QBT_USES_DBUS"
 | 
			
		||||
  QBT_ADD_CONFIG="$QBT_ADD_CONFIG dbus"
 | 
			
		||||
 | 
			
		||||
fi ;; #(
 | 
			
		||||
  "xno") :
 | 
			
		||||
@@ -6024,19 +6024,19 @@ LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pkg_failed=no
 | 
			
		||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 2.0.9" >&5
 | 
			
		||||
printf %s "checking for libtorrent-rasterbar >= 2.0.9... " >&6; }
 | 
			
		||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 2.0.8" >&5
 | 
			
		||||
printf %s "checking for libtorrent-rasterbar >= 2.0.8... " >&6; }
 | 
			
		||||
 | 
			
		||||
if test -n "$libtorrent_CFLAGS"; then
 | 
			
		||||
    pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
 | 
			
		||||
 elif test -n "$PKG_CONFIG"; then
 | 
			
		||||
    if test -n "$PKG_CONFIG" && \
 | 
			
		||||
    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 2.0.9\""; } >&5
 | 
			
		||||
  ($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 2.0.9") 2>&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.8") 2>&5
 | 
			
		||||
  ac_status=$?
 | 
			
		||||
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 | 
			
		||||
  test $ac_status = 0; }; then
 | 
			
		||||
  pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 2.0.9" 2>/dev/null`
 | 
			
		||||
  pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 2.0.8" 2>/dev/null`
 | 
			
		||||
		      test "x$?" != "x0" && pkg_failed=yes
 | 
			
		||||
else
 | 
			
		||||
  pkg_failed=yes
 | 
			
		||||
@@ -6048,12 +6048,12 @@ if test -n "$libtorrent_LIBS"; then
 | 
			
		||||
    pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
 | 
			
		||||
 elif test -n "$PKG_CONFIG"; then
 | 
			
		||||
    if test -n "$PKG_CONFIG" && \
 | 
			
		||||
    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 2.0.9\""; } >&5
 | 
			
		||||
  ($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 2.0.9") 2>&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.8") 2>&5
 | 
			
		||||
  ac_status=$?
 | 
			
		||||
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 | 
			
		||||
  test $ac_status = 0; }; then
 | 
			
		||||
  pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 2.0.9" 2>/dev/null`
 | 
			
		||||
  pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 2.0.8" 2>/dev/null`
 | 
			
		||||
		      test "x$?" != "x0" && pkg_failed=yes
 | 
			
		||||
else
 | 
			
		||||
  pkg_failed=yes
 | 
			
		||||
@@ -6074,28 +6074,28 @@ else
 | 
			
		||||
        _pkg_short_errors_supported=no
 | 
			
		||||
fi
 | 
			
		||||
        if test $_pkg_short_errors_supported = yes; then
 | 
			
		||||
	        libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 2.0.9" 2>&1`
 | 
			
		||||
	        libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 2.0.8" 2>&1`
 | 
			
		||||
        else
 | 
			
		||||
	        libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 2.0.9" 2>&1`
 | 
			
		||||
	        libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 2.0.8" 2>&1`
 | 
			
		||||
        fi
 | 
			
		||||
	# Put the nasty error message in config.log where it belongs
 | 
			
		||||
	echo "$libtorrent_PKG_ERRORS" >&5
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pkg_failed=no
 | 
			
		||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2" >&5
 | 
			
		||||
printf %s "checking for libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2... " >&6; }
 | 
			
		||||
{ 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.18 libtorrent-rasterbar < 2... " >&6; }
 | 
			
		||||
 | 
			
		||||
if test -n "$libtorrent_CFLAGS"; then
 | 
			
		||||
    pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
 | 
			
		||||
 elif test -n "$PKG_CONFIG"; then
 | 
			
		||||
    if test -n "$PKG_CONFIG" && \
 | 
			
		||||
    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2\""; } >&5
 | 
			
		||||
  ($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2") 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.18 libtorrent-rasterbar < 2") 2>&5
 | 
			
		||||
  ac_status=$?
 | 
			
		||||
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 | 
			
		||||
  test $ac_status = 0; }; then
 | 
			
		||||
  pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
else
 | 
			
		||||
  pkg_failed=yes
 | 
			
		||||
@@ -6107,12 +6107,12 @@ if test -n "$libtorrent_LIBS"; then
 | 
			
		||||
    pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
 | 
			
		||||
 elif test -n "$PKG_CONFIG"; then
 | 
			
		||||
    if test -n "$PKG_CONFIG" && \
 | 
			
		||||
    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2\""; } >&5
 | 
			
		||||
  ($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2") 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.18 libtorrent-rasterbar < 2") 2>&5
 | 
			
		||||
  ac_status=$?
 | 
			
		||||
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 | 
			
		||||
  test $ac_status = 0; }; then
 | 
			
		||||
  pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
else
 | 
			
		||||
  pkg_failed=yes
 | 
			
		||||
@@ -6133,14 +6133,14 @@ else
 | 
			
		||||
        _pkg_short_errors_supported=no
 | 
			
		||||
fi
 | 
			
		||||
        if test $_pkg_short_errors_supported = yes; then
 | 
			
		||||
	        libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
	        libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
	# Put the nasty error message in config.log where it belongs
 | 
			
		||||
	echo "$libtorrent_PKG_ERRORS" >&5
 | 
			
		||||
 | 
			
		||||
	as_fn_error $? "Package requirements (libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
 | 
			
		||||
@@ -6177,19 +6177,19 @@ elif test $pkg_failed = untried; then
 | 
			
		||||
printf "%s\n" "no" >&6; }
 | 
			
		||||
 | 
			
		||||
pkg_failed=no
 | 
			
		||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2" >&5
 | 
			
		||||
printf %s "checking for libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2... " >&6; }
 | 
			
		||||
{ 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.18 libtorrent-rasterbar < 2... " >&6; }
 | 
			
		||||
 | 
			
		||||
if test -n "$libtorrent_CFLAGS"; then
 | 
			
		||||
    pkg_cv_libtorrent_CFLAGS="$libtorrent_CFLAGS"
 | 
			
		||||
 elif test -n "$PKG_CONFIG"; then
 | 
			
		||||
    if test -n "$PKG_CONFIG" && \
 | 
			
		||||
    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2\""; } >&5
 | 
			
		||||
  ($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2") 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.18 libtorrent-rasterbar < 2") 2>&5
 | 
			
		||||
  ac_status=$?
 | 
			
		||||
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 | 
			
		||||
  test $ac_status = 0; }; then
 | 
			
		||||
  pkg_cv_libtorrent_CFLAGS=`$PKG_CONFIG --cflags "libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
else
 | 
			
		||||
  pkg_failed=yes
 | 
			
		||||
@@ -6201,12 +6201,12 @@ if test -n "$libtorrent_LIBS"; then
 | 
			
		||||
    pkg_cv_libtorrent_LIBS="$libtorrent_LIBS"
 | 
			
		||||
 elif test -n "$PKG_CONFIG"; then
 | 
			
		||||
    if test -n "$PKG_CONFIG" && \
 | 
			
		||||
    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2\""; } >&5
 | 
			
		||||
  ($PKG_CONFIG --exists --print-errors "libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2") 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.18 libtorrent-rasterbar < 2") 2>&5
 | 
			
		||||
  ac_status=$?
 | 
			
		||||
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 | 
			
		||||
  test $ac_status = 0; }; then
 | 
			
		||||
  pkg_cv_libtorrent_LIBS=`$PKG_CONFIG --libs "libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
else
 | 
			
		||||
  pkg_failed=yes
 | 
			
		||||
@@ -6227,14 +6227,14 @@ else
 | 
			
		||||
        _pkg_short_errors_supported=no
 | 
			
		||||
fi
 | 
			
		||||
        if test $_pkg_short_errors_supported = yes; then
 | 
			
		||||
	        libtorrent_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
	        libtorrent_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
	# Put the nasty error message in config.log where it belongs
 | 
			
		||||
	echo "$libtorrent_PKG_ERRORS" >&5
 | 
			
		||||
 | 
			
		||||
	as_fn_error $? "Package requirements (libtorrent-rasterbar >= 1.2.19 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
 | 
			
		||||
 | 
			
		||||
@@ -7237,7 +7237,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 | 
			
		||||
# report actual input values of CONFIG_FILES etc. instead of their
 | 
			
		||||
# values after options handling.
 | 
			
		||||
ac_log="
 | 
			
		||||
This file was extended by qbittorrent $as_me v4.6.5, which was
 | 
			
		||||
This file was extended by qbittorrent $as_me v4.5.2, which was
 | 
			
		||||
generated by GNU Autoconf 2.71.  Invocation command line was
 | 
			
		||||
 | 
			
		||||
  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
 | 
			
		||||
ac_cs_config='$ac_cs_config_escaped'
 | 
			
		||||
ac_cs_version="\\
 | 
			
		||||
qbittorrent config.status v4.6.5
 | 
			
		||||
qbittorrent config.status v4.5.2
 | 
			
		||||
configured by $0, generated by GNU Autoconf 2.71,
 | 
			
		||||
  with options \\"\$ac_cs_config\\"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
AC_INIT([qbittorrent], [v4.6.5], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
 | 
			
		||||
AC_INIT([qbittorrent], [v4.5.2], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
 | 
			
		||||
AC_CONFIG_AUX_DIR([build-aux])
 | 
			
		||||
AC_CONFIG_MACRO_DIR([m4])
 | 
			
		||||
: ${CFLAGS=""}
 | 
			
		||||
@@ -165,7 +165,7 @@ AS_CASE(["x$enable_qt_dbus"],
 | 
			
		||||
               FIND_QTDBUS()
 | 
			
		||||
               AS_IF([test "x$HAVE_QTDBUS" = "xfalse"],
 | 
			
		||||
                     [AC_MSG_ERROR([Could not find QtDBus])],
 | 
			
		||||
                     [QBT_ADD_CONFIG="$QBT_ADD_CONFIG dbus" QBT_ADD_DEFINES="$QBT_ADD_DEFINES QBT_USES_DBUS"]
 | 
			
		||||
                     [QBT_ADD_CONFIG="$QBT_ADD_CONFIG dbus"]
 | 
			
		||||
                    )],
 | 
			
		||||
        ["xno"],
 | 
			
		||||
              [AC_MSG_RESULT([no])
 | 
			
		||||
@@ -188,10 +188,10 @@ m4_define([DETECT_BOOST_VERSION_PROGRAM],
 | 
			
		||||
                     [[(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))]));]])])
 | 
			
		||||
 | 
			
		||||
PKG_CHECK_MODULES(libtorrent,
 | 
			
		||||
                  [libtorrent-rasterbar >= 2.0.9],
 | 
			
		||||
                  [libtorrent-rasterbar >= 2.0.8],
 | 
			
		||||
                  [CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS" QBT_ADD_DEFINES="$QBT_ADD_DEFINES QBT_USES_LIBTORRENT2"],
 | 
			
		||||
                  [PKG_CHECK_MODULES(libtorrent,
 | 
			
		||||
                                     [libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2],
 | 
			
		||||
                                     [libtorrent-rasterbar >= 1.2.18 libtorrent-rasterbar < 2],
 | 
			
		||||
                                     [CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS"])])
 | 
			
		||||
 | 
			
		||||
PKG_CHECK_MODULES(openssl,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								dist/mac/Info.plist
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/mac/Info.plist
									
									
									
									
										vendored
									
									
								
							@@ -55,7 +55,7 @@
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>APPL</string>
 | 
			
		||||
	<key>CFBundleShortVersionString</key>
 | 
			
		||||
	<string>4.6.5</string>
 | 
			
		||||
	<string>4.5.2</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>${EXECUTABLE_NAME}</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
@@ -67,7 +67,7 @@
 | 
			
		||||
	<key>NSAppleScriptEnabled</key>
 | 
			
		||||
	<string>YES</string>
 | 
			
		||||
	<key>NSHumanReadableCopyright</key>
 | 
			
		||||
	<string>Copyright © 2006-2024 The qBittorrent project</string>
 | 
			
		||||
	<string>Copyright © 2006-2022 The qBittorrent project</string>
 | 
			
		||||
	<key>UTExportedTypeDeclarations</key>
 | 
			
		||||
	<array>
 | 
			
		||||
		<dict>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								dist/unix/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/unix/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							@@ -35,7 +35,7 @@ if (GUI)
 | 
			
		||||
        COMPONENT data
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    install(FILES org.qbittorrent.qBittorrent.metainfo.xml
 | 
			
		||||
    install(FILES org.qbittorrent.qBittorrent.appdata.xml
 | 
			
		||||
        DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo/
 | 
			
		||||
        COMPONENT data
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!-- Copyright 2014 sledgehammer999 <sledgehammer999@qbittorrent.org> -->
 | 
			
		||||
<component type="desktop-application">
 | 
			
		||||
<component type="desktop">
 | 
			
		||||
  <id>org.qbittorrent.qBittorrent</id>
 | 
			
		||||
  <metadata_license>CC0-1.0</metadata_license>
 | 
			
		||||
  <project_license>GPL-3.0-or-later and OpenSSL</project_license>
 | 
			
		||||
@@ -14,12 +14,33 @@
 | 
			
		||||
    </p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li>Polished µTorrent-like User Interface</li>
 | 
			
		||||
      <li>Well-integrated and extensible Search Engine</li>
 | 
			
		||||
      <li>
 | 
			
		||||
        Well-integrated and extensible Search Engine
 | 
			
		||||
        <ul>
 | 
			
		||||
          <li>Simultaneous search in many Torrent search sites</li>
 | 
			
		||||
          <li>Category-specific search requests (e.g. Books, Music, Software)</li>
 | 
			
		||||
        </ul>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>RSS feed support with advanced download filters (incl. regex)</li>
 | 
			
		||||
      <li>Many Bittorrent extensions supported</li>
 | 
			
		||||
      <li>
 | 
			
		||||
        Many Bittorrent extensions supported:
 | 
			
		||||
        <ul>
 | 
			
		||||
          <li>Magnet links</li>
 | 
			
		||||
          <li>Distributed hash table (DHT), peer exchange protocol (PEX), local peer discovery (LSD)</li>
 | 
			
		||||
          <li>Private torrents</li>
 | 
			
		||||
          <li>Encrypted connections</li>
 | 
			
		||||
          <li>and many more...</li>
 | 
			
		||||
        </ul>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>Remote control through Web user interface, written with AJAX</li>
 | 
			
		||||
      <li>Sequential downloading (Download in order)</li>
 | 
			
		||||
      <li>Advanced control over torrents, trackers and peers</li>
 | 
			
		||||
      <li>
 | 
			
		||||
        Advanced control over torrents, trackers and peers
 | 
			
		||||
        <ul>
 | 
			
		||||
          <li>Torrents queueing and prioritizing</li>
 | 
			
		||||
          <li>Torrent content selection and prioritizing</li>
 | 
			
		||||
        </ul>
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>Bandwidth scheduler</li>
 | 
			
		||||
      <li>Torrent creation tool</li>
 | 
			
		||||
      <li>IP Filtering (eMule & PeerGuardian format compatible)</li>
 | 
			
		||||
@@ -32,36 +53,27 @@
 | 
			
		||||
  <launchable type="desktop-id">org.qbittorrent.qBittorrent.desktop</launchable>
 | 
			
		||||
  <screenshots>
 | 
			
		||||
    <screenshot type="default">
 | 
			
		||||
      <caption>Main window (General tab collapsed)</caption>
 | 
			
		||||
      <image>https://raw.githubusercontent.com/qbittorrent/qBittorrent-website/2741f2a90854604e268c6bba9e6859aad0103583/src/img/screenshots/linux/1.webp</image>
 | 
			
		||||
      <image height="675" width="1200">https://alexpl.fedorapeople.org/AppData/qbittorrent/screens/qbittorrent_01.png</image>
 | 
			
		||||
    </screenshot>
 | 
			
		||||
    <screenshot>
 | 
			
		||||
      <caption>Main window (General tab expanded)</caption>
 | 
			
		||||
      <image>https://raw.githubusercontent.com/qbittorrent/qBittorrent-website/2741f2a90854604e268c6bba9e6859aad0103583/src/img/screenshots/linux/2.webp</image>
 | 
			
		||||
      <image height="675" width="1200">https://alexpl.fedorapeople.org/AppData/qbittorrent/screens/qbittorrent_02.png</image>
 | 
			
		||||
    </screenshot>
 | 
			
		||||
    <screenshot>
 | 
			
		||||
      <caption>Options dialog</caption>
 | 
			
		||||
      <image>https://raw.githubusercontent.com/qbittorrent/qBittorrent-website/2741f2a90854604e268c6bba9e6859aad0103583/src/img/screenshots/linux/3.webp</image>
 | 
			
		||||
      <image height="675" width="1200">https://alexpl.fedorapeople.org/AppData/qbittorrent/screens/qbittorrent_03.png</image>
 | 
			
		||||
    </screenshot>
 | 
			
		||||
    <screenshot>
 | 
			
		||||
      <caption>Search engine</caption>
 | 
			
		||||
      <image>https://raw.githubusercontent.com/qbittorrent/qBittorrent-website/2741f2a90854604e268c6bba9e6859aad0103583/src/img/screenshots/linux/4.webp</image>
 | 
			
		||||
      <image height="675" width="1200">https://alexpl.fedorapeople.org/AppData/qbittorrent/screens/qbittorrent_04.png</image>
 | 
			
		||||
    </screenshot>
 | 
			
		||||
  </screenshots>
 | 
			
		||||
  <update_contact>sledgehammer999@qbittorrent.org</update_contact>
 | 
			
		||||
  <developer id="org.qbittorrent">
 | 
			
		||||
    <name>The qBittorrent Project</name>
 | 
			
		||||
  </developer>
 | 
			
		||||
  <developer_name>The qBittorrent Project</developer_name>
 | 
			
		||||
  <url type="homepage">https://www.qbittorrent.org/</url>
 | 
			
		||||
  <url type="bugtracker">https://bugs.qbittorrent.org/</url>
 | 
			
		||||
  <url type="faq">https://wiki.qbittorrent.org/Frequently-Asked-Questions</url>
 | 
			
		||||
  <url type="help">https://forum.qbittorrent.org/</url>
 | 
			
		||||
  <url type="bugtracker">http://bugs.qbittorrent.org/</url>
 | 
			
		||||
  <url type="donation">https://www.qbittorrent.org/donate</url>
 | 
			
		||||
  <url type="translate">https://wiki.qbittorrent.org/How-to-translate-qBittorrent</url>
 | 
			
		||||
  <url type="vcs-browser">https://github.com/qbittorrent/qBittorrent</url>
 | 
			
		||||
  <url type="contribute">https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md</url>
 | 
			
		||||
  <url type="help">http://forum.qbittorrent.org/</url>
 | 
			
		||||
  <url type="translate">https://github.com/qbittorrent/qBittorrent/wiki/How-to-translate-qBittorrent</url>
 | 
			
		||||
  <content_rating type="oars-1.1"/>
 | 
			
		||||
  <releases>
 | 
			
		||||
    <release version="4.6.5" date="2024-05-26"/>
 | 
			
		||||
    <release version="4.5.2" date="2023-02-28"/>
 | 
			
		||||
  </releases>
 | 
			
		||||
</component>
 | 
			
		||||
							
								
								
									
										144
									
								
								dist/unix/org.qbittorrent.qBittorrent.desktop
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										144
									
								
								dist/unix/org.qbittorrent.qBittorrent.desktop
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										4
									
								
								dist/windows/config.nsi
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/windows/config.nsi
									
									
									
									
										vendored
									
									
								
							@@ -25,7 +25,7 @@
 | 
			
		||||
; 4.5.1.3 -> good
 | 
			
		||||
; 4.5.1.3.2 -> bad
 | 
			
		||||
; 4.5.0beta -> bad
 | 
			
		||||
!define /ifndef QBT_VERSION "4.6.5"
 | 
			
		||||
!define /ifndef QBT_VERSION "4.5.2"
 | 
			
		||||
 | 
			
		||||
; Option that controls the installer's window name
 | 
			
		||||
; If set, its value will be used like this:
 | 
			
		||||
@@ -112,7 +112,7 @@ OutFile "qbittorrent_${QBT_INSTALLER_FILENAME}_setup.exe"
 | 
			
		||||
;Installer Version Information
 | 
			
		||||
VIAddVersionKey "ProductName" "qBittorrent"
 | 
			
		||||
VIAddVersionKey "CompanyName" "The qBittorrent project"
 | 
			
		||||
VIAddVersionKey "LegalCopyright" "Copyright ©2006-2024 The qBittorrent project"
 | 
			
		||||
VIAddVersionKey "LegalCopyright" "Copyright ©2006-2022 The qBittorrent project"
 | 
			
		||||
VIAddVersionKey "FileDescription" "qBittorrent - A Bittorrent Client"
 | 
			
		||||
VIAddVersionKey "FileVersion" "${QBT_VERSION}"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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 += 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')
 | 
			
		||||
 | 
			
		||||
    filtered = filter(isNotStub, tmp_translations)
 | 
			
		||||
    for file in filtered:
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user