Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package musescore for openSUSE:Factory checked in at 2026-10-21 21:01:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/musescore (Old) and /work/SRC/openSUSE:Factory/.musescore.new.2252680 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "musescore" Wed Oct 21 21:01:36 2026 rev:60 rq:1386779 version:4.7.5 Changes: -------- --- /work/SRC/openSUSE:Factory/musescore/musescore.changes 2026-10-15 16:11:54.048397851 +0200 +++ /work/SRC/openSUSE:Factory/.musescore.new.2252680/musescore.changes 2026-10-21 21:02:55.648727842 +0200 @@ -1,0 +2,5 @@ +Wed Oct 21 09:42:45 UTC 2026 - Cor Blom <[email protected]> + +- Add qmlcachegen-unity-build.diff to fix build with Qt 6.12 + +------------------------------------------------------------------- New: ---- qmlcachegen-unity-build.diff ----------(New B)---------- New: - Add qmlcachegen-unity-build.diff to fix build with Qt 6.12 ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ musescore.spec ++++++ --- /var/tmp/diff_new_pack.x6q75V/_old 2026-10-21 21:02:57.915825960 +0200 +++ /var/tmp/diff_new_pack.x6q75V/_new 2026-10-21 21:02:57.918826089 +0200 @@ -76,6 +76,8 @@ %if %{without fdk_aac} Patch3: disable-aac.patch %endif +# Firx for building with Qt 6.12, taken from NixOs +Patch4: qmlcachegen-unity-build.diff BuildRequires: cmake BuildRequires: fdupes BuildRequires: gcc-c++ ++++++ qmlcachegen-unity-build.diff ++++++ diff --git a/src/framework/cmake/MuseCreateModule.cmake b/src/framework/cmake/MuseCreateModule.cmake index 6e9a3e7d92..19dcbd3019 100644 --- a/src/framework/cmake/MuseCreateModule.cmake +++ b/src/framework/cmake/MuseCreateModule.cmake @@ -210,4 +210,45 @@ function(fixup_qml_module_dependencies target_name) # don't seem to have this problem. add_dependencies(${target_name}_qmltyperegistration ${target_name}) endif() + + # Qt generates one C++ file per QML file with qmlcachegen and adds them to + # the QML module target without excluding them from unity builds - unlike + # the files generated by qmltc, which it does exclude. Since Qt 6.12 those + # files contain an expectedLookupSignatures() function which refers to the + # types of the QQmlPrivate::AOTLookupValidation namespace unqualified, so a + # file scope "using namespace" of one of our own sources that ends up in + # the same unity translation unit can make these names ambiguous, and the + # build fails with e.g: + # + # .rcc/qmlcache/muse_extensions_qml_ExtensionErrorMessage_qml.cpp:27:19: + # error: reference to 'Type' is ambiguous + # 27 | { Lookup{ Type{ u"Muse.UiComponents"_s, ... + # | ^~~~ + # there are 2 candidates + # candidate 1: 'enum class muse::extensions::Type' + # candidate 2: 'struct QQmlPrivate::AOTLookupValidation::Type' + # + # Arguably a Qt bug - it should exclude these files from unity builds just + # like it does the ones generated by qmltc. We could find no report for it + # at https://bugreports.qt.io, and as of Qt 6.12.0 neither the 6.12 nor the + # dev branch of qtdeclarative excludes them, so it still needs reporting. + # + # Compile the files generated by qmlcachegen separately so that they are + # not affected by what our own sources pull into scope. + get_target_property(all_sources ${target_name} SOURCES) + if (all_sources) + set(qmlcache_sources "") + foreach (source IN LISTS all_sources) + if (source MATCHES "/\\.rcc/qmlcache/") + list(APPEND qmlcache_sources ${source}) + endif() + endforeach() + if (qmlcache_sources) + set_source_files_properties(${qmlcache_sources} + TARGET_DIRECTORY ${target_name} + PROPERTIES + SKIP_UNITY_BUILD_INCLUSION ON + ) + endif() + endif() endfunction()
