Subject: [bug#60232] [PATCH][WIP] gnu: zrythm: Update to 1.0.0-beta.4.5.1.

From: Antero Mejr <[email-masked]>
Date: Wed, 21 Dec 2022 03:12:54 +0000

* gnu/packages/music.scm (zrythm): Update to 1.0.0-beta.4.5.1.
---
Currently zrythm does not build, and before that it would crash immediately:
https://issues.guix.gnu.org/54026
This patchset is better than what we have now, but still doesn't work.

zrythm silently fails to launch the main window after the project selection
screen, my guess is that it may be an issue with libpanel, or the app itself.

I may come back to this in the future, not sure.

 gnu/packages/music.scm | 112 ++++++++++++++++++++++++++---------------
 1 file changed, 72 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 614eb57791..2ec2880c49 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -110,6 +110,7 @@ (define-module (gnu packages music)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages datastructures)
+  #:use-module (gnu packages digest)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages emacs)
@@ -138,6 +139,7 @@ (define-module (gnu packages music)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libusb)
@@ -6237,7 +6239,7 @@ (define-public zrythm
     ;; distros to make necessary changes to integrate the software into the
     ;; distribution.
     (name "zrythm")
-    (version "1.0.0-alpha.12.0.1")
+    (version "1.0.0-beta.4.5.1")
     (source
       (origin
         (method url-fetch)
@@ -6245,48 +6247,78 @@ (define-public zrythm
                             version ".tar.xz"))
         (sha256
           (base32
-           "1si4n8rdg0a3frlbj6yqpyzr4f20v3cpl4m6kv0yf7r25psyl5pk"))))
+           "03p958xir2p1pzhiqbqq8sax8zaw4b7ww64ymxcvznjrcj4clrpm"))))
    (build-system meson-build-system)
    (arguments
-    `(#:glib-or-gtk? #t
-      #:configure-flags
-      `("-Dtests=true"
-        "-Dmanpage=true"
-        "-Ddseg_font=false"
-        "-Dgraphviz=enabled" ; for exporting routing graphs
-        "-Dguile=enabled" ; for Guile scripting
-        "-Djack=enabled" ; for JACK audio/MIDI backend
-        "-Drtmidi=enabled" ; for RtMidi backend (ALSA sequencer)
-        "-Dsdl=enabled"))) ; for SDL audio backend (which uses ALSA)
-   (inputs
-    `(("alsa-lib" ,alsa-lib)
-      ("jack" ,jack-1)
-      ("font-dseg" ,font-dseg)
-      ("fftw" ,fftw)
-      ("fftwf" ,fftwf)
-      ("gettext" ,gettext-minimal)
-      ("glibc" ,glibc)
-      ("graphviz" ,graphviz)
-      ("gtk+" ,gtk+)
-      ("gtksourceview" ,gtksourceview)
-      ("guile" ,guile-2.2)
-      ("libaudec" ,libaudec)
-      ("libcyaml" ,libcyaml)
-      ("libsamplerate" ,libsamplerate)
-      ("libsndfile" ,libsndfile)
-      ("libyaml" ,libyaml)
-      ("lilv" ,lilv)
-      ("lv2" ,lv2)
-      ("pulseaudio" ,pulseaudio)
-      ("reproc" ,reproc)
-      ("rubberband" ,rubberband)
-      ("rtmidi" ,rtmidi-4.0)
-      ("sdl2" ,sdl2)
-      ("xdg-utils" ,xdg-utils)
-      ("zstd" ,zstd "lib")))
+    (list #:tests? #f ;123 pass, 3 fail. Appears network-related.
+          #:glib-or-gtk? #t
+          #:configure-flags
+          #~(list "-Dtests=true"
+                  "-Dmanpage=false" ; fish-completions breaks this
+                  "-Ddseg_font=false"
+                  "-Dgraphviz=enabled" ; for exporting routing graphs
+                  "-Dguile=enabled" ; for Guile scripting
+                  "-Djack=enabled" ; for JACK audio/MIDI backend
+                  "-Drtmidi=enabled" ; for RtMidi backend (ALSA sequencer)
+                  "-Dsdl=enabled") ; for SDL audio backend (which uses ALSA)
+          #:phases #~(modify-phases %standard-phases
+                       (add-after 'unpack 'adjust-build
+                         (lambda _
+                           (setenv "GUILE_AUTO_COMPILE" "0")))
+                       (add-after 'install 'wrap-program
+                         (lambda _
+                           (wrap-program (string-append #$output "/bin/zrythm")
+                             `("GDK_PIXBUF_MODULE_FILE" =
+                               (,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
+   (propagated-inputs (list breeze-icons
+                            gdk-pixbuf
+                            librsvg)) ;needed for pixbuf SVG loading
+   (inputs (list alsa-lib
+                 boost
+                 carla
+                 curl
+                 fftw
+                 fftwf
+                 flex
+                 font-dseg
+                 gettext-minimal
+                 glib-next
+                 glibc
+                 graphviz
+                 gtk
+                 gtksourceview
+                 guile-2.2
+                 jack-2
+                 json-glib
+                 libadwaita
+                 libaudec
+                 (module-ref
+                  (resolve-interface '(gnu packages debug)) 'libbacktrace)
+                 libcyaml
+                 libpanel
+                 libsamplerate
+                 libsndfile
+                 libyaml
+                 lilv
+                 lv2
+                 pango-next
+                 pulseaudio
+                 reproc
+                 rtmidi
+                 rubberband
+                 sdl2
+                 vamp
+                 xdg-utils
+                 xxhash
+                 zix
+                 `(,zstd "lib")))
    (native-inputs
-     (list pkg-config help2man
-           `(,glib "bin"))) ; for 'glib-compile-resources'
+    (list help2man
+          `(,glib-next "bin") ; for 'glib-compile-resources'
+          pkg-config
+          python-sphinx
+          python-sphinx-intl
+          sassc))
    (synopsis "Digital audio workstation focusing on usability")
    (description "Zrythm is a digital audio workstation designed to be
 featureful and easy to use.  It offers unlimited automation options, LV2
-- 
2.38.1