Musescore segfaults on startup due to missing qt quickcontrols2 configuration

• Sep 1, 2021 - 23:37
Reported version
3.6
Type
Graphical (UI)
Frequency
Once
Severity
S2 - Critical
Reproducibility
Always
Status
active
Regression
No
Workaround
Yes
Project

Hi there - i build musescore from source and for a year or so now have been unable to run my builds as they segfault during the splash screen. I've been using the pre-built appimages when i've needed to use it, but today decided to finally track down the issue.

gdb told me the segfault was happening in QQuickStyleSelector::select from libQt5QuickControls2.so.5

Some searching led me to this comment on a completely unrelated bug report for some other software:

https://github.com/NixOS/nixpkgs/issues/54457#issuecomment-577981546

And that pointed me to this page:

https://doc.qt.io/qt-5/qtquickcontrols2-configuration.html

Attached is the patch i'm using to solve this issue, which works great for me - no more segfaults during startup!

Hope this is helpful to someone else.


Comments

Frequency Many Once
Status active needs info

Did you run the install step and start MuseScore from the install dirextory?

BTW MuseScore used to be using the Fusion Style

In reply to by Jojo-Schmitz

I honestly just copied that file from the example at the URL i mentioned, and it seemed to work. Other things that worked before applying my patch:

musescore -style Material
QT_QUICK_CONTROLS_STYLE=Material musescore

I should mention that i'm running on linux with everything built from source.

Essentially i compiled from source from a subdirectory with:

cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_SYSTEM_FREETYPE=ON -DUSE_SYSTEM_POPPLER=ON -DOMR=ON -DBUILD_WEBENGINE=OFF -DBUILD_PORTAUDIO=OFF -DBUILD_PORTMIDI=OFF

(I did also try a compile without all the extra -D definitions)

make && make install DESTDIR=/path/to/package, and i'm using a symlink method to link everything into /usr. That does sometimes cause issues, but this one doesn't seem related to that, since the above invocations and my patch all work.

Just wanted to pass on this info in case it's useful. I've got my fix which works fine.

Status needs info active

That patch in clear text:

diff -urN MuseScore-3.6.2.orig/mscore/musescore.qrc MuseScore-3.6.2/mscore/musescore.qrc
--- MuseScore-3.6.2.orig/mscore/musescore.qrc   2021-02-08 04:16:37.000000000 -0800
+++ MuseScore-3.6.2/mscore/musescore.qrc        2021-09-01 14:12:49.519525890 -0700
@@ -1,5 +1,6 @@
 <RCC>
     <qresource prefix="/">
+       <file>qtquickcontrols2.conf</file>
         <file>data/icons/edit.svg</file>
         <file alias="styles/Leland.mss">../share/styles/Leland.mss</file>
         <file alias="styles/Edwin.mss">../share/styles/Edwin.mss</file>
diff -urN MuseScore-3.6.2.orig/mscore/qtquickcontrols2.conf MuseScore-3.6.2/mscore/qtquickcontrols2.conf
--- MuseScore-3.6.2.orig/mscore/qtquickcontrols2.conf   1969-12-31 16:00:00.000000000 -0800
+++ MuseScore-3.6.2/mscore/qtquickcontrols2.conf        2021-09-01 14:12:14.432275971 -0700
@@ -0,0 +1,11 @@
+[Controls]
+Style=Material
+
+[Universal]
+Theme=System
+Accent=Red
+
+[Material]
+Theme=Light
+Accent=Teal
+Primary=BlueGrey