$ git diff --patch-with-stat --summary 77f2788e99d2f5cc6a56344e1208e9c11435fcda..0ede4d7febf3bf47cedac33f0aa918751d3d9d2f
.abf.yml | 2 +-
mscore-4.2.1-dont-use-gtk-platformtheme.patch | 16 +++++
mscore-4.5.1-qt-6.9.patch | 24 +++++++
musescore.spec | 97 +++++++++++++++------------
4 files changed, 95 insertions(+), 44 deletions(-)
create mode 100644 mscore-4.2.1-dont-use-gtk-platformtheme.patch
create mode 100644 mscore-4.5.1-qt-6.9.patch
diff --git a/.abf.yml b/.abf.yml
index 4a444fc..1543570 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
sources:
- v4.0.2.tar.gz: 1631bf22751fb8050af646623a72ffd2f2118c7f
+ v4.5.1.tar.gz: 4b1377e944ed9e677941e4661c68e9f97c976683
diff --git a/mscore-4.2.1-dont-use-gtk-platformtheme.patch b/mscore-4.2.1-dont-use-gtk-platformtheme.patch
new file mode 100644
index 0000000..5b45ae9
--- /dev/null
+++ b/mscore-4.2.1-dont-use-gtk-platformtheme.patch
@@ -0,0 +1,16 @@
+diff -up MuseScore-4.4.3/src/app/main.cpp.1~ MuseScore-4.4.3/src/app/main.cpp
+--- MuseScore-4.4.3/src/app/main.cpp.1~ 2024-11-01 01:51:11.135043799 +0100
++++ MuseScore-4.4.3/src/app/main.cpp 2024-11-01 01:51:53.755582399 +0100
+@@ -93,12 +93,6 @@ int main(int argc, char** argv)
+ qputenv("QT_STYLE_OVERRIDE", "Fusion");
+ qputenv("QML_DISABLE_DISK_CACHE", "true");
+
+-#ifdef Q_OS_LINUX
+- if (qEnvironmentVariable("QT_QPA_PLATFORM") != "offscreen") {
+- qputenv("QT_QPA_PLATFORMTHEME", "gtk3");
+- }
+-#endif
+-
+ #ifdef Q_OS_WIN
+ // NOTE: There are some problems with rendering the application window on some integrated graphics processors
+ // see https://github.com/musescore/MuseScore/issues/8270
diff --git a/mscore-4.5.1-qt-6.9.patch b/mscore-4.5.1-qt-6.9.patch
new file mode 100644
index 0000000..e10a1fa
--- /dev/null
+++ b/mscore-4.5.1-qt-6.9.patch
@@ -0,0 +1,24 @@
+diff -up MuseScore-4.5.1/src/importexport/bww/internal/bww/lexer.cpp.omv~ MuseScore-4.5.1/src/importexport/bww/internal/bww/lexer.cpp
+--- MuseScore-4.5.1/src/importexport/bww/internal/bww/lexer.cpp.omv~ 2025-04-05 20:58:01.588734003 +0200
++++ MuseScore-4.5.1/src/importexport/bww/internal/bww/lexer.cpp 2025-04-05 20:58:32.484801691 +0200
+@@ -42,7 +42,7 @@ namespace Bww {
+ Lexer::Lexer(QIODevice* inDevice)
+ : in(inDevice),
+ lineNumber(-1),
+- value(QChar(NONE))
++ value(QChar(static_cast<char>(NONE)))
+ {
+ LOGD() << "Lexer::Lexer() begin";
+
+diff -up MuseScore-4.5.1/src/palette/view/widgets/specialcharactersdialog.cpp.omv~ MuseScore-4.5.1/src/palette/view/widgets/specialcharactersdialog.cpp
+--- MuseScore-4.5.1/src/palette/view/widgets/specialcharactersdialog.cpp.omv~ 2025-04-05 21:24:34.737013680 +0200
++++ MuseScore-4.5.1/src/palette/view/widgets/specialcharactersdialog.cpp 2025-04-05 21:25:58.940745239 +0200
+@@ -712,7 +712,7 @@ void SpecialCharactersDialog::populateUn
+ std::shared_ptr<FSymbol> fs = std::make_shared<FSymbol>(gpaletteScore->dummy());
+ fs->setCode(code);
+ fs->setFont(m_font);
+- m_pUnicode->appendElement(fs, QString("0x%1").arg(code, 5, 16, QLatin1Char('0')));
++ m_pUnicode->appendElement(fs, QString("0x%1").arg(static_cast<unsigned int>(code), 5, 16, QLatin1Char('0')));
+ }
+ }
+
diff --git a/musescore.spec b/musescore.spec
index 557370e..b2f0559 100644
--- a/musescore.spec
+++ b/musescore.spec
@@ -4,21 +4,23 @@
%define srcname MuseScore
%define shortname mscore
%define fontfamilyname %{shortname}
-%define shortver 4.0
+%define shortver %(echo %{version}|cut -d. -f1-2)
#define beta beta
Summary: Linux MusE Score Typesetter
Name: musescore
-Version: 4.0.2
+Version: 4.5.1
Release: %{?beta:0.%{beta}.}1
-# (Fedora) rtf2html is LGPLv2+
+# rtf2html is LGPLv2+
# paper4.png paper5.png are LGPLv3
# the rest is GPLv2
License: GPLv2 and LGPLv2+ and LGPLv3
-Url: http://musescore.org
+Url: https://musescore.org
Group: Publishing
Source0: https://github.com/musescore/MuseScore/archive/v%{version}%{?beta:%{beta}}.tar.gz
+Patch0: mscore-4.2.1-dont-use-gtk-platformtheme.patch
+Patch1: mscore-4.5.1-qt-6.9.patch
BuildRequires: cmake
BuildRequires: pkgconfig(alsa)
BuildRequires: jackit-devel
@@ -26,31 +28,40 @@ BuildRequires: pkgconfig(fluidsynth)
BuildRequires: portaudio-devel
BuildRequires: lame-devel
BuildRequires: pkgconfig(libpulse)
-BuildRequires: pkgconfig(Qt5XmlPatterns)
-BuildRequires: pkgconfig(Qt5Svg)
-BuildRequires: pkgconfig(Qt5WebEngine)
-BuildRequires: pkgconfig(Qt5WebEngineCore)
-BuildRequires: pkgconfig(Qt5WebEngineWidgets)
-BuildRequires: pkgconfig(Qt5QuickWidgets)
-BuildRequires: pkgconfig(Qt5QuickControls2)
-BuildRequires: pkgconfig(Qt5QuickTemplates2)
-BuildRequires: pkgconfig(Qt5Help)
-BuildRequires: pkgconfig(Qt5Designer)
-BuildRequires: pkgconfig(Qt5Test)
-BuildRequires: pkgconfig(Qt5UiTools)
-BuildRequires: pkgconfig(Qt5X11Extras)
-BuildRequires: pkgconfig(Qt5NetworkAuth)
+BuildRequires: pkgconfig(Qt6Svg)
+BuildRequires: pkgconfig(Qt6WebEngineCore)
+BuildRequires: pkgconfig(Qt6WebEngineWidgets)
+BuildRequires: pkgconfig(Qt6QuickWidgets)
+BuildRequires: pkgconfig(Qt6QuickControls2)
+BuildRequires: pkgconfig(Qt6QuickTemplates2)
+BuildRequires: pkgconfig(Qt6Help)
+BuildRequires: pkgconfig(Qt6Designer)
+BuildRequires: pkgconfig(Qt6Test)
+BuildRequires: pkgconfig(Qt6UiTools)
+BuildRequires: pkgconfig(Qt6NetworkAuth)
+BuildRequires: pkgconfig(Qt6Core5Compat)
+BuildRequires: pkgconfig(Qt6StateMachine)
+BuildRequires: pkgconfig(Qt6Concurrent)
+BuildRequires: pkgconfig(flac++)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(poppler)
-BuildRequires: pkgconfig(poppler-qt5)
+BuildRequires: pkgconfig(poppler-qt6)
+BuildRequires: pkgconfig(tinyxml2)
BuildRequires: pkgconfig(vorbisfile)
-BuildRequires: qt5-assistant
-BuildRequires: qt5-designer
-BuildRequires: qt5-devel >= 5.3
-BuildRequires: qt5-linguist
-BuildRequires: qt5-linguist-tools
-BuildRequires: qt5-qtquick1
+BuildRequires: pkgconfig(libavcodec)
+BuildRequires: pkgconfig(libavformat)
+BuildRequires: pkgconfig(libavdevice)
+BuildRequires: pkgconfig(libavutil)
+BuildRequires: pkgconfig(libavfilter)
+BuildRequires: pkgconfig(libswscale)
+BuildRequires: pkgconfig(libpostproc)
+BuildRequires: pkgconfig(libswresample)
+BuildRequires: pkgconfig(xkbcommon)
+BuildRequires: pkgconfig(libopusenc)
+BuildRequires: pkgconfig(opus)
+BuildRequires: pkgconfig(harfbuzz)
+BuildRequires: qmake-qt6
Requires: %{name}-fonts = %{version}-%{release}
Requires: fonts-ttf-freefont
Requires: soundfont2-default
@@ -105,31 +116,32 @@ This package contains the musical notation fonts for use of MuseScore.
%prep
%autosetup -p1 -n MuseScore-%{version}%{?beta:%{beta}}
+sed -i -e 's,qmake6,qmake-qt6,g' build.cmake buildscripts/cmake/SetupQt6.cmake
+
# (Fedora) Do not build the bundled qt scripting interface:
sed -i 's|BUILD_SCRIPTGEN TRUE|BUILD_SCRIPTGEN FALSE|' CMakeLists.txt
# (Fedora) Force specific compile flags:
find . -name CMakeLists.txt -exec sed -i -e 's|-m32|%{optflags}|' -e 's|-O3|%{optflags}|' {} \;
-# FIXME
-# clang 15: build failure because clang interprets an overloaded
-# delete operator differently
-# For now, force gcc
-export CC=gcc
-export CXX=g++
-%cmake_qt5 \
+%cmake \
-DOMR:BOOL=ON \
-DOCR:BOOL=ON \
- -DUSE_SYSTEM_FREETYPE:BOOL=ON \
- -DUSE_SYSTEM_POPPLER:BOOL=ON \
+ -DMUE_COMPILE_USE_SYSTEM_FREETYPE:BOOL=ON \
+ -DMUE_COMPILE_USE_SYSTEM_HARFBUZZ:BOOL=ON \
+ -DMUE_COMPILE_USE_SYSTEM_OPUS:BOOL=ON \
+ -DMUE_COMPILE_USE_SYSTEM_OPUSENC:BOOL=ON \
+ -DMUE_COMPILE_USE_SYSTEM_TINYXML:BOOL=ON \
+ -DMUE_COMPILE_USE_SYSTEM_FLAC:BOOL=ON \
-DBUILD_PORTMIDI:BOOL=OFF \
-DBUILD_CRASHPAD_CLIENT:BOOL=OFF \
-DTRY_USE_CCACHE:BOOL=OFF \
- -DDOWNLOAD_SOUNDFONT:BOOL=OFF
+ -DDOWNLOAD_SOUNDFONT:BOOL=OFF \
+ -DMUE_BUILD_UPDATE_MODULE:BOOL=OFF \
+ -DMUE_BUILD_VIDEOEXPORT_MODULE:BOOL=ON
%build
-%make lrelease -C build
-%make -C build
+%make_build -C build
%install
%make_install -C build
@@ -152,24 +164,23 @@ rm -f %{buildroot}/%{_xfontdir}/TTF/Free*
# mscz
mkdir -p %{buildroot}%{_datadir}/%{shortname}-%{shortver}/demos
-install -D -p share/templates/*.mscz %{buildroot}/%{_datadir}/%{shortname}-%{shortver}/demos/
+install -D -p demos/*.mscz %{buildroot}/%{_datadir}/%{shortname}-%{shortver}/demos/
# No point in packaging dupes
+# or headers for internal libraries
cd %{buildroot}
rm -rf \
.%{_bindir}/crashpad_handler \
.%{_includedir}/gmock \
.%{_includedir}/gtest \
.%{_includedir}/opus \
+ .%{_includedir}/kddockwidgets-qt6 \
.%{_libdir}/cmake/GTest \
+ .%{_libdir}/cmake/KDDockWidgets-qt6 \
+ .%{_libdir}/cmake/Opus \
.%{_libdir}/*.a \
.%{_libdir}/pkgconfig
-# ... or headers for internal libraries
-rm -rf \
- .%{_includedir}/kddockwidgets \
- .%{_libdir}/cmake/KDDockWidgets
-
pushd %{buildroot}/%{_xfontdir}/TTF
cd bravura
ln -s ../Bravura.otf .