all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#75037] WIP: Upgrade MuseScore to 4.4.4
@ 2024-12-22 22:45 Rovanion Luckey
  0 siblings, 0 replies; only message in thread
From: Rovanion Luckey @ 2024-12-22 22:45 UTC (permalink / raw)
  To: 75037


[-- Attachment #1.1: Type: text/plain, Size: 1542 bytes --]

Hi,
I have been working on and off for the last month to get MuseScore 4.4.x
packaged for Guix. I have come so far as to have the project build but not
run. The program gets partially through its startup procedure but fails
with a QML related error:

23:10:58.058 | WARN  | main_thread     | Qt              |
> QQmlApplicationEngine failed to load component
> 23:10:58.112 | ERROR | main_thread     | GuiApp::perform | error:
> qrc:/qml/platform/linux/Main.qml: module "QtQml.WorkerScript" is not
> installed
> 23:10:58.112 | WARN  | main_thread     | Qt              |
> qrc:/qml/platform/linux/Main.qml: module "QtQml.WorkerScript" is not
> installed
> 23:10:58.112 | WARN  | main_thread     | Qt              |
> QObject::connect(QQuickWindow, QApplication): invalid nullptr parameter
> 23:10:58.113 | INFO  | main_thread     | AudioOutputDeviceController::init
> | Available output devices changed, checking connection...
> 23:10:58.116 | ERROR | main_thread     | GuiApp::perform | failed Qml load


If anyone has a pointer such are gracefully received. Right now it's time
for me to give up for today.

Unrelated: The largest change that's needed for this build to work is to
change build system for HarfBuzz to meson. This because the makefile based
build does not produce correct CMake-files for HarfBuzz. The attached
work-in-progress-patch creates a separate package for HarfBuzz for
convenience while developing the patch - but the build system should
probably be changed for the real HarfBuzz package in the real patch.

Cheers!

[-- Attachment #1.2: Type: text/html, Size: 1867 bytes --]

[-- Attachment #2: 0001-WIP-gnu-music-Update-to-4.4.4.patch --]
[-- Type: text/x-patch, Size: 7105 bytes --]

From 291b21f68a4248023f9da0b9820a095b7649faa6 Mon Sep 17 00:00:00 2001
Message-ID: <291b21f68a4248023f9da0b9820a095b7649faa6.1734906963.git.rovanion.luckey@gmail.com>
From: Rovanion Luckey <rovanion.luckey@gmail.com>
Date: Sun, 22 Dec 2024 23:32:21 +0100
Subject: [PATCH] WIP: gnu: music: Update to 4.4.4.

*  (music): Update to 4.4.4.

Change-Id: Ia5509faad497a13e4c8b1e8d0269449fc5426f43
---
 gnu/packages/gtk.scm   | 40 +++++++++++++++++++++++++++++
 gnu/packages/music.scm | 58 +++++++++++++++++++++++++-----------------
 2 files changed, 74 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ef1391e8ba..d422403dec 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -37,6 +37,7 @@
 ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2024 Rovanion Luckey <rovanion.luckey@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -318,6 +319,45 @@ (define-public harfbuzz
                                 "See 'COPYING' in the distribution."))
     (home-page "https://www.freedesktop.org/wiki/Software/HarfBuzz/")))
 
+(define-public harfbuzz-meson
+  (package
+    (name "harfbuzz")
+    (version "8.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/harfbuzz/harfbuzz"
+                                  "/releases/download/" version "/harfbuzz-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0izq2lpqxrf1l755nxrxkkiarywkx5j43asznankxplbxgm0358h"))))
+    (build-system meson-build-system)
+    (outputs '("out"
+               "bin"))                  ;160K, only hb-view depend on cairo
+    (inputs
+     (list cairo))
+    (propagated-inputs
+     ;; There are all in the Requires or Requires.private field of '.pc'.
+     (list glib graphite2 icu4c))
+    (native-inputs
+     (append (list `(,glib "bin"))      ;for glib-mkenums
+             (if (target-hurd?)
+                 '()
+                 (list gobject-introspection))
+             (list pkg-config
+                   python-wrapper
+                   which)))
+    (arguments
+     (list #:configure-flags
+           #~(list "-Dgraphite2=enabled"
+                   (string-append "--bindir=" #$output:bin "/bin"))))
+    (synopsis "OpenType text shaping engine")
+    (description
+     "HarfBuzz is an OpenType text shaping engine.")
+    (license (license:x11-style "file://COPYING"
+                                "See 'COPYING' in the distribution."))
+    (home-page "https://www.freedesktop.org/wiki/Software/HarfBuzz/")))
+
 (define-public libdatrie
   (package
     (name "libdatrie")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 2fbdcf4ea9..9de1ea442c 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 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>
@@ -5416,7 +5416,7 @@ (define-public sfizz
 (define-public musescore
   (package
     (name "musescore")
-    (version "4.3.2")
+    (version "4.4.4")
     (source
      (origin
        (method git-fetch)
@@ -5425,21 +5425,30 @@ (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")
+       `("-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"
+         )
        ;; There are tests, but no simple target to run.  The command used to
        ;; run them is:
        ;;
@@ -5450,30 +5459,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))
     (inputs
      (list alsa-lib
            freetype
            `(,gtk+ "bin")               ;for gtk-update-icon-cache
+           harfbuzz-meson
            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
+           tinyxml2
+           qtbase
+           qtdeclarative
+           qtnetworkauth
+           qt5compat
+           qtwayland
+           qtsvg
            qtx11extras
-           qtxmlpatterns))
+           qtscxml))
     (propagated-inputs
      (list `(,alsa-plugins "pulseaudio"))) ;for libasound_module_conf_pulse.so
     (synopsis "Music composition and notation software")

base-commit: 11855e1c2863c56d9a3364cdac614a529a1c7cc2
-- 
2.46.0


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-12-22 22:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-22 22:45 [bug#75037] WIP: Upgrade MuseScore to 4.4.4 Rovanion Luckey

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.