-
-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepare qt 6 recipe for FFMPEG transition to QtMultimedia #256
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
Looks like OSX_64 is failing due to https://github.com/conda-forge/ffmpeg-feedstock/blob/main/recipe/build.sh#L92 |
@conda-forge-admin, please restart ci |
@hmaarrfk thanks for merging the videotoolbox changes for ffmpeg! Hoping that should be the only change necessary to get OSX builds working, but it looks like linux_aarch64 is consistently failing for extracting the qt-everywhere tarball due to lack of space. Is this a transient known issue or is there some configuration that needs to get changed because ffmpeg and dependencies are larger than gstreamer and dependencies? |
it should be pretty transient for qt6. tbh, i've never seen it before. Lets try again after this fails. |
Co-authored-by: Mark Harfouche <mark.harfouche@gmail.com>
The other option which I was considering. Was to build qtmultimwdia as a separate package for these very reasons. It would be "easy" from a packaging standpoint to do in 6.7 |
Hm, yeah it still is having space issues. What all would be involved in having a separate package for QtMultimedia? Would that be a separate feedstock? As a simpler fix, I can add back in the gstreamer backend for linux_aarch64 since that worked for it and should let the rest be on ffmpeg? |
this won't work for 6.7 so not so fun. |
It won't? It does say that the native support is still there, just limited: https://doc.qt.io/qt-6/qtmultimedia-index.html#native-backends, I think in the future it's likely that they'll drop it though. |
Have you tried to set |
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
Fingers crossed this passes. |
.ci_support/osx_arm64_.yaml
Outdated
@@ -22,8 +22,6 @@ cxx_compiler_version: | |||
- '16' | |||
glib: | |||
- '2' | |||
gstreamer: | |||
- '1.24' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
its strange that this getting deleted. is gstreamer no longer getting pinned?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pretty sure that the selectors using the version are at fault here:
- gstreamer # [unix and version == "6.7.1"]
- pulseaudio # [linux and version == "6.7.1"]
This feedstock only builds one version at a time. Why are we trying to filter dependencies on the version at all?
In any case, if you want to keep that filter, maybe you'll have more success with:
{% if version == "6.7.1" %}
- gstreamer # [unix]
- pulseaudio # [linux]
{% endif %}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll try rerendering here but, maybe it's because of the version check with:
- gst-plugins-base {{ gstreamer }} # [unix and version == "6.7.1"]
# gstreamer plugin not supported on win32: https://bugreports.qt.io/browse/QTBUG-107073
- gstreamer # [unix and version == "6.7.1"]
Is there a way to pin this with a conditional on version?
@conda-forge-admin please rerender |
Hi! This is the friendly automated conda-forge-webservice. I tried to rerender for you, but it looks like there was nothing to do. This message was generated by GitHub actions workflow run https://github.com/conda-forge/qt-main-feedstock/actions/runs/9201282415. |
recipe/bld.bat
Outdated
@@ -47,6 +50,7 @@ cmake -LAH -G "Ninja" ^ | |||
-DFEATURE_system_sqlite=ON ^ | |||
-DFEATURE_quick3d_assimp=OFF ^ | |||
-DFEATURE_vulkan=ON ^ | |||
-DQT_MEDIA_BACKEND=ffmpeg ^ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is ffmpeg being depended on here?
@conda-forge-admin please rerender |
…nda-forge-pinning 2024.05.24.03.56.36
recipe/bld.bat
Outdated
IF %PKG_VERSION%=="6.7.1" ( | ||
set "MODS=%MODS%;qtmultimedia" | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
~~this logic doesn't match up with your tests below for windows. ~~
I think just delete the windows changes.
For windows users that want multi-media, they can install the qt6-multimedia package you made, and they will be off to the transition a version early.
Edit: I checked the logs of the last completed build, qt6multimedia.dll doesn't exist.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yes there was a bug here, should be
IF "%PKG_VERSION%"=="6.7.1" (
set "MODS=%MODS%;qtmultimedia"
)
For the conditional to check out. I can fix that and add tests for Qt6Multimedia.dll existence in 6.7.1, but if you think it's better to rely on conda-forge/staged-recipes#25992 for windows, I'm ok with that too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think its better to "not add any features" here and just to leave it to qt6-multimedia if we can.
I'm not going to press the green button myself for a few days since I feel like I had too much of a heavy hand in the design of this recipe. But i'm very eager to get this in. Thank you @mmcauliffe for persevering! |
Sounds good, thanks @hmaarrfk! I do have the one outstanding question here: #256 (comment). In terms of the timing of merging this vs conda-forge/staged-recipes#25992, is the qt-multimedia recipe dependent on the changes here or can we get that merged in before this? There's some post-merged work for setting up the cross compiled builds for qt-multimedia and I want to also start testing out the ffmpeg backend with my projects. |
I think it is now pretty independent, becaues we mostly made this recipe "remove gstreamer after 6.7.1"
are you on linux? you could build that package locally. and upload to your own channel during this time. it will "help" you prepare and test and maybe even find compatibility bugs that could change the my thoughts on this intermediate package. |
Alright here goes, thanks for the patience. |
As part of a refactor of the recipe we were planning on removing qtmultimedia from the recipe in 6.7.2 but accidentally did so in 6.7.1 build 1 conda-forge/qt-main-feedstock#256 xref: conda-forge/qt-main-feedstock#265 This is causing issues for downstream recipes such as pyside6 conda-forge/pyside2-feedstock#228 And thus likely causing issues for a subset of users The recipe is being fixed at the moment and a test has been added to ensure an other library isn't missed in the process conda-forge/qt-main-feedstock#264
Checklist
0
(if the version changed)conda-smithy
(Use the phrase@conda-forge-admin, please rerender
in a comment in this PR for automated rerendering)As of Qt 6.7, the default backend for Qt Multimedia has switched to ffmpeg rather than the native backends: https://doc.qt.io/qt-6/qtmultimedia-index.html#target-platform-and-backend-notes
I've seen some issues with gstreamer on osx_arm64, so switching to ffmpeg should resolve those as well.
hmaarrfk's comment:
This modification has evolved toward allowing ffmpeg support for qt6. However, due to the large number of dependencies that FFMPEG pulls in, we are deciding to split this off as a separate package. For Qt 6.7.1, the qt6-main package will continue to provide gstreamer support. ffmpeg support is provided by the qt6-multimedia package.
For future package, no multimedia support will be provided through the qt6-main package and end users will have to use the qt6-multimedia package to get video and audio support.