diff --git a/.CI/chatterino-installer.iss b/.CI/chatterino-installer.iss index 34056571e79..7cbd84b4597 100644 --- a/.CI/chatterino-installer.iss +++ b/.CI/chatterino-installer.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "Chatterino" -#define MyAppVersion "2.4.5" +#define MyAppVersion "2.4.6" #define MyAppPublisher "Chatterino Team" #define MyAppURL "https://www.chatterino.com" #define MyAppExeName "chatterino.exe" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8a2c46d611f..c87f1ec20a3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,6 +5,7 @@ on: push: branches: - master + - "bugfix-release/*" pull_request: workflow_dispatch: merge_group: @@ -14,7 +15,7 @@ concurrency: cancel-in-progress: true env: - C2_ENABLE_LTO: ${{ github.ref == 'refs/heads/master' }} + C2_ENABLE_LTO: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/bugfix-release/') }} CHATTERINO_REQUIRE_CLEAN_GIT: On C2_BUILD_WITH_QT6: Off # Last known good conan version @@ -27,13 +28,6 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [windows-latest, macos-latest] - qt-version: [5.15.2, 6.5.0] - force-lto: [false] - plugins: [false] - skip-artifact: [false] - skip-crashpad: [false] - clang-tidy-review: [false] include: # Ubuntu 20.04, Qt 5.12 - os: ubuntu-20.04 @@ -59,6 +53,22 @@ jobs: skip-artifact: false skip-crashpad: false clang-tidy-review: false + # macOS + - os: macos-latest + qt-version: 5.15.2 + force-lto: false + plugins: false + skip-artifact: false + skip-crashpad: false + clang-tidy-review: false + # Windows + - os: windows-latest + qt-version: 6.5.0 + force-lto: false + plugins: false + skip-artifact: false + skip-crashpad: false + clang-tidy-review: false # Test for disabling crashpad on Windows - os: windows-latest qt-version: 5.15.2 @@ -114,6 +124,26 @@ jobs: cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2 version: ${{ matrix.qt-version }} + - name: Install Qt 6.5.3 + if: startsWith(matrix.qt-version, '6.') + uses: jurplel/install-qt-action@v3.3.0 + with: + cache: false + modules: qtimageformats + set-env: false + version: 6.5.3 + extra: --noarchives + + - name: Find Qt 6.5.3 Path + if: startsWith(matrix.qt-version, '6.') && startsWith(matrix.os, 'windows') + shell: pwsh + id: find-good-imageformats + run: | + cd "$Env:RUNNER_WORKSPACE/Qt/6.5.3" + cd (Get-ChildItem)[0].Name + cd plugins/imageformats + echo "PLUGIN_PATH=$(pwd)" | Out-File -Path "$Env:GITHUB_OUTPUT" -Encoding ASCII + - name: Install Qt6 if: startsWith(matrix.qt-version, '6.') uses: jurplel/install-qt-action@v3.3.0 @@ -213,13 +243,24 @@ jobs: cp bin/crashpad/crashpad_handler.exe Chatterino2/crashpad/crashpad_handler.exe 7z a bin/chatterino-Qt-${{ matrix.qt-version }}.pdb.7z bin/chatterino.pdb - - name: Package (windows) + - name: Prepare build dir (windows) if: startsWith(matrix.os, 'windows') run: | cd build windeployqt bin/chatterino.exe --release --no-compiler-runtime --no-translations --no-opengl-sw --dir Chatterino2/ cp bin/chatterino.exe Chatterino2/ echo nightly > Chatterino2/modes + + - name: Fix Qt (windows) + if: startsWith(matrix.qt-version, '6.') && startsWith(matrix.os, 'windows') + working-directory: build + run: | + cp ${{ steps.find-good-imageformats.outputs.PLUGIN_PATH }}/qwebp.dll Chatterino2/imageformats/qwebp.dll + + - name: Package (windows) + if: startsWith(matrix.os, 'windows') + working-directory: build + run: | 7z a chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}.zip Chatterino2/ - name: Upload artifact (Windows - binary) @@ -395,7 +436,7 @@ jobs: create-release: needs: build runs-on: ubuntu-latest - if: (github.event_name == 'push' && github.ref == 'refs/heads/master') + if: (github.event_name == 'push' && (github.ref == 'refs/heads/master')) steps: - uses: actions/checkout@v3 @@ -409,29 +450,17 @@ jobs: path: release-artifacts/ - uses: actions/download-artifact@v3 - name: Windows Qt6.5.0 + name: Windows with: name: chatterino-windows-x86-64-Qt-6.5.0.zip path: release-artifacts/ - uses: actions/download-artifact@v3 - name: Windows Qt6.5.0 symbols + name: Windows symbols with: name: chatterino-windows-x86-64-Qt-6.5.0-symbols.pdb.7z path: release-artifacts/ - - uses: actions/download-artifact@v3 - name: Windows Qt5.15.2 - with: - name: chatterino-windows-x86-64-Qt-5.15.2.zip - path: release-artifacts/ - - - uses: actions/download-artifact@v3 - name: Windows Qt5.15 symbols - with: - name: chatterino-windows-x86-64-Qt-5.15.2-symbols.pdb.7z - path: release-artifacts/ - - uses: actions/download-artifact@v3 name: Linux Qt5.12.12 AppImage with: @@ -466,11 +495,6 @@ jobs: ls -l # Rename the macos build to indicate that it's for macOS 10.15 users mv chatterino-macos-Qt-5.15.2.dmg Chatterino-macOS-10.15.dmg - - # Mark all Qt6 builds as EXPERIMENTAL - mv Chatterino-ubuntu-22.04-x86_64.deb EXPERIMENTAL-Chatterino-ubuntu-22.04-Qt-6.2.4.deb - mv chatterino-windows-x86-64-Qt-6.5.0.zip EXPERIMENTAL-chatterino-windows-x86-64-Qt-6.5.0.zip - mv chatterino-Qt-6.5.0.pdb.7z EXPERIMENTAL-chatterino-Qt-6.5.0.pdb.7z working-directory: release-artifacts shell: bash diff --git a/.github/workflows/create-installer.yml b/.github/workflows/create-installer.yml index cf7bf19e7c6..7b822bb8f5e 100644 --- a/.github/workflows/create-installer.yml +++ b/.github/workflows/create-installer.yml @@ -5,7 +5,9 @@ on: workflows: ["Build"] types: [completed] # make sure this only runs on the default branch - branches: [master] + branches: + - master + - "bugfix-release/*" workflow_dispatch: jobs: @@ -15,9 +17,7 @@ jobs: if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }} strategy: matrix: - qt-version: [5.15.2, 6.5.0] - env: - VARIANT_SUFFIX: ${{ startsWith(matrix.qt-version, '6.') && '.EXPERIMENTAL-Qt6' || '' }} + qt-version: ["6.5.0"] steps: - uses: actions/checkout@v3 with: @@ -28,6 +28,7 @@ jobs: with: workflow: build.yml name: chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}.zip + commit: ${{ github.sha }} path: build/ - name: Unzip @@ -52,5 +53,5 @@ jobs: - name: Upload installer uses: actions/upload-artifact@v3 with: - path: build/${{ steps.build-installer.outputs.C2_INSTALLER_BASE_NAME }}${{ env.VARIANT_SUFFIX }}.exe - name: ${{ steps.build-installer.outputs.C2_INSTALLER_BASE_NAME }}${{ env.VARIANT_SUFFIX }}.exe + path: build/${{ steps.build-installer.outputs.C2_INSTALLER_BASE_NAME }}.exe + name: ${{ steps.build-installer.outputs.C2_INSTALLER_BASE_NAME }}.exe diff --git a/CHANGELOG.md b/CHANGELOG.md index a401a0ffb3a..5aa51d03edd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,10 @@ ## Unversioned +## 2.4.6 + - Minor: Migrate to the new Get Channel Followers Helix endpoint, fixing follower count not showing up in usercards. (#4809) +- Bugfix: Update Qt version, fixing a security issue with webp loading (see https://www.qt.io/blog/two-qt-security-advisorys-gdi-font-engine-webp-image-format) (#4843) - Dev: Temporarily disable High DPI scaling on Qt6 builds on Windows. (#4767) ## 2.4.5 diff --git a/CMakeLists.txt b/CMakeLists.txt index caa3990b4a6..e8eb6c7fde0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/sanitizers-cmake/cmake" ) -project(chatterino VERSION 2.4.5) +project(chatterino VERSION 2.4.6) option(BUILD_APP "Build Chatterino" ON) option(BUILD_TESTS "Build the tests for Chatterino" OFF) diff --git a/resources/com.chatterino.chatterino.appdata.xml b/resources/com.chatterino.chatterino.appdata.xml index 8a9af97d51d..3fa93ebdc10 100644 --- a/resources/com.chatterino.chatterino.appdata.xml +++ b/resources/com.chatterino.chatterino.appdata.xml @@ -32,6 +32,9 @@ chatterino + + https://github.com/Chatterino/chatterino2/releases/tag/v2.4.6 + https://github.com/Chatterino/chatterino2/releases/tag/v2.4.5 diff --git a/src/common/Version.hpp b/src/common/Version.hpp index a9496fe6c7f..5d978b19a88 100644 --- a/src/common/Version.hpp +++ b/src/common/Version.hpp @@ -24,7 +24,7 @@ * - 2.4.0-alpha.2 * - 2.4.0-alpha **/ -#define CHATTERINO_VERSION "2.4.5" +#define CHATTERINO_VERSION "2.4.6" #if defined(Q_OS_WIN) # define CHATTERINO_OS "win"