From 467e36767c79faed85597b7f090f7be4ce70fdeb Mon Sep 17 00:00:00 2001 From: pajlada Date: Sun, 1 Oct 2023 11:19:26 +0200 Subject: [PATCH] Update Nightly to 2.4.6 and get qt6-related-changes from 2.4.6 (#4856) * Update Nightly to 2.4.6 and get qt6-related-changes from 2.4.6 * always enable precompiled headers on windows --- .CI/chatterino-installer.iss | 2 +- .github/workflows/build.yml | 75 ++++++++++++++----- .github/workflows/create-installer.yml | 14 ++-- CHANGELOG.md | 6 ++ CMakeLists.txt | 2 +- .../com.chatterino.chatterino.appdata.xml | 3 + src/common/Version.hpp | 2 +- 7 files changed, 77 insertions(+), 27 deletions(-) diff --git a/.CI/chatterino-installer.iss b/.CI/chatterino-installer.iss index e8e3a872d..2e3edbf52 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 bbc5346fd..2a53b8888 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,6 +5,8 @@ on: push: branches: - master + - "bugfix-release/*" + - "release/*" pull_request: workflow_dispatch: merge_group: @@ -14,7 +16,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/') || startsWith(github.ref, 'refs/heads/release/') }} CHATTERINO_REQUIRE_CLEAN_GIT: On C2_BUILD_WITH_QT6: Off # Last known good conan version @@ -27,13 +29,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,12 +54,28 @@ jobs: skip-artifact: false skip-crashpad: false clang-tidy-review: false - # Test for disabling crashpad on Windows + # 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 + # Windows 7/8 - os: windows-latest qt-version: 5.15.2 force-lto: false plugins: false - skip-artifact: true + skip-artifact: false skip-crashpad: true clang-tidy-review: false @@ -114,6 +125,26 @@ jobs: cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2 version: ${{ matrix.qt-version }} + - name: Install Qt 6.5.3 imageformats + 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 @@ -184,16 +215,13 @@ jobs: - name: Build (Windows) if: startsWith(matrix.os, 'windows') shell: pwsh - env: - # Enable PCH on Windows when crashpad is enabled - C2_WINDOWS_USE_PCH: ${{ matrix.skip-crashpad && 'OFF' || 'ON' }} run: | cd build cmake ` -G"NMake Makefiles" ` -DCMAKE_BUILD_TYPE=RelWithDebInfo ` -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" ` - -DUSE_PRECOMPILED_HEADERS=${{ env.C2_WINDOWS_USE_PCH }} ` + -DUSE_PRECOMPILED_HEADERS=ON ` -DBUILD_WITH_CRASHPAD="$Env:C2_ENABLE_CRASHPAD" ` -DCHATTERINO_LTO="$Env:C2_ENABLE_LTO" ` -DCHATTERINO_PLUGINS="$Env:C2_PLUGINS" ` @@ -213,13 +241,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 Qt6 (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) @@ -467,10 +506,10 @@ jobs: # 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 + + # Mark all Windows Qt5 builds as old + mv chatterino-windows-x86-64-Qt-5.15.2.zip chatterino-windows-old-x86-64-Qt-5.15.2.zip working-directory: release-artifacts shell: bash diff --git a/.github/workflows/create-installer.yml b/.github/workflows/create-installer.yml index 8a189a5cb..588099375 100644 --- a/.github/workflows/create-installer.yml +++ b/.github/workflows/create-installer.yml @@ -5,7 +5,10 @@ on: workflows: ["Build"] types: [completed] # make sure this only runs on the default branch - branches: [master] + branches: + - master + - "bugfix-release/*" + - "release/*" workflow_dispatch: jobs: @@ -15,9 +18,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@v4 with: @@ -28,6 +29,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 +54,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 2852fbc0d..0eb4bf6ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,12 @@ - Dev: Laid the groundwork for advanced input completion strategies. (#4639, #4846) - Dev: Fixed flickering when running with Direct2D on Windows. (#4851) +## 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 - Major: AutoMod term management messages (e.g. testaccount added "noob" as a blocked term on AutoMod.) are now hidden in Streamer Mode if you have the "Hide moderation actions" setting enabled. (#4758) diff --git a/CMakeLists.txt b/CMakeLists.txt index 40f1144f0..f7e71271a 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 8a9af97d5..8efc8c780 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 a9496fe6c..5d978b19a 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"