[bug#75037,gnome-team,v3,2/2] gnu: musescore: Update to 4.4.4.

Message ID CAAaf0CBJ-q0MO_tM87_rUvWf_6oj+mvV-tv3w-WVn4Xjg5Mq2w@mail.gmail.com
State New
Headers
Series [bug#75037] WIP: Upgrade MuseScore to 4.4.4 |

Commit Message

Rovanion Luckey Jan. 10, 2025, 1:47 p.m. UTC
  I've attached an updated version 3 of the music.scm patch.

Den ons 8 jan. 2025 kl 13:01 skrev Liliana Marie Prikler <
liliana.prikler@gmail.com>:

> Am Mittwoch, dem 01.01.2025 um 19:37 +0100 schrieb Rovanion Luckey:
> > -        (base32
> > "1hx0l6d7avyfbh88hwn01h9q51mgd9zix91q2kgg1ax73pqxhfs2"))
> > -       (modules '((guix build utils)))
> > -       (snippet
> > -        '(begin
> > -           ;; Delete precompiled binaries.
> > -           (delete-file-recursively
> > "src/diagnostics/crashpad_handler")
> > -           (substitute* "src/diagnostics/CMakeLists.txt"
> > -             (("install") "#install"))))))
> > +        (base32
> > "0cjp1sp50pwmrgvpxjxg849s0vsvk2vcb66ym617nvlj761h0ngz"))
> > +       (modules '((guix build utils)))))
> This change is undocumented.  If you do drop the snippet (is it really
> safe to?), then you can also drop the modules.
>
As far as I can tell, yes. This step is superseeded by the flag
-DMUSE_MODULE_DIAGNOSTICS_CRASHPAD_CLIENT=OFF.

>      (build-system qt-build-system)
> >      (arguments
> > -     `(#:configure-flags
> > -       `("-DDOWNLOAD_SOUNDFONT=OFF"
> > -         "-DBUILD_DIAGNOSTICS=OFF"
> > -         "-DMUSESCORE_BUILD_CONFIG=release"
> > -         "-DUSE_SYSTEM_FREETYPE=ON")
> > +     `(#:qtbase ,qtbase
> Is this flag needed?  Anyway, new flags should be documented…

Yes, Musescore will crash on startup otherwise as it would be linked
against the wrong qtbase. Added a comment.

It's of course a bit insane that the qt-build-system doesn't pick up the
qt-base passed as arguments for the package, but that is what it is.

> +       #:configure-flags
> > +       `("-DMUSE_APP_BUILD_MODE=release"
> > +         ;; Disable the build and usage of the
> > `/bin/crashpad_handler` utility -
> > +         ;; it does automatic crash reporting and is distributed as
> > a
> > +         ;; pre-compiled binary in the source-tree of MuseScore:
> > +         ;;  https://github.com/musescore/MuseScore/issues/15571
> > +         ;; Renamed from MUE_BUILD_CRASHPAD_CLIENT,
> > MUE_BUILD_DIAGNOSTICS_MODULE
> > +         ;;
> >
> https://github.com/musescore/MuseScore/commit/6f269e8b072cca36cb76eb016cb60c1c1c2b9906
> > +         "-DMUSE_MODULE_DIAGNOSTICS_CRASHPAD_CLIENT=OFF"
> > +         ;; Use Guix' versions of system libraries.
> > +         "-DMUE_COMPILE_USE_SYSTEM_FREETYPE=ON"
> > +         "-DMUE_COMPILE_USE_SYSTEM_HARFBUZZ=ON"
> > +         "-DMUE_COMPILE_USE_SYSTEM_TINYXML=ON"
> > +         "-DMUE_COMPILE_USE_SYSTEM_OPUSENC=ON" ; Ipmlies -
> > DMUE_COMPILE_USE_SYSTEM_OPUS=ON
> > +         "-DMUE_COMPILE_USE_SYSTEM_FLAC=ON"
> > +         ;; Disable download of soundfont during build.
> > +         "-DDOWNLOAD_SOUNDFONT=OFF"
> > +         ;; Don't bundle Qt QML files, relevant really only for
> > Darwin.
> > +         ;; "-DMUE_COMPILE_INSTALL_QTQML_FILES=OFF"
> > +         )
> … as should changes here.

I clearified the comment spanning multiple lines and hopefully understood
the meaning of document correctly when I added some text to the commit
message.

Is everything renamed from MUSE to MUE or
> are these typos?
>
Yes, renamed.

Also, parentheses are social animals, they like to group together :)
> >         ;; There are tests, but no simple target to run.  The command
> > used to
> >         ;; run them is:
> >         ;;
> > @@ -5404,30 +5414,31 @@ (define-public musescore
> >         ;; So we simply skip them.
> >         #:tests? #f))
> >      (native-inputs
> > -     (list git-minimal pkg-config qttools-5))
> > +     (list git-minimal pkg-config qttools))
> Write this out in the ChangeLog.
>
Sure.

>      (inputs
> >       (list alsa-lib
> >             freetype
> >             `(,gtk+ "bin")               ;for gtk-update-icon-cache
> > +           harfbuzz-meson
> Whoopsie, this can be regular harfbuzz with the new 1/2.
>
Fixed.

>             jack-1
> >             lame
> >             libogg
> > +           libopusenc
> >             libsndfile
> >             libvorbis
> >             portaudio
> >             portmidi
> >             pulseaudio
> >             python
> > -           qtbase-5
> > -           qtdeclarative-5
> > -           qtgraphicaleffects
> > -           qtnetworkauth-5
> > -           qtquickcontrols-5
> > -           qtquickcontrols2-5
> > -           qtscript
> > -           qtsvg-5
> > -           qtx11extras
> > -           qtxmlpatterns))
> > +           qt5compat
> > +           qtbase
> > +           qtdeclarative
> > +           qtnetworkauth
> > +           qtscxml
> > +           qtshadertools
> > +           qtsvg
> > +           qtwayland
> > +           tinyxml2))
> Write these out in the ChangeLog.

Done.

>      (propagated-inputs
> >       (list `(,alsa-plugins "pulseaudio"))) ;for
> > libasound_module_conf_pulse.so
> >      (synopsis "Music composition and notation software")
>
> Cheers
>

Thanks for the review, hope this one fits the bill.
  

Patch

From a098362bde076d983e73b25c2fd56f871b287368 Mon Sep 17 00:00:00 2001
Message-ID: <a098362bde076d983e73b25c2fd56f871b287368.1736516712.git.rovanion.luckey@gmail.com>
From: Rovanion Luckey <rovanion.luckey@gmail.com>
Date: Wed, 1 Jan 2025 19:37:57 +0100
Subject: [PATCH] gnu: musescore: Update to 4.4.4.

* gnu/packages/music.scm (musescore): Update to 4.4.4.
[source]<origin>: Remove snippet to delete precompiled binaries,
superseeded by flag "-DMUSE_MODULE_DIAGNOSTICS_CRASHPAD_CLIENT=OFF". The
directory src/diagnostics/crashpad_handler no longer exists.
[arguments]<#:configure-flags>: Decreased the number of vendored
libraries by four.
[inputs]: Move to Qt 6. Add the now unvendored libraries: flac, harfbuzz,
libopusenc and tinyxml2.

Change-Id: Ib5da630b73889625054f88b1e86af1e9666e6e93
---
 gnu/packages/music.scm | 64 +++++++++++++++++++++++++-----------------
 1 file changed, 38 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 4832f33f09..0f399bbb3b 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -38,7 +38,7 @@ 
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
 ;;; Copyright © 2021 Frank Pursel <frank.pursel@gmail.com>
-;;; Copyright © 2021 Rovanion Luckey <rovanion.luckey@gmail.com>
+;;; Copyright © 2021, 2024, 2025 Rovanion Luckey <rovanion.luckey@gmail.com>
 ;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
 ;;; Copyright © 2021, 2022, 2023 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
@@ -5424,7 +5424,7 @@  (define-public sfizz
 (define-public musescore
   (package
     (name "musescore")
-    (version "4.3.2")
+    (version "4.4.4")
     (source
      (origin
        (method git-fetch)
@@ -5433,21 +5433,31 @@  (define-public musescore
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1hx0l6d7avyfbh88hwn01h9q51mgd9zix91q2kgg1ax73pqxhfs2"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Delete precompiled binaries.
-           (delete-file-recursively "src/diagnostics/crashpad_handler")
-           (substitute* "src/diagnostics/CMakeLists.txt"
-             (("install") "#install"))))))
+        (base32 "0cjp1sp50pwmrgvpxjxg849s0vsvk2vcb66ym617nvlj761h0ngz"))
+       (modules '((guix build utils)))))
     (build-system qt-build-system)
     (arguments
-     `(#:configure-flags
-       `("-DDOWNLOAD_SOUNDFONT=OFF"
-         "-DBUILD_DIAGNOSTICS=OFF"
-         "-DMUSESCORE_BUILD_CONFIG=release"
-         "-DUSE_SYSTEM_FREETYPE=ON")
+     `(;; In order for qt-build-system to build against qt-base 6 and not 5.
+       #:qtbase ,qtbase
+       #:configure-flags
+       `("-DMUSE_APP_BUILD_MODE=release"
+         ;; Disable the build and usage of the `/bin/crashpad_handler` utility -
+         ;; it does automatic crash reporting and is distributed as a
+         ;; pre-compiled binary in the source-tree of MuseScore:
+         ;;  https://github.com/musescore/MuseScore/issues/15571
+         ;; Renamed from MUE_BUILD_CRASHPAD_CLIENT, MUE_BUILD_DIAGNOSTICS_MODULE
+         ;; https://github.com/musescore/MuseScore/commit/6f269e8b072cca36cb76eb016cb60c1c1c2b9906
+         "-DMUSE_MODULE_DIAGNOSTICS_CRASHPAD_CLIENT=OFF"
+         ;;; These five lines asks that Guix' versions of system libraries are used.
+         "-DMUE_COMPILE_USE_SYSTEM_FREETYPE=ON"
+         "-DMUE_COMPILE_USE_SYSTEM_HARFBUZZ=ON"
+         "-DMUE_COMPILE_USE_SYSTEM_TINYXML=ON"
+         "-DMUE_COMPILE_USE_SYSTEM_OPUSENC=ON" ; Ipmlies -DMUE_COMPILE_USE_SYSTEM_OPUS=ON
+         "-DMUE_COMPILE_USE_SYSTEM_FLAC=ON"
+         ;; Disable download of soundfont during build.
+         "-DDOWNLOAD_SOUNDFONT=OFF"
+         ;; Don't bundle Qt QML files, relevant really only for Darwin.
+         "-DMUE_COMPILE_INSTALL_QTQML_FILES=OFF")
        ;; There are tests, but no simple target to run.  The command used to
        ;; run them is:
        ;;
@@ -5458,30 +5468,32 @@  (define-public musescore
        ;; So we simply skip them.
        #:tests? #f))
     (native-inputs
-     (list git-minimal pkg-config qttools-5))
+     (list git-minimal pkg-config qttools))
     (inputs
      (list alsa-lib
+           flac
            freetype
            `(,gtk+ "bin")               ;for gtk-update-icon-cache
+           harfbuzz
            jack-1
            lame
            libogg
+           libopusenc
            libsndfile
            libvorbis
            portaudio
            portmidi
            pulseaudio
            python
-           qtbase-5
-           qtdeclarative-5
-           qtgraphicaleffects
-           qtnetworkauth-5
-           qtquickcontrols-5
-           qtquickcontrols2-5
-           qtscript
-           qtsvg-5
-           qtx11extras
-           qtxmlpatterns))
+           qt5compat
+           qtbase
+           qtdeclarative
+           qtnetworkauth
+           qtscxml
+           qtshadertools
+           qtsvg
+           qtwayland
+           tinyxml2))
     (propagated-inputs
      (list `(,alsa-plugins "pulseaudio"))) ;for libasound_module_conf_pulse.so
     (synopsis "Music composition and notation software")

base-commit: 461d773adead955e2daead70cee4415f7f0f00be
prerequisite-patch-id: 7a77c9e2af02bf1a414a08e0380a523af0074899
-- 
2.46.0