Skip to content

Conversation

@github-actions
Copy link

@github-actions github-actions bot commented Oct 11, 2024

This automated Pull Request updates the used Qt6 version to version 6.9.1.

This PR was opened by the workflow Bump dependencies (create-prs)

CHANGELOG: Build: Updated bundled Qt6 to version 6.9.1

@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch 5 times, most recently from cf2dc7c to e54a6c6 Compare October 14, 2024 17:48
@ann0see ann0see added this to the Release 3.12.0 milestone Oct 16, 2024
@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from e54a6c6 to 4209297 Compare October 17, 2024 13:54
@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch 3 times, most recently from 4fef397 to 908b7f4 Compare October 29, 2024 13:16
@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from 908b7f4 to 7d6c516 Compare November 1, 2024 22:23
@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from 7d6c516 to 337d5e6 Compare November 11, 2024 12:00
@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch 2 times, most recently from 42fba64 to 3f643c1 Compare November 26, 2024 09:49
@github-actions github-actions bot changed the title Build: Bump Qt6 from 6.7.3 to 6.8.0 (Automated PR) Build: Bump Qt6 from 6.7.3 to 6.8.1 (Automated PR) Dec 5, 2024
@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from 3f643c1 to 60eeada Compare December 5, 2024 21:20
@github-actions
Copy link
Author

github-actions bot commented Dec 5, 2024

PR has been updated for version 6.8.1 by the workflow Bump dependencies (create-prs).

@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch 7 times, most recently from 3262e16 to e3d19a9 Compare December 12, 2024 20:56
@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch 5 times, most recently from a2b5b6c to 42eccc7 Compare December 20, 2024 16:58
@ann0see
Copy link
Member

ann0see commented Dec 23, 2024

I'd assume that this breaks on every Qt6 build.

@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from aee5f0b to 98c9a86 Compare May 7, 2025 16:57
@github-actions github-actions bot changed the title Build: Bump Qt6 from 6.8.1 to 6.9.0 (Automated PR) Build: Bump Qt6 from 6.8.1 to 6.9.1 (Automated PR) Jun 7, 2025
@github-actions
Copy link
Author

github-actions bot commented Jun 7, 2025

PR has been updated for version 6.9.1 by the workflow Bump dependencies (create-prs).

@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from 98c9a86 to 9a92af9 Compare June 7, 2025 08:34
@pljones
Copy link
Collaborator

pljones commented Jun 8, 2025

Still failing -- are we turning on stuff that's not needed for audio?

Undefined symbols for architecture arm64:
  "_av_buffer_create", referenced from:
      QFFmpeg::VideoEncoder::processOne() in libQt6FFmpegMediaPluginImpl.a[arm64][47](qffmpegvideoencoder.cpp.o)
      -[QAVFSampleBufferDelegate captureOutput:didOutputSampleBuffer:fromConnection:] in libQt6FFmpegMediaPluginImpl.a[arm64][53](qavfsamplebufferdelegate.mm.o)

@ann0see
Copy link
Member

ann0see commented Jun 8, 2025

Maybe that's needed. I thought they fixed it on the Qt side...

https://bugreports.qt.io/browse/QTBUG-129651 (?)

@ann0see
Copy link
Member

ann0see commented Jun 8, 2025

Ah: https://codereview.qt-project.org/c/qt/qtmultimedia/+/630015

We might need to add add_ios_ffmpeg_libraries to the CONFIG variable

@pljones
Copy link
Collaborator

pljones commented Jun 9, 2025

OK, having read up a bit I'm convinced we stick with the Qt-preferred approach and use FFmpeg...

Even if we did

export QT_MEDIA_BACKEND=darwin

that wouldn't remove the dependency, just tell the runtime to ignore FFmpeg and use darwin directly.

So yeah, https://doc.qt.io/qt-6/qtmultimedia-apple.html:

CONFIG += add_ios_ffmpeg_libraries

looks like it should do the trick -- although it sounds like that's also a deployment time issue:

FFmpeg binaries from the online installer must be embedded into the application's bundle.

I'm not sure how much it'll help at build time.

@pljones
Copy link
Collaborator

pljones commented Jun 9, 2025

CoPilot took some convincing that it was wrong about this as usual (now out of date documentation being more prevalently referenced in once-correct answers).

It's suggested we'd need to amend autobuild.yml (and ios.sh potentially) to build/cache the ffmpeg libraries for the link stage to work.

@pljones
Copy link
Collaborator

pljones commented Jun 9, 2025

I also asked if there were any existing actions - but none for iOS, according to CoPilot. It's top answer was:

