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()

Reply via email to