~ruther/guix-local

0d6cafa3f11585bd0b9189fdf35871fbfd6838f8 — Sughosha 7 months ago b394a3a
gnu: jamesdsp: Update to 2.7.0-0.53cf098.

* gnu/packages/audio.scm (jamesdsp): Update to 2.7.0-0.53cf098.
[arguments]<#:phases>: Replace 'build, 'check and 'install phases with those
from gnu-build-system.
[source]<patches>: Remove "jamesdsp-fix-bulid-on-pipewire-1.4.0.patch".
* gnu/local.mk: Deregister it.

Change-Id: I4d8809cc32cc24a3dc14f9cc465587e3cb0f61c5
3 files changed, 123 insertions(+), 175 deletions(-)

M gnu/local.mk
M gnu/packages/audio.scm
D gnu/packages/patches/jamesdsp-fix-bulid-on-pipewire-1.4.0.patch
M gnu/local.mk => gnu/local.mk +0 -1
@@ 1619,7 1619,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/irrlicht-link-against-needed-libs.patch	\
  %D%/packages/patches/isl-0.11.1-aarch64-support.patch		\
  %D%/packages/patches/ispell-for-linphone-cmake.patch		\
  %D%/packages/patches/jamesdsp-fix-bulid-on-pipewire-1.4.0.patch\
  %D%/packages/patches/jami-find-package-avutil.patch		\
  %D%/packages/patches/jami-libjami-headers-search.patch	\
  %D%/packages/patches/jami-qwindowkit.patch			\

M gnu/packages/audio.scm => gnu/packages/audio.scm +123 -114
@@ 872,120 872,129 @@ purposes developed at Queen Mary, University of London.")
    (license license:gpl2+)))

(define-public jamesdsp
  (package
    (name "jamesdsp")
    (version "2.7.0")
    (source
     (origin
       (method git-fetch)
       (uri
        (git-reference
          (url "https://github.com/Audio4Linux/JDSP4Linux")
          (commit version)
          ;; Recurse GraqhicEQWidget, FlatTabWidget, LiquidEqualizerWidget and
          ;; EELEditor.
          (recursive? #t)))
       (file-name (git-file-name name version))
       (sha256
        (base32 "17vx12kbvwxvb69vzrlb82mrgf6sl3plyk71g9f39p49ialdsnbr"))
       (modules '((guix build utils)))
       (snippet
        ;; Unbundle 3rd party libraries.
        '(begin
           ;; Delete the bundled 3rd party libraries.
           (for-each delete-file-recursively
            (list "3rdparty"
                  "src/subprojects/EELEditor/3rdparty"
                  "src/subprojects/EELEditor/QCodeEditor"
                  "src/subprojects/EELEditor/src/EELEditor-Linker.pri"))
           (with-directory-excursion "src"
             (substitute* "src.pro"
               ;; Do not use bundled 3rd party libraries.
               ((".*3rdparty.*") "")
               ;; Link required libraries from system.
               (("-ldl")
                (string-join '("-ldl"
                               "-lasync++"
                               "-lQCodeEditor"
                               "-lqcustomplot"
                               "-lqtadvanceddocking-qt6"
                               "-lqtcsv"
                               "-lwaf")
                               " ")))
             ;; Fix including WAF headers.
             (substitute* "MainWindow.cpp"
                       (("<Animation") "<WAF/Animation"))
             ;; Do not use resources from the bundled docking-system.
             (substitute* '("interface/fragment/AppManagerFragment.ui")
               ((".*location.*3rdparty.*") "")
               ((" resource=.*>") ">"))
             (with-directory-excursion "subprojects/EELEditor/src"
               ;; Do not use bundled QCodeEditor and docking-system.
               (substitute* "EELEditor.pri"
                 ((".*(QCodeEditor|docking-system).*") ""))
               ;; Do not link to bundled docking-system.
  (let ((commit "53cf0989681ba38755208c8aec063f29ed8586d3")
        (revision "0"))
    (package
      (name "jamesdsp")
      (version (git-version "2.7.0" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri
          (git-reference
            (url "https://github.com/Audio4Linux/JDSP4Linux")
            (commit commit)
            ;; Recurse GraqhicEQWidget, FlatTabWidget, LiquidEqualizerWidget and
            ;; EELEditor.
            (recursive? #t)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "1b5612gr2gfmj1h5hdzfa9xxdwixia06a34n2zs04cra94clif9i"))
         (modules '((guix build utils)))
         (snippet
          ;; Unbundle 3rd party libraries.
          '(begin
             ;; Delete the bundled 3rd party libraries.
             (for-each delete-file-recursively
              (list "3rdparty"
                    "src/subprojects/EELEditor/3rdparty"
                    "src/subprojects/EELEditor/QCodeEditor"
                    "src/subprojects/EELEditor/src/EELEditor-Linker.pri"))
             (with-directory-excursion "src"
               (substitute* "src.pro"
                 ((".*EELEditor-Linker.*") ""))
               ;; Fix including headers from the system.
               (substitute* (find-files "." "\\.(cpp|h)$")
                 (("#include <Dock") "#include <qtadvanceddocking-qt6/Dock")
                 (("#include <FloatingDock")
                  "#include <qtadvanceddocking-qt6/FloatingDock")
                 (("#include <QSyntaxStyle")
                  "#include <QCodeEditor/QSyntaxStyle")
                 (("#include <QStyleSyntaxHighlighter")
                  "#include <QCodeEditor/QStyleSyntaxHighlighter")
                 (("#include <QHighlightRule")
                  "#include <QCodeEditor/QHighlightRule")
                 (("#include <QLanguage") "#include <QCodeEditor/QLanguage")
                 (("#include <QCodeEditor\\.hpp")
                  "#include <QCodeEditor/QCodeEditor.hpp"))))))
       (patches (search-patches "jamesdsp-fix-bulid-on-pipewire-1.4.0.patch"))))
    (build-system qt-build-system)
    (arguments
     (list #:qtbase qtbase
           #:tests? #f ;no tests
           #:phases
           #~(modify-phases %standard-phases
               ;; Configure using qmake.
               (replace 'configure
                 (lambda* (#:key inputs #:allow-other-keys)
                   (invoke "qmake" (string-append "PREFIX=" #$output))))
               (add-after 'install 'install-icon
                 (lambda _
                   (let ((pixmaps (string-append #$output "/share/pixmaps")))
                     (mkdir-p pixmaps)
                     (copy-file "resources/icons/icon.png"
                                (string-append pixmaps "/jamesdsp.png")))))
               (add-after 'install-icon 'create-desktop-entry-file
                 (lambda _
                   (make-desktop-entry-file
                    (string-append #$output
                                  "/share/applications/jamesdsp.desktop")
                    #:name "JamesDSP"
                    #:comment "Audio effect processor"
                    #:keywords '("equalizer" "audio" "effect")
                    #:categories '("AudioVideo" "Audio")
                    #:exec (string-append #$output "/bin/jamesdsp")
                    #:icon (string-append #$output "/share/pixmaps/jamesdsp.png")
                    #:startup-notify #f))))))
    (native-inputs
     (list pkg-config))
    (inputs
     (list asyncplusplus
           glibmm-2.66
           libarchive
           pipewire
           qcodeeditor
           qcustomplot
           qt-advanced-docking-system
           qtcsv
           qtpromise
           qtsvg
           qtwidgetanimationframework))
    (home-page "https://github.com/Audio4Linux/JDSP4Linux")
    (synopsis "Audio effect processor for PipeWire and PulseAudio clients")
    (description "JamesDSP is an audio effect processor for PipeWire and
                 ;; Do not use bundled 3rd party libraries.
                 ((".*3rdparty.*") "")
                 ;; Link required libraries from system.
                 (("-ldl")
                  (string-join '("-ldl"
                                 "-lasync++"
                                 "-lQCodeEditor"
                                 "-lqcustomplot"
                                 "-lqtadvanceddocking-qt6"
                                 "-lqtcsv"
                                 "-lwaf")
                                 " ")))
               ;; Fix including WAF headers.
               (substitute* "MainWindow.cpp"
                         (("<Animation") "<WAF/Animation"))
               ;; Do not use resources from the bundled docking-system.
               (substitute* '("interface/fragment/AppManagerFragment.ui")
                 ((".*location.*3rdparty.*") "")
                 ((" resource=.*>") ">"))
               (with-directory-excursion "subprojects/EELEditor/src"
                 ;; Do not use bundled QCodeEditor and docking-system.
                 (substitute* "EELEditor.pri"
                   ((".*(QCodeEditor|docking-system).*") ""))
                 ;; Do not link to bundled docking-system.
                 (substitute* "src.pro"
                   ((".*EELEditor-Linker.*") ""))
                 ;; Fix including headers from the system.
                 (substitute* (find-files "." "\\.(cpp|h)$")
                   (("#include <Dock") "#include <qtadvanceddocking-qt6/Dock")
                   (("#include <FloatingDock")
                    "#include <qtadvanceddocking-qt6/FloatingDock")
                   (("#include <QSyntaxStyle")
                    "#include <QCodeEditor/QSyntaxStyle")
                   (("#include <QStyleSyntaxHighlighter")
                    "#include <QCodeEditor/QStyleSyntaxHighlighter")
                   (("#include <QHighlightRule")
                    "#include <QCodeEditor/QHighlightRule")
                   (("#include <QLanguage") "#include <QCodeEditor/QLanguage")
                   (("#include <QCodeEditor\\.hpp")
                    "#include <QCodeEditor/QCodeEditor.hpp"))))))))
      (build-system qt-build-system)
      (arguments
       (list #:qtbase qtbase
             #:tests? #f ;no tests
             #:parallel-build? #f ;fails on some systems
             #:modules '((guix build qt-build-system)
                         ((guix build gnu-build-system) #:prefix gnu:)
                         (guix build utils))
             #:phases
             #~(modify-phases %standard-phases
                 ;; Configure using qmake.
                 (replace 'configure
                   (lambda _
                     (invoke "qmake" (string-append "PREFIX=" #$output))))
                 (replace 'build (assoc-ref gnu:%standard-phases 'build))
                 (replace 'check (assoc-ref gnu:%standard-phases 'check))
                 (replace 'install (assoc-ref gnu:%standard-phases 'install))
                 (add-after 'install 'install-icon
                   (lambda _
                     (let ((pixmaps (string-append #$output "/share/pixmaps")))
                       (mkdir-p pixmaps)
                       (copy-file "resources/icons/icon.png"
                                  (string-append pixmaps "/jamesdsp.png")))))
                 (add-after 'install-icon 'create-desktop-entry-file
                   (lambda _
                     (make-desktop-entry-file
                      (string-append #$output
                                    "/share/applications/jamesdsp.desktop")
                      #:name "JamesDSP"
                      #:comment "Audio effect processor"
                      #:keywords '("equalizer" "audio" "effect")
                      #:categories '("AudioVideo" "Audio")
                      #:exec (string-append #$output "/bin/jamesdsp")
                      #:icon (string-append #$output
                                            "/share/pixmaps/jamesdsp.png")
                      #:startup-notify #f))))))
      (native-inputs
       (list pkg-config))
      (inputs
       (list asyncplusplus
             glibmm-2.66
             libarchive
             pipewire
             qcodeeditor
             qcustomplot
             qt-advanced-docking-system
             qtcsv
             qtpromise
             qtsvg
             qtwidgetanimationframework))
      (home-page "https://github.com/Audio4Linux/JDSP4Linux")
      (synopsis "Audio effect processor for PipeWire and PulseAudio clients")
      (description "JamesDSP is an audio effect processor for PipeWire and
PulseAudio clients, featuring:
@itemize
@item Automatic bass boost: Frequency-detecting bass-boost


@@ 1007,7 1016,7 @@ PulseAudio clients, featuring:
 dynamic code outline window, console output support and detailed error
 messages with inline code highlighting
@end itemize")
    (license license:gpl3+)))
      (license license:gpl3+))))

(define ardour-bundled-media
  (origin

D gnu/packages/patches/jamesdsp-fix-bulid-on-pipewire-1.4.0.patch => gnu/packages/patches/jamesdsp-fix-bulid-on-pipewire-1.4.0.patch +0 -60
@@ 1,60 0,0 @@
from https://github.com/Audio4Linux/JDSP4Linux/commit/b7d06cf197d1c02ff8cbd30cec5494dd20288b5f.patch

From b7d06cf197d1c02ff8cbd30cec5494dd20288b5f Mon Sep 17 00:00:00 2001
From: Toast <39011842+toast003@users.noreply.github.com>
Date: Fri, 21 Mar 2025 19:05:01 +0100
Subject: [PATCH] fix: make compatible with newer versions of pipewire

---
 src/audio/pipewire/PwPipelineManager.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/audio/pipewire/PwPipelineManager.cpp b/src/audio/pipewire/PwPipelineManager.cpp
index 81b10e26..c2e2c537 100644
--- a/src/audio/pipewire/PwPipelineManager.cpp
+++ b/src/audio/pipewire/PwPipelineManager.cpp
@@ -1152,7 +1152,7 @@ void on_registry_global(void* data,
       return;
     }
 
-    pw_node_add_listener(proxy, &nd->object_listener, &node_events, nd);
+    pw_proxy_add_object_listener(proxy, &nd->object_listener, &node_events, nd);
     pw_proxy_add_listener(proxy, &nd->proxy_listener, &node_proxy_events, nd);
 
     // sometimes PipeWire destroys the pointer before signal_idle is called,
@@ -1222,7 +1222,7 @@ void on_registry_global(void* data,
     pd->id = id;
     pd->serial = serial;
 
-    pw_link_add_listener(proxy, &pd->object_listener, &link_events, pd);
+    pw_proxy_add_object_listener(proxy, &pd->object_listener, &link_events, pd);
     pw_proxy_add_listener(proxy, &pd->proxy_listener, &link_proxy_events, pd);
 
     auto link_info = link_info_from_props(props);
@@ -1297,7 +1297,7 @@ void on_registry_global(void* data,
     pd->id = id;
     pd->serial = serial;
 
-    pw_module_add_listener(proxy, &pd->object_listener, &module_events, pd);
+    pw_proxy_add_object_listener(proxy, &pd->object_listener, &module_events, pd);
     pw_proxy_add_listener(proxy, &pd->proxy_listener, &module_proxy_events, pd);
 
     ModuleInfo m_info{.id = id, .serial = serial};
@@ -1328,7 +1328,7 @@ void on_registry_global(void* data,
     pd->id = id;
     pd->serial = serial;
 
-    pw_client_add_listener(proxy, &pd->object_listener, &client_events, pd);
+    pw_proxy_add_object_listener(proxy, &pd->object_listener, &client_events, pd);
     pw_proxy_add_listener(proxy, &pd->proxy_listener, &client_proxy_events, pd);
 
     ClientInfo c_info{.id = id, .serial = serial};
@@ -1387,7 +1387,7 @@ void on_registry_global(void* data,
         pd->id = id;
         pd->serial = serial;
 
-        pw_device_add_listener(proxy, &pd->object_listener, &device_events, pd);
+        pw_proxy_add_object_listener(proxy, &pd->object_listener, &device_events, pd);
         pw_proxy_add_listener(proxy, &pd->proxy_listener, &device_proxy_events, pd);
 
         DeviceInfo d_info{.id = id, .serial = serial, .media_class = media_class};