iOS-Specific FFmpeg Build Scripts
There are community-maintained shell scripts and projects for building FFmpeg for iOS (arm64), such as:
- kewlbear/FFmpeg-iOS-build-script
- tanersener/ffmpeg-kit
These are not GitHub Actions per se, but can easily be wrapped in your own workflow step or custom action.

- name: Build FFmpeg for iOS
  run: |
    git clone https://github.com/kewlbear/FFmpeg-iOS-build-script.git
    cd FFmpeg-iOS-build-script
    ./build-ffmpeg.sh

https://github.com/copilot/share/42365326-43c0-8404-9102-2648a4486807

Now, given that the first of those is FFmpeg 4 and the current version is 7 and the second of those has been archived... I'm thinking we might want to brew from https://github.com/FFmpeg/FFmpeg -- but it'd need someone to knock up the build, possible from cobbling it up from the above.

(It does seem to be becoming increasingly difficult to support Qt6 as time progresses...)


https://doc.qt.io/qt-6/qtmultimedia-building-ffmpeg-ios.html -- there's actually an official page on how hard it is...

@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from 9a92af9 to 192f203 Compare July 23, 2025 17:59
@ann0see
Copy link
Member

ann0see commented Jul 23, 2025

I'd rather remove the qtmultimedia dependency on iOS if it's really that painful to support

@ann0see
Copy link
Member

ann0see commented Jul 23, 2025

Let's check if this works.

@ann0see
Copy link
Member

ann0see commented Jul 23, 2025

Ok. As expected, I get a black screen on iOS. I would suggest that we either:

  • Remove sound alerts from iOS
  • Use iOS native libraries to play sound alerts instead of Qtmultimedia
  • Find out how to get the ffmpeg libraries which the online installer provides via aqt

@ann0see
Copy link
Member

ann0see commented Jul 23, 2025

We might also want to debug the iOS build without Qtmultimedia. I've removed the qtmultimedia dependency and respective code. However, the screen still stays black and the debug console does not print anything (except for saying that it detected a hang)

@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from 821d1f2 to e53b399 Compare July 26, 2025 08:38
@ann0see
Copy link
Member

ann0see commented Aug 3, 2025

I'd like to modify this such that the Windows and macOS builds are updated, but iOS remains on 6.7.3

base_command: QT_VERSION=6.8.1 SIGN_IF_POSSIBLE=1 TARGET_ARCHS="x86_64 arm64" ./.github/autobuild/mac.sh
base_command: QT_VERSION=6.9.1 SIGN_IF_POSSIBLE=1 TARGET_ARCHS="x86_64 arm64" ./.github/autobuild/mac.sh
# Disable CodeQL on mac as it interferes with signing the binaries (signing hangs, see #2563 and #2564)
run_codeql: false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we split x86_64 and arm64, could we run CodeQL on the arm64 build? Currently MacOS doesn't get covered except in the legacy build, which is going to get switched off at some point. Given we must have the code right for arm64, it feels like that's the architecture that should get checked?

Copy link
Member

@ann0see ann0see Aug 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we have both architectures, we produce universal builds which is way simpler for the user. We have one binary which runs on M series macs and intel macs. I would rather build those for a bit more (Partly also because I don't own an Apple Silicon mac).

Yes, it would be good to have CodeQL on the non legacy build. But note that arm and x86 builds would need to be signed.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spin the CodeQL off into a separate flow from the signed build? If it's working off the same git checkout and uses the same build params (without signing), that'll be good enough. Anyway, separate issue.

target_os: ios
building_on_os: macos-14
base_command: QT_VERSION=6.7.3 ./.github/autobuild/ios.sh
base_command: QT_VERSION=6.9.1 ./.github/autobuild/ios.sh
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So if we merge this with QT_VERSION here still 6.7.3, will that pin the version or is something else needed?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we leave it at 6.7.3 here, iOS will still use 6.7.3

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean will github-actions stop pushing version bumps.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. I don't think so- but we could probably change the code to do so.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, so we need a PR with that in, too, I guess.

@hoffie hoffie force-pushed the ci/bump-dependencies/Qt6 branch from e53b399 to bb47f4f Compare August 8, 2025 16:23
@github-project-automation github-project-automation bot moved this from Waiting on Team to Waiting externally in Tracking Aug 9, 2025
@pljones pljones merged commit 4992d47 into main Aug 9, 2025
12 checks passed
@github-project-automation github-project-automation bot moved this from Waiting externally to Done in Tracking Aug 9, 2025
@github-actions github-actions bot deleted the ci/bump-dependencies/Qt6 branch August 9, 2025 15:15
@ann0see ann0see modified the milestones: Release 4.0.0, Release 3.12.0 Aug 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants