-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Added Qt multimedia (optional) #27568
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
Added Qt multimedia (optional) #27568
Conversation
|
The wiki would need to get updated accoringly, https://github.com/musescore/MuseScore/wiki/Install-Qt-and-Qt-Creator#select-qt-components |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
2f80a5c to
e2c89cd
Compare
|
Nevertheless, QtMultimedia is not in the appimage with this build. => Video Sync 2.qml:2 module "QtMultimedia" is not installed\n" |
|
It seems to be part of the Windows and Mac artifacts though. Indeed seems missing from the Linux artifact. But regardless having Qt6Multimedia.dll in the bin folder, the Windows artifact doesn't open that plugin and complains in the logs: |
|
Maybe the problem is that LinuxDeploy skips it because we're not using it. Solution might be to add a dummy QML file somewhere in the repo (I don't even think it needs to be registered anywhere) that imports MultiMedia, so that LinuxDeploy does think it's used. Not sure though. Maybe it's cleaner to just deploy it manually after running LinuxDeploy. |
|
Adding this to ci/linux/tools/make_appimage.sh fixes the not installed issue with the Linux appimage: # ADDITIONAL QT COMPONENTS
# linuxdeploy-plugin-qt may have missed some Qt files or folders that we need.
# List them here using paths relative to the Qt root directory. Report new
# additions at https://github.com/linuxdeploy/linuxdeploy-plugin-qt/issues
additional_qt_components=(
plugins/printsupport/libcupsprintersupport.so
# At an unknown point in time, the libqgtk3 plugin stopped being deployed
plugins/platformthemes/libqgtk3.so
# Wayland support (run with QT_QPA_PLATFORM=wayland to use)
plugins/wayland-decoration-client
plugins/wayland-graphics-integration-client
plugins/wayland-shell-integration
# QtMultimedia components
lib/libQt6Multimedia.so.6
lib/libQt6MultimediaQuick.so.6
lib/libQt6MultimediaWidgets.so.6
qml/QtMultimedia
)
|
|
Sorry, I was very busy yesterday, I didn't have time to fix this problem. I plan to do this today, I was considering both options, I wanted to conduct experiments, I like the second option, only there the files are named differently and we need to make symlinks |
e2c89cd to
3162506
Compare
|
I'm still getting |
|
Over here (appimage) => |
3fd3c9a to
805696b
Compare
|
I'll let you know when I'm done... :) It pack and works locally for me. |
|
Again: Cannot load library /tmp/.mount_MuseScJ8J94X/qml/QtMultimedia/libquickmultimediaplugin.so: (libQt6MultimediaQuick.so.6: cannot open shared object file: No such file or directory)\n" This library is not in the appimage. |
gstreamer has been a standard component of Ubuntu variants for some time. But, I suppose if it can be contained to the build, that wouldn't be a bad thing..? |
|
But if gstreamer is to be included in the appimage, then all dependencies must be included as well. Seems like a bad idea to me. Another 3rd party piece of software to maintain and to keep up to date.; |
|
Locally for me, linuxdeploy copies QtMultimedia. |
805696b to
08bad72
Compare
But that's exactly how AppImage works, it includes all dependencies and is system independent. It is designed for all distributions, not just Ubuntu. |
OK. sorry, my bad. |
|
It should work now |
|
I confirm. Linux Appimage is working fine. Thanks |
|
It's a pity that the problems are not solved. I need to go on a business trip for a week and a half. So I can come back to this in a week and a half, or someone else can continue to solve the problems. As we can see, the task is not just to add Multimedia and compile, but to configure the deployment so that it works on different platforms and distributions. |
In this case, LinuxDeploy will not be able to add multimedia libraries, we will need to do it yourself, and we will probably need to take care of changing the rpath of these libraries. |
And I was already about starting to wine about Windows being neglected ;-) |
08bad72 to
bf26618
Compare
|
Build: 4.6.0.251131226 Linux appimage crashed upon opening the plugin similarly to the last build. But I think the log might be showing a different reason. See the attached .txt log file. Xubuntu 24.04 EDIT: It at least, in part, still seems related to gstreamer versions...? Possibly? |
|
Crash also with ubuntu 22.04 6:39:28.835 | DEBUG | main_thread | addPluginToDockMU4 | Attempting to add Playback Control plugin to dock
16:39:28.835 | DEBUG | main_thread | addPluginToDockMU4 | Creating new dock panel
(mscore4portabledev:19349): GStreamer-CRITICAL **: 16:39:28.924: gst_element_link_many: assertion 'GST_IS_ELEMENT (element_2)' failed
[19362:19362:20250423,163928.939005:ERROR elf_dynamic_array_reader.h:61] tag not found
[19362:19362:20250423,163928.940336:ERROR elf_dynamic_array_reader.h:61] tag not found
[19362:19362:20250423,163928.942909:ERROR elf_dynamic_array_reader.h:61] tag not found
|
0fe9c5b to
7ad91b3
Compare
|
Any update on the status of this, particularly related to the last failed Linux build? |
7ad91b3 to
ca929db
Compare
|
We are currently in the active process of switching to Qt 6.9. It's a bit different there... That's why we're waiting for the transition to be completed. I've now finalized the build for Linux x86-64, it would be good to check the work. It hasn't been done for other platforms yet, we're waiting for Qt 6.9 |
|
I am using Ubuntu 24.04 now .. Some errors in the logs with this build: /usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name Eventually, after quit some time, ModernMozart's plugin shows after all - and seems to work. Also, the appimage has now 238MB. My multimedia build, without the libgstreamer stuff included, only has 138MB ( and does not produce any errors; not with ubuntu 22.04 nor with 24.04). |
I would be happy not to add them, but there are two problems:
We can't do something for a limited circle of enthusiasts (( |
|
As i understand it, most modern mainstream distro's (Debian, Ubuntu, but also Fedora) have gstreamer installed by default, and others have at least a package to install it easily. Shouldn't Linux users be able to install a package from the own distro repository? It is not more difficult than installing a .msi on Windows. PS. mybuild: https://github.com/diedeno/MuseScore/actions/runs/14339912925 |
|
The plugin loads (Ubuntu 24.04) with a delayed start, as described. But things seem to be generally working. The plugin is doing some strange stuff that it didn't do with other builds outside of this PR, but those issues are probably the plugin's problem at this point. On the gstreamer issue:
Those are the fears anyway. The proverbial cooks at the very top need to see vital value in everything that is thrown in the soup. Ultimately, the head chefs approve what tastes good to them, for their own reasons. So I'm not sure what side I'm on re: gstreamer onboard or as an external dependency for the capability in question. All I know is that these capabilities are pretty normal (if not widely used) for music/notation software these days and MS should support it. So whatever strategy gets it through the pipeline to the master and keeps MS truly competitive for all kinds of professional work is fine by me! |
|
Increasing the AppImage size with 100MB just because of a few dependencies that should actually be available on most systems, seems clearly no option, no matter how many people will benefit from this lib. @igorkorsukov Let's investigate @diedeno's solution; to me, that seems the way to go. |
I think this route is less likely to be rejected. I agree. |
|
Let's try without a gstreamer and see what happens |
|
There will be a problem... But if a pre-installed gstreamer is added to CI with a new update, or if someone builds AppImage locally, where there is a gstreamer, then a problem will arise. |
c4a0bc2 to
4546f27
Compare
4546f27 to
849d0ed
Compare
|
Build 251261110 Linux works. Video sync plugin loads quickly and operates as expected. |
|
@igorkorsukov It might be good to revisit this PR when you have time again |
see #27552
This allows us to build assemblies on CI with multimedia support to test the functions that use it.
Need to switch on the option:
QT_ADD_MULTIMEDIABut it won't affect other developers. We can turn on multimedia support by default when we get ready-made functionality that can be provided to users.