GNU bug report logs - #74344
[PATCH 0/7] gnu: Add jamesdsp.

Previous Next

Package: guix-patches;

Reported by: Sughosha <sughosha <at> disroot.org>

Date: Wed, 13 Nov 2024 15:44:02 UTC

Severity: normal

Tags: patch

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 74344 in the body.
You can then email your comments to 74344 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to gabriel <at> erlikon.ch, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Wed, 13 Nov 2024 15:44:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Sughosha <sughosha <at> disroot.org>:
New bug report received and forwarded. Copy sent to gabriel <at> erlikon.ch, guix-patches <at> gnu.org. (Wed, 13 Nov 2024 15:44:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: guix-patches <at> gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH 0/7] gnu: Add jamesdsp.
Date: Wed, 13 Nov 2024 21:07:43 +0530
This patch series adds jamesdsp package.

Sughosha (7):
  gnu: Add asyncplusplus.
  gnu: Add qcodeeditor.
  gnu: Add qt-advanced-docking-system.
  gnu: Add qtcsv.
  gnu: Add qtpromise.
  gnu: Add widgetanimationframework.
  gnu: Add jamesdsp.

 gnu/packages/audio.scm | 133 ++++++++++++++++++++++++++++
 gnu/packages/cpp.scm   |  27 ++++++
 gnu/packages/qt.scm    | 194 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 354 insertions(+)


base-commit: 2a6d96425eea57dc6dd48a2bec16743046e32e06
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Wed, 13 Nov 2024 15:50:02 GMT) Full text and rfc822 format available.

Message #8 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH 1/7] gnu: Add asyncplusplus.
Date: Wed, 13 Nov 2024 21:16:17 +0530
* gnu/packages/cpp.scm (asyncplusplus): New variable.

Change-Id: I6ba1b983ce05a634937d0d972e670ce636df3b94
---
 gnu/packages/cpp.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index f8e8557ef1..23d8439d00 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -190,6 +190,33 @@ (define-public asmjit
 development effort.")
       (license license:zlib))))
 
+(define-public asyncplusplus
+  (package
+    (name "asyncplusplus")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Amanieu/asyncplusplus")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0iswbh7y46kn412c52af0n8bc4fplm3y94yh10n2lchispzar72j"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Fix install location of cmake files.
+               '(substitute* "CMakeLists.txt"
+                  (("DESTINATION cmake")
+                    "DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake")))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f)) ;no tests
+    (home-page "https://github.com/Amanieu/asyncplusplus")
+    (synopsis "Concurrency framework for C++11")
+    (description "Async++ is a concurrency framework for C++11.")
+    (license license:expat)))
+
 (define-public biblesync
   (package
     (name "biblesync")

base-commit: 2a6d96425eea57dc6dd48a2bec16743046e32e06
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Wed, 13 Nov 2024 15:51:02 GMT) Full text and rfc822 format available.

Message #11 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH 2/7] gnu: Add qcodeeditor.
Date: Wed, 13 Nov 2024 21:16:18 +0530
* gnu/packages/qt.scm (qcodeeditor): New variable.

Change-Id: I331a184f83891ed6f8cc9b787a4bbf6cc48b35dd
---
 gnu/packages/qt.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 37f46e788e..c6488acdd8 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4660,6 +4660,42 @@ (define-public dotherside
 @end itemize\n")
     (license license:lgpl3)))                    ;version 3 only (+ exception)
 
+(define-public qcodeeditor
+  (let ((commit "dc644d41b68978ab9a5591ba891a223221570e74")
+        (revision "0"))
+    (package
+      (name "qcodeeditor")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Megaxela/QCodeEditor")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1bpvfwbgp275w79dzrd7d9k3md1ch7n88rh59mxdfj8s911n42j8"))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:tests? #f ;no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 (replace 'install
+                   (lambda _
+                     (install-file "libQCodeEditor.a"
+                                   (string-append #$output "/lib"))
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output
+                                                      "/include/QCodeEditor")))
+                       (find-files "../source/include/internal" "\\.hpp")))))))
+      (home-page "https://github.com/Megaxela/QCodeEditor")
+      (synopsis "Qt code editor widget")
+      (description
+       "QCodeEditor is a Qt widget for editing/viewing code.")
+      (license license:expat))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Wed, 13 Nov 2024 15:51:02 GMT) Full text and rfc822 format available.

Message #14 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH 3/7] gnu: Add qt-advanced-docking-system.
Date: Wed, 13 Nov 2024 21:16:19 +0530
* gnu/packages/qt.scm (qt-advanced-docking-system): New variable.

Change-Id: I359c911cbbb36f8f96979021cb917757dedda505
---
 gnu/packages/qt.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index c6488acdd8..830e571f44 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4696,6 +4696,48 @@ (define-public qcodeeditor
        "QCodeEditor is a Qt widget for editing/viewing code.")
       (license license:expat))))
 
+(define-public qt-advanced-docking-system
+  (package
+    (name "qt-advanced-docking-system")
+    (version "4.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+          (url "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
+          (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xb4j5pva3qbbj01xp5y98544hgh14p60z2dfypq4ikz6n3ac0z7"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Disable building examples and demo.
+           (substitute* "ads.pro"
+             ((".*demo.*") "")
+             ((".*examples.*") ""))
+           ;; Include headers in their own directory.
+           (substitute* "src/src.pro"
+             (("/include") "/include/QtAdvancedDocking"))))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:tests? #f ;no tests
+           #:phases
+           #~(modify-phases %standard-phases
+               (replace 'configure
+                 (lambda _
+                   (invoke "qmake" (string-append "PREFIX=" #$output)))))))
+    (inputs
+     (list libxkbcommon))
+    (home-page "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
+    (synopsis "Advanced docking system for Qt")
+    (description
+     "Qt Advanced Docking System lets you create customizable layouts using a
+window docking system.")
+    (license license:lgpl2.1+)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Wed, 13 Nov 2024 15:51:03 GMT) Full text and rfc822 format available.

Message #17 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH 4/7] gnu: Add qtcsv.
Date: Wed, 13 Nov 2024 21:16:20 +0530
* gnu/packages/qt.scm (qtcsv): New variable.

Change-Id: I98f324ac982b34df395260298585a9f59b3eae6f
---
 gnu/packages/qt.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 830e571f44..6108763812 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4738,6 +4738,29 @@ (define-public qt-advanced-docking-system
 window docking system.")
     (license license:lgpl2.1+)))
 
+(define-public qtcsv
+  (package
+    (name "qtcsv")
+    (version "1.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/iamantony/qtcsv")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c9i93kr7wvpr01i4wixi9mf991nd3k2adg5fy0vxwwlvvc7dgdw"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:test-target "tests"))
+    (home-page "https://github.com/iamantony/qtcsv")
+    (synopsis "Library for reading and writing csv-files in Qt")
+    (description
+     "qtcsv is a library for reading and writing csv-files in Qt.")
+    (license license:expat)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Wed, 13 Nov 2024 15:52:01 GMT) Full text and rfc822 format available.

Message #20 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH 5/7] gnu: Add qtpromise.
Date: Wed, 13 Nov 2024 21:16:21 +0530
* gnu/packages/qt.scm (qtpromise): New variable.

Change-Id: I373a383187ec8ba73c2e8fcd5a5a5631d1f80a0d
---
 gnu/packages/qt.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 6108763812..efff50a60c 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4761,6 +4761,43 @@ (define-public qtcsv
      "qtcsv is a library for reading and writing csv-files in Qt.")
     (license license:expat)))
 
+(define-public qtpromise
+  (package
+    (name "qtpromise")
+    (version "0.7.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/simonbrunel/qtpromise")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nsh6v5k4kdrrhcd6adz947n0dka4rrbx8f8rvm1175545nbi67s"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:test-target "tests"
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'install 'fix-include-path
+                 (lambda _
+                   (chdir "../source")
+                   (substitute* "include/QtPromise"
+                     (("../src/") ""))))
+               (replace 'install
+                 (lambda _
+                   (let ((include (string-append #$output "/include")))
+                     (install-file "include/QtPromise"
+                                   (string-append include))
+                     (copy-recursively "src/qtpromise"
+                                       (string-append include
+                                                      "/qtpromise"))))))))
+    (home-page "https://qtpromise.netlify.app/")
+    (synopsis "Promises/A+ implementation for Qt/C++")
+    (description
+     "This package provides Promises/A+ implementation for Qt/C++.")
+    (license license:expat)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Wed, 13 Nov 2024 15:52:02 GMT) Full text and rfc822 format available.

Message #23 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH 6/7] gnu: Add widgetanimationframework.
Date: Wed, 13 Nov 2024 21:16:22 +0530
* gnu/packages/qt.scm (widgetanimationframework): New variable.

Change-Id: Iacf862eac61b521cf2dd8da9249a6411f2f737a1
---
 gnu/packages/qt.scm | 56 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index efff50a60c..1a9924b1ca 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2022, 2024 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2023 Herman Rimm <herman <at> rimm.ee>
 ;;; Copyright © 2024 Foundation Devices, Inc. <hello <at> foundation.xyz>
+;;; Copyright © 2024 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4798,6 +4799,61 @@ (define-public qtpromise
      "This package provides Promises/A+ implementation for Qt/C++.")
     (license license:expat)))
 
+(define-public widgetanimationframework
+  (let ((commit "b07ab59cee7a21eb29d29cb67c160681f13ac5ae") ;no tags
+          (revision "0"))
+    (package
+      (name "widgetanimationframework")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+           (git-reference
+             (url "https://github.com/dimkanovikov/WidgetAnimationFramework")
+             (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1smbdrzk05vvbf6lpjdq82k4y2kc4yv1gk5388qbslbzlb6ihls6"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             (rename-file "demo/waf-demo.pro" "src/waf.pro")
+             (substitute* "src/waf.pro"
+               (("main.cpp ") "")
+               (("app") "lib")
+               (("waf-demo") "waf"))))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:qtbase qtbase
+             #:tests? #f ;no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 (replace 'configure
+                   (lambda _
+                     (chdir "src")
+                     (invoke "qmake")))
+                 (replace 'install
+                   (lambda _
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/lib/"
+                                                      (dirname file))))
+                       (find-files "." "\\.so"))
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/include/WAF/"
+                                                      (dirname file))))
+                       (find-files "." "\\.h$")))))))
+      (home-page "https://github.com/dimkanovikov/WidgetAnimationFramework")
+      (synopsis "Extension for animating Qt widgets")
+      (description
+       "Widget Animation Framework (WAF) is an extension for animating Qt
+widgets.")
+      (license license:lgpl3))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to gabriel <at> erlikon.ch, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Wed, 13 Nov 2024 15:52:02 GMT) Full text and rfc822 format available.

Message #26 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH 7/7] gnu: Add jamesdsp.
Date: Wed, 13 Nov 2024 21:16:23 +0530
* gnu/packages/audio.scm (jamesdsp): New variable.

Change-Id: I4ddc9709c5500e7d06a519481ddd26ba9f39905e
---
 gnu/packages/audio.scm | 133 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 467dc4a74f..541068b1ab 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -49,6 +49,7 @@
 ;;; Copyright © 2024 hapster <o.rojon <at> posteo.net>
 ;;; Copyright © 2024 mio <stigma <at> disroot.org>
 ;;; Copyright © 2024 Nikita Domnitskii <nikita <at> domnitskii.me>
+;;; Copyright © 2024 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -158,6 +159,7 @@ (define-module (gnu packages audio)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system waf)
   #:use-module (guix download)
@@ -755,6 +757,137 @@ (define-public qm-dsp
 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.
+        ;; NOTE: QCodeEditor from system fails to build EELEditor. WAF from
+        ;; system fails to build FlatTabWidget. 3rd party library found in
+        ;; LiquidEqualizerWidget is unknown. Hence these libraries found in
+        ;; their respective directories are untouched.
+        '(begin
+           ;; Delete the bundled 3rd party libraries.
+           (for-each delete-file-recursively
+            (list "3rdparty"
+                  "src/subprojects/EELEditor/3rdparty/docking-system"
+                  "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++"
+                               "-lqcustomplot"
+                               "-lqtadvanceddocking"
+                               "-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 docking-system.
+               (substitute* "EELEditor.pri"
+                 ((".*docking-system.*") ""))
+               ;; Do not link to bundled docking-system.
+               (substitute* "src.pro"
+                 ((".*EELEditor-Linker.*") ""))
+               ;; Fix including headers from the system.
+               (substitute* '("eeleditor.cpp"
+                              "eeleditor.h")
+                 (("<Dock") "<QtAdvancedDocking/Dock")
+                 (("<FloatingDock") "<QtAdvancedDocking/FloatingDock"))))))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:tests? #f ;no tests
+           #:phases
+           #~(modify-phases %standard-phases
+               (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
+           qcustomplot
+           qt-advanced-docking-system
+           qtcsv
+           qtpromise
+           qtsvg
+           widgetanimationframework))
+    (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
+@item Automatic dynamic range compressor: automated multiband dynamic range
+ adjusting effect
+@item Complex reverberation IIR network (Progenitor 2)
+@item Interpolated FIR equalizer with flexible bands
+@item Arbitrary response equalizer (also known as GraphicEQ from EqualizerAPO)
+@item AutoEQ database integration (requires network connection)
+@item Partitioned convolver (Auto segmenting convolution): Mono, stereo,
+ full/true stereo (LL, LR, RL, RR) impulse response
+@item Crossfeed: Realistic surround effects
+@item Soundstage wideness: A multiband stereo wideness controller
+@item ViPER-DDC: Parametric equalization on audio and creating VDC input files
+@item Analog modeling: An aliasing-free even harmonic generator
+@item Output limiter
+@item Scripting engine: Live programmable DSP using the EEL2 scripting language
+@item Scripting IDE featuring syntax highlighting, basic code completion,
+ dynamic code outline window, console output support and detailed error
+ messages with inline code highlighting
+@end itemize")
+    (license (list license:gpl3+
+                   license:gpl2      ;LiquidEqualizerWidget's 3rd party library
+                   license:gpl2+     ;GraphicEQWidget
+                   license:expat)))) ;QAnimatedSlider and QCodeEditor
+
 (define ardour-bundled-media
   (origin
     (method url-fetch)
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 26 Nov 2024 22:53:01 GMT) Full text and rfc822 format available.

Message #29 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Gabriel Wicki <gabriel <at> erlikon.ch>
To: Sughosha <sughosha <at> disroot.org>
Cc: 74344 <at> debbugs.gnu.org
Subject: Review
Date: Tue, 26 Nov 2024 23:52:35 +0100
hello there!

thanks for the submission!

general remarks:  try not to duplicate the synopsis in the description,
otherwise everything looks fine!

some questions/remarks:

 - why disable building examples and demo in qt-advanced-docking-system?

 - i am not sure the (chdir "../source") is necessary in qtpromise.
   can't you (substitute* "../source/include/QtPromise" ...) directly?

 - wouldn't it be nicer to call the variable (and the package)
   widget-animation-framework instead of widgetanimationframework?
   or qt-widget-animation-framework?

 - what does the (snippet ...) do in widgetanimationframework?  you
   could comment why this is necessary


have a nice week
gabber




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 08:20:03 GMT) Full text and rfc822 format available.

Message #32 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: 74344 <at> debbugs.gnu.org
Subject: Re: Review
Date: Thu, 28 Nov 2024 13:49:47 +0530
On Wednesday, November 27, 2024 4:22:35 AM  Gabriel Wicki wrote:
> hello there!
> 
> thanks for the submission!
> 
> general remarks:  try not to duplicate the synopsis in the description,
> otherwise everything looks fine!
> 
> some questions/remarks:
> 
>  - why disable building examples and demo in qt-advanced-docking-system?
> 
>  - i am not sure the (chdir "../source") is necessary in qtpromise.
>    can't you (substitute* "../source/include/QtPromise" ...) directly?
> 
>  - wouldn't it be nicer to call the variable (and the package)
>    widget-animation-framework instead of widgetanimationframework?
>    or qt-widget-animation-framework?
> 
>  - what does the (snippet ...) do in widgetanimationframework?  you
>    could comment why this is necessary
> 
> 
> have a nice week
> gabber

Thanks for the review.
I considered the points you mentioned and have a v2 patch series accordingly. 
I could not improve synopsis and description with the information provided in 
the respective README files. I have also made some more changes and mentioned 
them in the cover letter. I will send the v2 patch series in short.

-- 
Sughosha






Information forwarded to gabriel <at> erlikon.ch, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 10:13:01 GMT) Full text and rfc822 format available.

Message #35 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: [PATCH v2 0/7] gnu: Add jamesdsp.
Date: Thu, 28 Nov 2024 15:37:39 +0530
This patch series adds jamesdsp.

Made some changes according to Gabriel Wicki's remarks:
* Added comment for why disable building examples and demo in
qt-advanced-docking-system.
* Removed chdir and made changes in relation to the current working directory.
* Renamed widgetanimationframework with qt-widget-animation-framework.
* Added comment for what the snippet does.

Other changes:
* qcodeeditor: Add comment for the commit.
* qt-advanced-docking-system: Use the default build phase.
* jamesdsp: Fix including qt-advanced-docking-system.

Sughosha (7):
  gnu: Add asyncplusplus.
  gnu: Add qcodeeditor.
  gnu: Add qt-advanced-docking-system.
  gnu: Add qtcsv.
  gnu: Add qtpromise.
  gnu: Add qt-widget-animation-framework.
  gnu: Add jamesdsp.

 gnu/packages/audio.scm | 133 +++++++++++++++++++++++++++++
 gnu/packages/cpp.scm   |  27 ++++++
 gnu/packages/qt.scm    | 188 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 348 insertions(+)


base-commit: e5140eebdfc04b90c046856d95b2ef50c12fee72
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 10:14:02 GMT) Full text and rfc822 format available.

Message #38 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: [PATCH v2 1/7] gnu: Add asyncplusplus.
Date: Thu, 28 Nov 2024 15:37:40 +0530
* gnu/packages/cpp.scm (asyncplusplus): New variable.

Change-Id: I6ba1b983ce05a634937d0d972e670ce636df3b94
---
 gnu/packages/cpp.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index eacc6e46ab..9aaed58985 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -190,6 +190,33 @@ (define-public asmjit
 development effort.")
       (license license:zlib))))
 
+(define-public asyncplusplus
+  (package
+    (name "asyncplusplus")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Amanieu/asyncplusplus")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0iswbh7y46kn412c52af0n8bc4fplm3y94yh10n2lchispzar72j"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Fix install location of cmake files.
+               '(substitute* "CMakeLists.txt"
+                  (("DESTINATION cmake")
+                    "DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake")))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f)) ;no tests
+    (home-page "https://github.com/Amanieu/asyncplusplus")
+    (synopsis "Concurrency framework for C++11")
+    (description "Async++ is a concurrency framework for C++11.")
+    (license license:expat)))
+
 (define-public biblesync
   (package
     (name "biblesync")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 10:14:02 GMT) Full text and rfc822 format available.

Message #41 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: [PATCH v2 2/7] gnu: Add qcodeeditor.
Date: Thu, 28 Nov 2024 15:37:41 +0530
* gnu/packages/qt.scm (qcodeeditor): New variable.

Change-Id: I822ad152ce0a2304fe428bd383ea79d036452fc7
---
 gnu/packages/qt.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 722448b4e4..5181691b78 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4761,6 +4761,42 @@ (define-public dotherside
 @end itemize\n")
     (license license:lgpl3)))                    ;version 3 only (+ exception)
 
+(define-public qcodeeditor
+  (let ((commit "dc644d41b68978ab9a5591ba891a223221570e74") ;no tags
+        (revision "0"))
+    (package
+      (name "qcodeeditor")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Megaxela/QCodeEditor")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1bpvfwbgp275w79dzrd7d9k3md1ch7n88rh59mxdfj8s911n42j8"))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:tests? #f ;no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 (replace 'install
+                   (lambda _
+                     (install-file "libQCodeEditor.a"
+                                   (string-append #$output "/lib"))
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output
+                                                      "/include/QCodeEditor")))
+                       (find-files "../source/include/internal" "\\.hpp")))))))
+      (home-page "https://github.com/Megaxela/QCodeEditor")
+      (synopsis "Qt code editor widget")
+      (description
+       "QCodeEditor is a Qt widget for editing/viewing code.")
+      (license license:expat))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 10:14:03 GMT) Full text and rfc822 format available.

Message #44 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: [PATCH v2 3/7] gnu: Add qt-advanced-docking-system.
Date: Thu, 28 Nov 2024 15:37:42 +0530
* gnu/packages/qt.scm (qt-advanced-docking-system): New variable.

Change-Id: I179b42a921268bca5e70aa78c0bf2f1fc5d78a00
---
 gnu/packages/qt.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 5181691b78..7010932957 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4797,6 +4797,38 @@ (define-public qcodeeditor
        "QCodeEditor is a Qt widget for editing/viewing code.")
       (license license:expat))))
 
+(define-public qt-advanced-docking-system
+  (package
+    (name "qt-advanced-docking-system")
+    (version "4.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+          (url "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
+          (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xb4j5pva3qbbj01xp5y98544hgh14p60z2dfypq4ikz6n3ac0z7"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:tests? #f ;no tests
+           #:configure-flags
+           #~(list ;; Examples requie qtdeclarative. Even if they are built,
+                   ;; they fail to find the shared library of this package.
+                   "-DBUILD_EXAMPLES=OFF"
+                   #$(string-append "-DADS_VERSION=" version))))
+    (inputs
+     (list libxkbcommon))
+    (home-page "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
+    (synopsis "Advanced docking system for Qt")
+    (description
+     "Qt Advanced Docking System lets you create customizable layouts using a
+window docking system.")
+    (license license:lgpl2.1+)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 10:14:03 GMT) Full text and rfc822 format available.

Message #47 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: [PATCH v2 5/7] gnu: Add qtpromise.
Date: Thu, 28 Nov 2024 15:37:44 +0530
* gnu/packages/qt.scm (qtpromise): New variable.

Change-Id: I3779d3128079a7f859ee348cad1a7e74f772b085
---
 gnu/packages/qt.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 8213381b1f..030625fbf8 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4852,6 +4852,43 @@ (define-public qtcsv
      "qtcsv is a library for reading and writing csv-files in Qt.")
     (license license:expat)))
 
+(define-public qtpromise
+  (package
+    (name "qtpromise")
+    (version "0.7.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/simonbrunel/qtpromise")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nsh6v5k4kdrrhcd6adz947n0dka4rrbx8f8rvm1175545nbi67s"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:test-target "tests"
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'install 'fix-include-path
+                 (lambda _
+                   (substitute* "../source/include/QtPromise"
+                     (("../src/") ""))))
+               (replace 'install
+                 (lambda _
+                   (let ((include (string-append #$output "/include")))
+                     (with-directory-excursion "../source"
+                       (install-file "include/QtPromise"
+                                     (string-append include))
+                       (copy-recursively "src/qtpromise"
+                                         (string-append include
+                                                        "/qtpromise")))))))))
+    (home-page "https://qtpromise.netlify.app/")
+    (synopsis "Promises/A+ implementation for Qt/C++")
+    (description
+     "This package provides Promises/A+ implementation for Qt/C++.")
+    (license license:expat)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 10:14:04 GMT) Full text and rfc822 format available.

Message #50 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: [PATCH v2 6/7] gnu: Add qt-widget-animation-framework.
Date: Thu, 28 Nov 2024 15:37:45 +0530
* gnu/packages/qt.scm (qt-widget-animation-framework): New variable.

Change-Id: I9ce4b75d613c3af2e16fe7a6479e3bc02f8ac23c
---
 gnu/packages/qt.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 030625fbf8..99b3922a33 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2022, 2024 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2023 Herman Rimm <herman <at> rimm.ee>
 ;;; Copyright © 2024 Foundation Devices, Inc. <hello <at> foundation.xyz>
+;;; Copyright © 2024 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4889,6 +4890,65 @@ (define-public qtpromise
      "This package provides Promises/A+ implementation for Qt/C++.")
     (license license:expat)))
 
+(define-public qt-widget-animation-framework
+  (let ((commit "b07ab59cee7a21eb29d29cb67c160681f13ac5ae") ;no tags
+          (revision "0"))
+    (package
+      (name "qt-widget-animation-framework")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+           (git-reference
+             (url "https://github.com/dimkanovikov/WidgetAnimationFramework")
+             (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1smbdrzk05vvbf6lpjdq82k4y2kc4yv1gk5388qbslbzlb6ihls6"))
+         (modules '((guix build utils)))
+         (snippet
+          ;; This project does not have any build rule but its demo has one. So
+          ;; make use of it.
+          '(begin
+             (copy-file "demo/waf-demo.pro" "src/waf.pro")
+             (substitute* "src/waf.pro"
+               (("main.cpp ") "")
+               (("app") "lib")
+               (("waf-demo") "waf"))))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:qtbase qtbase
+             #:tests? #f ;no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 (replace 'configure
+                   (lambda _
+                     (chdir "src")
+                     (invoke "qmake")))
+                 (replace 'install
+                   (lambda _
+                     ;; Install library files.
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/lib/"
+                                                      (dirname file))))
+                       (find-files "." "\\.so"))
+                     ;; Install header files.
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/include/WAF/"
+                                                      (dirname file))))
+                       (find-files "." "\\.h$")))))))
+      (home-page "https://github.com/dimkanovikov/WidgetAnimationFramework")
+      (synopsis "Extension for animating Qt widgets")
+      (description
+       "Widget Animation Framework (WAF) is an extension for animating Qt
+widgets.")
+      (license license:lgpl3))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to maxim.cournoyer <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 10:14:04 GMT) Full text and rfc822 format available.

Message #53 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: [PATCH v2 4/7] gnu: Add qtcsv.
Date: Thu, 28 Nov 2024 15:37:43 +0530
* gnu/packages/qt.scm (qtcsv): New variable.

Change-Id: I98f324ac982b34df395260298585a9f59b3eae6f
---
 gnu/packages/qt.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 7010932957..8213381b1f 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4829,6 +4829,29 @@ (define-public qt-advanced-docking-system
 window docking system.")
     (license license:lgpl2.1+)))
 
+(define-public qtcsv
+  (package
+    (name "qtcsv")
+    (version "1.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/iamantony/qtcsv")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c9i93kr7wvpr01i4wixi9mf991nd3k2adg5fy0vxwwlvvc7dgdw"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:test-target "tests"))
+    (home-page "https://github.com/iamantony/qtcsv")
+    (synopsis "Library for reading and writing csv-files in Qt")
+    (description
+     "qtcsv is a library for reading and writing csv-files in Qt.")
+    (license license:expat)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.46.0





Information forwarded to gabriel <at> erlikon.ch, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Thu, 28 Nov 2024 10:14:05 GMT) Full text and rfc822 format available.

Message #56 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: Gabriel Wicki <gabriel <at> erlikon.ch>
Cc: Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: [PATCH v2 7/7] gnu: Add jamesdsp.
Date: Thu, 28 Nov 2024 15:37:46 +0530
* gnu/packages/audio.scm (jamesdsp): New variable.

Change-Id: I3444a8baf6eef02185c32e42f84f8b64498b7900
---
 gnu/packages/audio.scm | 133 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index f842d77031..e72b4c4bb1 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -49,6 +49,7 @@
 ;;; Copyright © 2024 hapster <o.rojon <at> posteo.net>
 ;;; Copyright © 2024 mio <stigma <at> disroot.org>
 ;;; Copyright © 2024 Nikita Domnitskii <nikita <at> domnitskii.me>
+;;; Copyright © 2024 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -158,6 +159,7 @@ (define-module (gnu packages audio)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system waf)
   #:use-module (guix download)
@@ -755,6 +757,137 @@ (define-public qm-dsp
 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.
+        ;; NOTE: QCodeEditor from system fails to build EELEditor. WAF from
+        ;; system fails to build FlatTabWidget. 3rd party library found in
+        ;; LiquidEqualizerWidget is unknown. Hence these libraries found in
+        ;; their respective directories are untouched.
+        '(begin
+           ;; Delete the bundled 3rd party libraries.
+           (for-each delete-file-recursively
+            (list "3rdparty"
+                  "src/subprojects/EELEditor/3rdparty/docking-system"
+                  "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++"
+                               "-lqcustomplot"
+                               "-lqt6advanceddocking"
+                               "-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 docking-system.
+               (substitute* "EELEditor.pri"
+                 ((".*docking-system.*") ""))
+               ;; Do not link to bundled docking-system.
+               (substitute* "src.pro"
+                 ((".*EELEditor-Linker.*") ""))
+               ;; Fix including headers from the system.
+               (substitute* '("eeleditor.cpp"
+                              "eeleditor.h")
+                 (("<Dock") "<qt6advanceddocking/Dock")
+                 (("<FloatingDock") "<qt6advanceddocking/FloatingDock"))))))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:tests? #f ;no tests
+           #:phases
+           #~(modify-phases %standard-phases
+               (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
+           qcustomplot
+           qt-advanced-docking-system
+           qtcsv
+           qtpromise
+           qtsvg
+           qt-widget-animation-framework))
+    (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
+@item Automatic dynamic range compressor: automated multiband dynamic range
+ adjusting effect
+@item Complex reverberation IIR network (Progenitor 2)
+@item Interpolated FIR equalizer with flexible bands
+@item Arbitrary response equalizer (also known as GraphicEQ from EqualizerAPO)
+@item AutoEQ database integration (requires network connection)
+@item Partitioned convolver (Auto segmenting convolution): Mono, stereo,
+ full/true stereo (LL, LR, RL, RR) impulse response
+@item Crossfeed: Realistic surround effects
+@item Soundstage wideness: A multiband stereo wideness controller
+@item ViPER-DDC: Parametric equalization on audio and creating VDC input files
+@item Analog modeling: An aliasing-free even harmonic generator
+@item Output limiter
+@item Scripting engine: Live programmable DSP using the EEL2 scripting language
+@item Scripting IDE featuring syntax highlighting, basic code completion,
+ dynamic code outline window, console output support and detailed error
+ messages with inline code highlighting
+@end itemize")
+    (license (list license:gpl3+
+                   license:gpl2      ;LiquidEqualizerWidget's 3rd party library
+                   license:gpl2+     ;GraphicEQWidget
+                   license:expat)))) ;QAnimatedSlider and QCodeEditor
+
 (define ardour-bundled-media
   (origin
     (method url-fetch)
-- 
2.46.0





Information forwarded to gabriel <at> erlikon.ch, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 11 Feb 2025 14:27:02 GMT) Full text and rfc822 format available.

Message #59 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v3 0/7] gnu: Add jamesdsp.
Date: Tue, 11 Feb 2025 19:50:44 +0530
In this version of the patchset, the only change to jamesdsp definition is that
in create-desktop-entry-file phase, fix keywords categories. It is also rebased
with the latest commit of the master branch as of now.

Sughosha (7):
  gnu: Add asyncplusplus.
  gnu: Add qcodeeditor.
  gnu: Add qt-advanced-docking-system.
  gnu: Add qtcsv.
  gnu: Add qtpromise.
  gnu: Add qt-widget-animation-framework.
  gnu: Add jamesdsp.

 gnu/packages/audio.scm | 133 +++++++++++++++++++++++++++++
 gnu/packages/cpp.scm   |  27 ++++++
 gnu/packages/qt.scm    | 188 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 348 insertions(+)


base-commit: 555937448cc510517011035fbf39c3687336759d
-- 
2.47.1





Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 11 Feb 2025 14:27:03 GMT) Full text and rfc822 format available.

Message #62 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v3 1/7] gnu: Add asyncplusplus.
Date: Tue, 11 Feb 2025 19:50:45 +0530
* gnu/packages/cpp.scm (asyncplusplus): New variable.

Change-Id: I6ba1b983ce05a634937d0d972e670ce636df3b94
---
 gnu/packages/cpp.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index c6c63d3ffc..c6d588afc0 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -195,6 +195,33 @@ (define-public asmjit
 development effort.")
       (license license:zlib))))
 
+(define-public asyncplusplus
+  (package
+    (name "asyncplusplus")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Amanieu/asyncplusplus")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0iswbh7y46kn412c52af0n8bc4fplm3y94yh10n2lchispzar72j"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Fix install location of cmake files.
+               '(substitute* "CMakeLists.txt"
+                  (("DESTINATION cmake")
+                    "DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake")))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f)) ;no tests
+    (home-page "https://github.com/Amanieu/asyncplusplus")
+    (synopsis "Concurrency framework for C++11")
+    (description "Async++ is a concurrency framework for C++11.")
+    (license license:expat)))
+
 (define-public biblesync
   (package
     (name "biblesync")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 11 Feb 2025 14:27:03 GMT) Full text and rfc822 format available.

Message #65 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v3 2/7] gnu: Add qcodeeditor.
Date: Tue, 11 Feb 2025 19:50:46 +0530
* gnu/packages/qt.scm (qcodeeditor): New variable.

Change-Id: I822ad152ce0a2304fe428bd383ea79d036452fc7
---
 gnu/packages/qt.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 432282f9cf..cbc1e41e85 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4867,6 +4867,42 @@ (define-public dotherside
 @end itemize\n")
     (license license:lgpl3)))                    ;version 3 only (+ exception)
 
+(define-public qcodeeditor
+  (let ((commit "dc644d41b68978ab9a5591ba891a223221570e74") ;no tags
+        (revision "0"))
+    (package
+      (name "qcodeeditor")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Megaxela/QCodeEditor")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1bpvfwbgp275w79dzrd7d9k3md1ch7n88rh59mxdfj8s911n42j8"))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:tests? #f ;no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 (replace 'install
+                   (lambda _
+                     (install-file "libQCodeEditor.a"
+                                   (string-append #$output "/lib"))
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output
+                                                      "/include/QCodeEditor")))
+                       (find-files "../source/include/internal" "\\.hpp")))))))
+      (home-page "https://github.com/Megaxela/QCodeEditor")
+      (synopsis "Qt code editor widget")
+      (description
+       "QCodeEditor is a Qt widget for editing/viewing code.")
+      (license license:expat))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 11 Feb 2025 14:27:04 GMT) Full text and rfc822 format available.

Message #68 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v3 3/7] gnu: Add qt-advanced-docking-system.
Date: Tue, 11 Feb 2025 19:50:47 +0530
* gnu/packages/qt.scm (qt-advanced-docking-system): New variable.

Change-Id: I179b42a921268bca5e70aa78c0bf2f1fc5d78a00
---
 gnu/packages/qt.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index cbc1e41e85..d9179352ec 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4903,6 +4903,38 @@ (define-public qcodeeditor
        "QCodeEditor is a Qt widget for editing/viewing code.")
       (license license:expat))))
 
+(define-public qt-advanced-docking-system
+  (package
+    (name "qt-advanced-docking-system")
+    (version "4.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+          (url "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
+          (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xb4j5pva3qbbj01xp5y98544hgh14p60z2dfypq4ikz6n3ac0z7"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:tests? #f ;no tests
+           #:configure-flags
+           #~(list ;; Examples requie qtdeclarative. Even if they are built,
+                   ;; they fail to find the shared library of this package.
+                   "-DBUILD_EXAMPLES=OFF"
+                   #$(string-append "-DADS_VERSION=" version))))
+    (inputs
+     (list libxkbcommon))
+    (home-page "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
+    (synopsis "Advanced docking system for Qt")
+    (description
+     "Qt Advanced Docking System lets you create customizable layouts using a
+window docking system.")
+    (license license:lgpl2.1+)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 11 Feb 2025 14:27:05 GMT) Full text and rfc822 format available.

Message #71 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v3 6/7] gnu: Add qt-widget-animation-framework.
Date: Tue, 11 Feb 2025 19:50:50 +0530
* gnu/packages/qt.scm (qt-widget-animation-framework): New variable.

Change-Id: I9ce4b75d613c3af2e16fe7a6479e3bc02f8ac23c
---
 gnu/packages/qt.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 4d1abec6ed..0b205d3be5 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -34,6 +34,7 @@
 ;;; Copyright �� 2024 Foundation Devices, Inc. <hello <at> foundation.xyz>
 ;;; Copyright �� 2024 Josep Bigorra <jjbigorra <at> gmail.com>
 ;;; Copyright �� 2025 John Kehayias <john.kehayias <at> protonmail.com>
+;;; Copyright �� 2024 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4995,6 +4996,65 @@ (define-public qtpromise
      "This package provides Promises/A+ implementation for Qt/C++.")
     (license license:expat)))
 
+(define-public qt-widget-animation-framework
+  (let ((commit "b07ab59cee7a21eb29d29cb67c160681f13ac5ae") ;no tags
+          (revision "0"))
+    (package
+      (name "qt-widget-animation-framework")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+           (git-reference
+             (url "https://github.com/dimkanovikov/WidgetAnimationFramework")
+             (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1smbdrzk05vvbf6lpjdq82k4y2kc4yv1gk5388qbslbzlb6ihls6"))
+         (modules '((guix build utils)))
+         (snippet
+          ;; This project does not have any build rule but its demo has one. So
+          ;; make use of it.
+          '(begin
+             (copy-file "demo/waf-demo.pro" "src/waf.pro")
+             (substitute* "src/waf.pro"
+               (("main.cpp ") "")
+               (("app") "lib")
+               (("waf-demo") "waf"))))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:qtbase qtbase
+             #:tests? #f ;no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 (replace 'configure
+                   (lambda _
+                     (chdir "src")
+                     (invoke "qmake")))
+                 (replace 'install
+                   (lambda _
+                     ;; Install library files.
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/lib/"
+                                                      (dirname file))))
+                       (find-files "." "\\.so"))
+                     ;; Install header files.
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/include/WAF/"
+                                                      (dirname file))))
+                       (find-files "." "\\.h$")))))))
+      (home-page "https://github.com/dimkanovikov/WidgetAnimationFramework")
+      (synopsis "Extension for animating Qt widgets")
+      (description
+       "Widget Animation Framework (WAF) is an extension for animating Qt
+widgets.")
+      (license license:lgpl3))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 11 Feb 2025 14:27:06 GMT) Full text and rfc822 format available.

Message #74 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v3 4/7] gnu: Add qtcsv.
Date: Tue, 11 Feb 2025 19:50:48 +0530
* gnu/packages/qt.scm (qtcsv): New variable.

Change-Id: I98f324ac982b34df395260298585a9f59b3eae6f
---
 gnu/packages/qt.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index d9179352ec..72ba4c61a9 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4935,6 +4935,29 @@ (define-public qt-advanced-docking-system
 window docking system.")
     (license license:lgpl2.1+)))
 
+(define-public qtcsv
+  (package
+    (name "qtcsv")
+    (version "1.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/iamantony/qtcsv")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c9i93kr7wvpr01i4wixi9mf991nd3k2adg5fy0vxwwlvvc7dgdw"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:test-target "tests"))
+    (home-page "https://github.com/iamantony/qtcsv")
+    (synopsis "Library for reading and writing csv-files in Qt")
+    (description
+     "qtcsv is a library for reading and writing csv-files in Qt.")
+    (license license:expat)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 11 Feb 2025 14:28:02 GMT) Full text and rfc822 format available.

Message #77 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v3 5/7] gnu: Add qtpromise.
Date: Tue, 11 Feb 2025 19:50:49 +0530
* gnu/packages/qt.scm (qtpromise): New variable.

Change-Id: I3779d3128079a7f859ee348cad1a7e74f772b085
---
 gnu/packages/qt.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 72ba4c61a9..4d1abec6ed 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4958,6 +4958,43 @@ (define-public qtcsv
      "qtcsv is a library for reading and writing csv-files in Qt.")
     (license license:expat)))
 
+(define-public qtpromise
+  (package
+    (name "qtpromise")
+    (version "0.7.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/simonbrunel/qtpromise")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nsh6v5k4kdrrhcd6adz947n0dka4rrbx8f8rvm1175545nbi67s"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:test-target "tests"
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'install 'fix-include-path
+                 (lambda _
+                   (substitute* "../source/include/QtPromise"
+                     (("../src/") ""))))
+               (replace 'install
+                 (lambda _
+                   (let ((include (string-append #$output "/include")))
+                     (with-directory-excursion "../source"
+                       (install-file "include/QtPromise"
+                                     (string-append include))
+                       (copy-recursively "src/qtpromise"
+                                         (string-append include
+                                                        "/qtpromise")))))))))
+    (home-page "https://qtpromise.netlify.app/")
+    (synopsis "Promises/A+ implementation for Qt/C++")
+    (description
+     "This package provides Promises/A+ implementation for Qt/C++.")
+    (license license:expat)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to gabriel <at> erlikon.ch, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Tue, 11 Feb 2025 14:28:02 GMT) Full text and rfc822 format available.

Message #80 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v3 7/7] gnu: Add jamesdsp.
Date: Tue, 11 Feb 2025 19:50:51 +0530
* gnu/packages/audio.scm (jamesdsp): New variable.
---
 gnu/packages/audio.scm | 133 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 4ae8fde662..9cf8d64b3d 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -51,6 +51,7 @@
 ;;; Copyright �� 2024 Nikita Domnitskii <nikita <at> domnitskii.me>
 ;;; Copyright �� 2024 Roman Scherer <roman <at> burningswell.com>
 ;;; Copyright �� 2024 Artyom V. Poptsov <poptsov.artyom <at> gmail.com>
+;;; Copyright �� 2024 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -167,6 +168,7 @@ (define-module (gnu packages audio)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system pyproject)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system waf)
   #:use-module (guix download)
@@ -764,6 +766,137 @@ (define-public qm-dsp
 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.
+        ;; NOTE: QCodeEditor from system fails to build EELEditor. WAF from
+        ;; system fails to build FlatTabWidget. 3rd party library found in
+        ;; LiquidEqualizerWidget is unknown. Hence these libraries found in
+        ;; their respective directories are untouched.
+        '(begin
+           ;; Delete the bundled 3rd party libraries.
+           (for-each delete-file-recursively
+            (list "3rdparty"
+                  "src/subprojects/EELEditor/3rdparty/docking-system"
+                  "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++"
+                               "-lqcustomplot"
+                               "-lqt6advanceddocking"
+                               "-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 docking-system.
+               (substitute* "EELEditor.pri"
+                 ((".*docking-system.*") ""))
+               ;; Do not link to bundled docking-system.
+               (substitute* "src.pro"
+                 ((".*EELEditor-Linker.*") ""))
+               ;; Fix including headers from the system.
+               (substitute* '("eeleditor.cpp"
+                              "eeleditor.h")
+                 (("<Dock") "<qt6advanceddocking/Dock")
+                 (("<FloatingDock") "<qt6advanceddocking/FloatingDock"))))))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:tests? #f ;no tests
+           #:phases
+           #~(modify-phases %standard-phases
+               (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
+           qcustomplot
+           qt-advanced-docking-system
+           qtcsv
+           qtpromise
+           qtsvg
+           qt-widget-animation-framework))
+    (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
+@item Automatic dynamic range compressor: automated multiband dynamic range
+ adjusting effect
+@item Complex reverberation IIR network (Progenitor 2)
+@item Interpolated FIR equalizer with flexible bands
+@item Arbitrary response equalizer (also known as GraphicEQ from EqualizerAPO)
+@item AutoEQ database integration (requires network connection)
+@item Partitioned convolver (Auto segmenting convolution): Mono, stereo,
+ full/true stereo (LL, LR, RL, RR) impulse response
+@item Crossfeed: Realistic surround effects
+@item Soundstage wideness: A multiband stereo wideness controller
+@item ViPER-DDC: Parametric equalization on audio and creating VDC input files
+@item Analog modeling: An aliasing-free even harmonic generator
+@item Output limiter
+@item Scripting engine: Live programmable DSP using the EEL2 scripting language
+@item Scripting IDE featuring syntax highlighting, basic code completion,
+ dynamic code outline window, console output support and detailed error
+ messages with inline code highlighting
+@end itemize")
+    (license (list license:gpl3+
+                   license:gpl2      ;LiquidEqualizerWidget's 3rd party library
+                   license:gpl2+     ;GraphicEQWidget
+                   license:expat)))) ;QAnimatedSlider and QCodeEditor
+
 (define ardour-bundled-media
   (origin
     (method url-fetch)
-- 
2.47.1





Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 14 Feb 2025 12:48:01 GMT) Full text and rfc822 format available.

Message #83 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Subject: Re: bug#74344: Acknowledgement ([PATCH 0/7] gnu: Add jamesdsp.)
Date: Fri, 14 Feb 2025 18:16:38 +0530
[Message part 1 (text/plain, inline)]
This package is working fine in my device.

-- 
Sughosha
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 00:44:02 GMT) Full text and rfc822 format available.

Message #86 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Sughosha via Guix-patches via <guix-patches <at> gnu.org>
Cc: 宋文武 <iyzsong <at> envs.net>,
 Zheng Junjie <z572 <at> z572.online>, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 2/7] gnu: Add qcodeeditor.
Date: Sat, 15 Feb 2025 19:43:06 -0500
On Tue, Feb 11, 2025 at 07:50:46PM +0530, Sughosha via Guix-patches via wrote:
> * gnu/packages/qt.scm (qcodeeditor): New variable.

> +             #~(modify-phases %standard-phases
> +                 (replace 'install

Please add a brief code comment explaining why the install phase has to
be replaced.

Otherwise LGTM.




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 00:44:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 00:45:01 GMT) Full text and rfc822 format available.

Message #92 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Sughosha via Guix-patches via <guix-patches <at> gnu.org>
Cc: 宋文武 <iyzsong <at> envs.net>,
 Zheng Junjie <z572 <at> z572.online>, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 3/7] gnu: Add qt-advanced-docking-system.
Date: Sat, 15 Feb 2025 19:44:16 -0500
On Tue, Feb 11, 2025 at 07:50:47PM +0530, Sughosha via Guix-patches via wrote:
> * gnu/packages/qt.scm (qt-advanced-docking-system): New variable.

> +           #:configure-flags
> +           #~(list ;; Examples requie qtdeclarative. Even if they are built,

                                  require

Otherwise, LGTM




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 00:45:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 00:47:01 GMT) Full text and rfc822 format available.

Message #98 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Sughosha via Guix-patches via <guix-patches <at> gnu.org>
Cc: 宋文武 <iyzsong <at> envs.net>,
 Zheng Junjie <z572 <at> z572.online>, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 4/7] gnu: Add qtcsv.
Date: Sat, 15 Feb 2025 19:46:48 -0500
On Tue, Feb 11, 2025 at 07:50:48PM +0530, Sughosha via Guix-patches via wrote:
> * gnu/packages/qt.scm (qtcsv): New variable.

> +    (synopsis "Library for reading and writing csv-files in Qt")

Please capitalize CSV here.

> +    (description
> +     "qtcsv is a library for reading and writing csv-files in Qt.")

Please use Texinfo markup for the 'CVS' acronym in the description:

@acronym{CSV, comma-separated values}

https://www.gnu.org/software/texinfo/manual/texinfo/html_node/_0040acronym.html

Otherwise LGTM




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 00:48:01 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 00:50:01 GMT) Full text and rfc822 format available.

Message #104 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Sughosha via Guix-patches via <guix-patches <at> gnu.org>
Cc: 宋文武 <iyzsong <at> envs.net>,
 Zheng Junjie <z572 <at> z572.online>, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 5/7] gnu: Add qtpromise.
Date: Sat, 15 Feb 2025 19:49:41 -0500
On Tue, Feb 11, 2025 at 07:50:49PM +0530, Sughosha via Guix-patches via wrote:
> * gnu/packages/qt.scm (qtpromise): New variable.

> +               (replace 'install

Please add a brief code comment explaining why the install phase is
replaced.

> +    (description
> +     "This package provides Promises/A+ implementation for Qt/C++.")

How about this: "This package provides an Qt/C++ implementation of the
Promises/A+ standard for the 'promises' programming paradigm."

I think it's more clear.

Otherwise LGTM




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 00:51:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 01:01:02 GMT) Full text and rfc822 format available.

Message #110 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Sughosha via Guix-patches via <guix-patches <at> gnu.org>
Cc: 宋文武 <iyzsong <at> envs.net>,
 Zheng Junjie <z572 <at> z572.online>, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 Sughosha <sughosha <at> disroot.org>, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 6/7] gnu: Add qt-widget-animation-framework.
Date: Sat, 15 Feb 2025 20:00:13 -0500
On Tue, Feb 11, 2025 at 07:50:50PM +0530, Sughosha via Guix-patches via wrote:
> * gnu/packages/qt.scm (qt-widget-animation-framework): New variable.

> +         (modules '((guix build utils)))
> +         (snippet
> +          ;; This project does not have any build rule but its demo has one. So
> +          ;; make use of it.

Good idea, but please move it into a build phase, maybe after the
'unpack' phase. We try to reserve origin snippets for grave bugs and
licensing problems.

> +             #~(modify-phases %standard-phases
> +                 (replace 'configure
> +                   (lambda _
> +                     (chdir "src")
> +                     (invoke "qmake")))
> +                 (replace 'install

Again, add some code comments explaining why we have to replace these
phases.

> +      (license license:lgpl3))))

I think this is lgpl3+. I checked a few of the source files, and their
license headers say "[...] either version 3 of the License, or any later
version."

Also, please arrange for the build to install the LICENSE file into the
built output. This usually happens automatically in Guix, but here the
'install-license-files' phase couldn't find the license because we
changed directory earlier in the build process.

Here's an example:

https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/racket.scm?id=1afbf48b250f667ce45de40a6c275e3e42ade67c#n369




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 01:01:03 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 01:05:01 GMT) Full text and rfc822 format available.

Message #116 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Sughosha via Guix-patches via <guix-patches <at> gnu.org>
Cc: Gabriel Wicki <gabriel <at> erlikon.ch>, Sughosha <sughosha <at> disroot.org>,
 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 7/7] gnu: Add jamesdsp.
Date: Sat, 15 Feb 2025 20:04:37 -0500
On Tue, Feb 11, 2025 at 07:50:51PM +0530, Sughosha via Guix-patches via wrote:
> * gnu/packages/audio.scm (jamesdsp): New variable.

> +       (modules '((guix build utils)))
> +       (snippet
> +        ;; Unbundle 3rd party libraries.

Okay

> +           #~(modify-phases %standard-phases
> +               (replace 'configure

Add a code comment explaining why this phase is replaced.

> +    (license (list license:gpl3+
> +                   license:gpl2      ;LiquidEqualizerWidget's 3rd party library
> +                   license:gpl2+     ;GraphicEQWidget
> +                   license:expat)))) ;QAnimatedSlider and QCodeEditor

The overall package is distributed by us as GPL3+, despite some
subcomponents bearing different licenses, so this field should only
include gpl3+. It's okay to keep the info about the other licenses in a
code comment.




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 01:06:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 06:32:02 GMT) Full text and rfc822 format available.

Message #122 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Sughosha <sughosha <at> disroot.org>
Cc: Zheng Junjie <z572 <at> z572.online>,
 宋文武 <iyzsong <at> envs.net>, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 2/7] gnu: Add qcodeeditor.
Date: Sun, 16 Feb 2025 15:31:12 +0900
Hi,

Sughosha <sughosha <at> disroot.org> writes:

> * gnu/packages/qt.scm (qcodeeditor): New variable.
>
> Change-Id: I822ad152ce0a2304fe428bd383ea79d036452fc7
> ---
>  gnu/packages/qt.scm | 36 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 432282f9cf..cbc1e41e85 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -4867,6 +4867,42 @@ (define-public dotherside
>  @end itemize\n")
>      (license license:lgpl3)))                    ;version 3 only (+ exception)
>
> +(define-public qcodeeditor
> +  (let ((commit "dc644d41b68978ab9a5591ba891a223221570e74") ;no tags
> +        (revision "0"))
> +    (package
> +      (name "qcodeeditor")
> +      (version (git-version "0" revision commit))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/Megaxela/QCodeEditor")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                  "1bpvfwbgp275w79dzrd7d9k3md1ch7n88rh59mxdfj8s911n42j8"))))
> +      (build-system qt-build-system)
> +      (arguments
> +       (list #:tests? #f ;no tests
> +             #:phases
> +             #~(modify-phases %standard-phases
> +                 (replace 'install
> +                   (lambda _
> +                     (install-file "libQCodeEditor.a"
> +                                   (string-append #$output "/lib"))
> +                     (for-each
> +                       (lambda (file)
> +                         (install-file file
> +                                       (string-append #$output
> +                                                      "/include/QCodeEditor")))
> +                       (find-files "../source/include/internal" "\\.hpp")))))))

Did you try building a share library instead of that static .a archive?
Apparently this fork has an install target and is able to build a shared
library: https://github.com/justxi/QCodeEditor/, per
https://github.com/Megaxela/QCodeEditor/issues/42

Perhaps it should be used instead as this Megaxela project hasn't been
touched in 6 years.

-- 
Thanks,
Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 06:34:02 GMT) Full text and rfc822 format available.

Message #125 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Sughosha <sughosha <at> disroot.org>
Cc: Zheng Junjie <z572 <at> z572.online>,
 宋文武 <iyzsong <at> envs.net>, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 3/7] gnu: Add qt-advanced-docking-system.
Date: Sun, 16 Feb 2025 15:32:44 +0900
Hi,

Sughosha <sughosha <at> disroot.org> writes:

> * gnu/packages/qt.scm (qt-advanced-docking-system): New variable.

[...]

> +(define-public qt-advanced-docking-system
> +  (package
> +    (name "qt-advanced-docking-system")
> +    (version "4.3.1")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri
> +        (git-reference
> +          (url "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
> +          (commit version)))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "0xb4j5pva3qbbj01xp5y98544hgh14p60z2dfypq4ikz6n3ac0z7"))))
> +    (build-system qt-build-system)
> +    (arguments
> +     (list #:qtbase qtbase
> +           #:tests? #f ;no tests
> +           #:configure-flags
> +           #~(list ;; Examples requie qtdeclarative. Even if they are built,

s/requie/require  Please use two spaces between sentences, as
conventional in GNU and Guix.

Otherwise LGTM.

-- 
Thanks,
Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 06:42:02 GMT) Full text and rfc822 format available.

Message #128 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Sughosha <sughosha <at> disroot.org>
Cc: Gabriel Wicki <gabriel <at> erlikon.ch>, Zheng Junjie <z572 <at> z572.online>,
 宋文武 <iyzsong <at> envs.net>, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 6/7] gnu: Add qt-widget-animation-framework.
Date: Sun, 16 Feb 2025 15:41:26 +0900
Sughosha <sughosha <at> disroot.org> writes:

> * gnu/packages/qt.scm (qt-widget-animation-framework): New variable.
>
> Change-Id: I9ce4b75d613c3af2e16fe7a6479e3bc02f8ac23c
> ---
>  gnu/packages/qt.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)
>
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 4d1abec6ed..0b205d3be5 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -34,6 +34,7 @@
>  ;;; Copyright © 2024 Foundation Devices, Inc. <hello <at> foundation.xyz>
>  ;;; Copyright © 2024 Josep Bigorra <jjbigorra <at> gmail.com>
>  ;;; Copyright © 2025 John Kehayias <john.kehayias <at> protonmail.com>
> +;;; Copyright © 2024 Sughosha <sughosha <at> disroot.org>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -4995,6 +4996,65 @@ (define-public qtpromise
>       "This package provides Promises/A+ implementation for Qt/C++.")
>      (license license:expat)))
>  
> +(define-public qt-widget-animation-framework
> +  (let ((commit "b07ab59cee7a21eb29d29cb67c160681f13ac5ae") ;no tags
> +          (revision "0"))
> +    (package
> +      (name "qt-widget-animation-framework")

I know you had a comment about naming it this earlier (thanks to them
for their review!) but or naming conventions do not suggest turning
camel case names into hyphen-separated ones, so I'd keep it as one
block, 'qtwidgetanimationframework'.

See (info '(guix) Package Naming'):

   [package variable and names] correspond to the lowercase conversion
   of the project name chosen upstream, with underscores replaced with
   hyphens.


> +      (version (git-version "0" revision commit))
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri
> +           (git-reference
> +             (url "https://github.com/dimkanovikov/WidgetAnimationFramework")
> +             (commit commit)))
> +         (file-name (git-file-name name version))
> +         (sha256
> +          (base32 "1smbdrzk05vvbf6lpjdq82k4y2kc4yv1gk5388qbslbzlb6ihls6"))
> +         (modules '((guix build utils)))
> +         (snippet
> +          ;; This project does not have any build rule but its demo has one. So
> +          ;; make use of it.
> +          '(begin
> +             (copy-file "demo/waf-demo.pro" "src/waf.pro")
> +             (substitute* "src/waf.pro"
> +               (("main.cpp ") "")
> +               (("app") "lib")
> +               (("waf-demo") "waf"))))))
> +      (build-system qt-build-system)
> +      (arguments
> +       (list #:qtbase qtbase
> +             #:tests? #f ;no tests
> +             #:phases
> +             #~(modify-phases %standard-phases
> +                 (replace 'configure
> +                   (lambda _
> +                     (chdir "src")
> +                     (invoke "qmake")))
> +                 (replace 'install
> +                   (lambda _
> +                     ;; Install library files.
> +                     (for-each
> +                       (lambda (file)
> +                         (install-file file
> +                                       (string-append #$output "/lib/"
> +                                                      (dirname file))))
> +                       (find-files "." "\\.so"))

I'd use \\.so$ as the regexp.

> +                     ;; Install header files.
> +                     (for-each
> +                       (lambda (file)
> +                         (install-file file
> +                                       (string-append #$output "/include/WAF/"
> +                                                      (dirname file))))
> +                       (find-files "." "\\.h$")))))))
> +      (home-page "https://github.com/dimkanovikov/WidgetAnimationFramework")
> +      (synopsis "Extension for animating Qt widgets")
> +      (description
> +       "Widget Animation Framework (WAF) is an extension for animating Qt
> +widgets.")
> +      (license license:lgpl3))))

The license is actually lgpl3+ (note the +, which means 'or any later
version').  That's the default wording of the GPL licenses, unless the
project adjust them to say otherwise.  See
e.g. https://github.com/dimkanovikov/WidgetAnimationFramework/blob/b07ab59cee7a21eb29d29cb67c160681f13ac5ae/src/AbstractAnimator.h#L7

-- 
Thanks,
Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 06:44:02 GMT) Full text and rfc822 format available.

Message #131 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: sughosha <at> disroot.org
Cc: z572 <at> z572.online, Leo Famulari <leo <at> famulari.name>, iyzsong <at> envs.net,
 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 4/7] gnu: Add qtcsv.
Date: Sun, 16 Feb 2025 15:43:33 +0900
Hi,

Leo Famulari <leo <at> famulari.name> writes:

> On Tue, Feb 11, 2025 at 07:50:48PM +0530, Sughosha via Guix-patches via wrote:
>> * gnu/packages/qt.scm (qtcsv): New variable.
>
>> +    (synopsis "Library for reading and writing csv-files in Qt")
>
> Please capitalize CSV here.
>
>> +    (description
>> +     "qtcsv is a library for reading and writing csv-files in Qt.")
>
> Please use Texinfo markup for the 'CVS' acronym in the description:
>
> @acronym{CSV, comma-separated values}
>
> https://www.gnu.org/software/texinfo/manual/texinfo/html_node/_0040acronym.html

+1, and I'd also decorate with @code{qtcsv} and not use a hyphen between
CSV and files.

-- 
Thanks,
Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 06:46:02 GMT) Full text and rfc822 format available.

Message #134 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: z572 <at> z572.online, sughosha <at> disroot.org, iyzsong <at> envs.net,
 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 5/7] gnu: Add qtpromise.
Date: Sun, 16 Feb 2025 15:44:47 +0900
Hi,

Leo Famulari <leo <at> famulari.name> writes:

> On Tue, Feb 11, 2025 at 07:50:49PM +0530, Sughosha via Guix-patches via wrote:
>> * gnu/packages/qt.scm (qtpromise): New variable.
>
>> +               (replace 'install
>
> Please add a brief code comment explaining why the install phase is
> replaced.
>
>> +    (description
>> +     "This package provides Promises/A+ implementation for Qt/C++.")
>
> How about this: "This package provides an Qt/C++ implementation of the
> Promises/A+ standard for the 'promises' programming paradigm."

Yes, and if available I'd turn Promises/A+ into a @url pointing to where
the standard is defined, so that users can easily learn more if they'd
like to.

-- 
Thanks,
Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 06:47:01 GMT) Full text and rfc822 format available.

Message #137 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: gabriel <at> erlikon.ch, sughosha <at> disroot.org, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 7/7] gnu: Add jamesdsp.
Date: Sun, 16 Feb 2025 15:46:27 +0900
Hi,

Leo Famulari <leo <at> famulari.name> writes:

> On Tue, Feb 11, 2025 at 07:50:51PM +0530, Sughosha via Guix-patches via wrote:
>> * gnu/packages/audio.scm (jamesdsp): New variable.
>
>> +       (modules '((guix build utils)))
>> +       (snippet
>> +        ;; Unbundle 3rd party libraries.
>
> Okay
>
>> +           #~(modify-phases %standard-phases
>> +               (replace 'configure
>
> Add a code comment explaining why this phase is replaced.
>
>> +    (license (list license:gpl3+
>> +                   license:gpl2      ;LiquidEqualizerWidget's 3rd party library
>> +                   license:gpl2+     ;GraphicEQWidget
>> +                   license:expat)))) ;QAnimatedSlider and QCodeEditor
>
> The overall package is distributed by us as GPL3+, despite some
> subcomponents bearing different licenses, so this field should only
> include gpl3+. It's okay to keep the info about the other licenses in a
> code comment.

Perhaps that's an error on Sugosha's part, but if this project is truly
combining gpl2 *only* with gpl3+, that's problematic as these are not
compatible licenses.

-- 
Thanks,
Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Sun, 16 Feb 2025 07:16:01 GMT) Full text and rfc822 format available.

Message #140 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: gabriel <at> erlikon.ch, sughosha <at> disroot.org, 74344 <at> debbugs.gnu.org
Subject: Re: [bug#74344] [PATCH v3 7/7] gnu: Add jamesdsp.
Date: Sun, 16 Feb 2025 02:15:32 -0500
On Sun, Feb 16, 2025 at 03:46:27PM +0900, Maxim Cournoyer wrote:
> >> +    (license (list license:gpl3+
> >> +                   license:gpl2      ;LiquidEqualizerWidget's 3rd party library
> >> +                   license:gpl2+     ;GraphicEQWidget
> >> +                   license:expat)))) ;QAnimatedSlider and QCodeEditor
> >
> > The overall package is distributed by us as GPL3+, despite some
> > subcomponents bearing different licenses, so this field should only
> > include gpl3+. It's okay to keep the info about the other licenses in a
> > code comment.
> 
> Perhaps that's an error on Sugosha's part, but if this project is truly
> combining gpl2 *only* with gpl3+, that's problematic as these are not
> compatible licenses.

Good catch! I think that LiquidEqualizerWidget is actually GPL3+:

https://github.com/timschneeb/LiquidEqualizerWidget




Information forwarded to gabriel <at> erlikon.ch, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 21 Feb 2025 09:26:02 GMT) Full text and rfc822 format available.

Message #143 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v4 0/7] gnu: Add jamesdsp.
Date: Fri, 21 Feb 2025 14:31:53 +0530
In this version, these changes are made, thanks to Leo and Maxim:
* In qcodeeditor, used a patch from its pull requests to port it to Qt6
instead of using a fork, patched it to build a shared library instead of
a static one, modified phases to build and install examples, added
missing comments and added qtwayland to inputs.
* In qt-advanced-docking-system, updated it to 4.4.0, removed the
configure flag disabling building examples and removed the input that
is not required.
* qtcsv is moved to serialization.scm and updated its description.
* In qtpromise, removed chdir and used with-directory-excursion where
needed and updated its description.
* qt-widget-animation-framework is renamed to
qtwidgetanimationframework, moved the snippet to a phase, added missing
comments and updated its description.
* In jamesdsp, Unbundled QCodeEditor, fixed its license field to only
contain gpl3+ and improved comments.

Sughosha (7):
  gnu: Add asyncplusplus.
  gnu: Add qcodeeditor.
  gnu: Add qt-advanced-docking-system.
  gnu: Add qtcsv.
  gnu: Add qtpromise.
  gnu: Add qtwidgetanimationframework.
  gnu: Add jamesdsp.

 gnu/local.mk                               |   1 +
 gnu/packages/audio.scm                     | 139 ++++++++++++++
 gnu/packages/cpp.scm                       |  27 +++
 gnu/packages/patches/qcodeeditor-qt6.patch | 199 +++++++++++++++++++++
 gnu/packages/qt.scm                        | 182 +++++++++++++++++++
 gnu/packages/serialization.scm             |  26 +++
 6 files changed, 574 insertions(+)
 create mode 100644 gnu/packages/patches/qcodeeditor-qt6.patch


base-commit: fc29a7193781df44a15cb7a8bdc236805ddd0595
-- 
2.47.1





Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 21 Feb 2025 09:26:04 GMT) Full text and rfc822 format available.

Message #146 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v4 1/7] gnu: Add asyncplusplus.
Date: Fri, 21 Feb 2025 14:31:54 +0530
* gnu/packages/cpp.scm (asyncplusplus): New variable.

Change-Id: I6ba1b983ce05a634937d0d972e670ce636df3b94
---
 gnu/packages/cpp.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index c6c63d3ffc..c6d588afc0 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -195,6 +195,33 @@ (define-public asmjit
 development effort.")
       (license license:zlib))))
 
+(define-public asyncplusplus
+  (package
+    (name "asyncplusplus")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Amanieu/asyncplusplus")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0iswbh7y46kn412c52af0n8bc4fplm3y94yh10n2lchispzar72j"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Fix install location of cmake files.
+               '(substitute* "CMakeLists.txt"
+                  (("DESTINATION cmake")
+                    "DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake")))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f)) ;no tests
+    (home-page "https://github.com/Amanieu/asyncplusplus")
+    (synopsis "Concurrency framework for C++11")
+    (description "Async++ is a concurrency framework for C++11.")
+    (license license:expat)))
+
 (define-public biblesync
   (package
     (name "biblesync")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 21 Feb 2025 09:27:03 GMT) Full text and rfc822 format available.

Message #149 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v4 3/7] gnu: Add qt-advanced-docking-system.
Date: Fri, 21 Feb 2025 14:31:56 +0530
* gnu/packages/qt.scm (qt-advanced-docking-system): New variable.

Change-Id: Id89f0474d7540870fff4b94c6709edd0baaa7d7b
---
 gnu/packages/qt.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 6a59ca31ba..cd3a572208 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4919,6 +4919,35 @@ (define-public qcodeeditor
        "QCodeEditor is a Qt widget for editing/viewing code.")
       (license license:expat))))
 
+(define-public qt-advanced-docking-system
+  (package
+    (name "qt-advanced-docking-system")
+    (version "4.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+          (url "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
+          (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0qbvlnfpdlz22y1vrdd1gs2mfh03k95ccahb7pl6i07pgn4dgcvh"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:tests? #f ;no tests
+           #:configure-flags
+           #~(list ;; Examples require qtdeclarative.
+                   "-DBUILD_EXAMPLES=OFF"
+                   (string-append "-DADS_VERSION=" #$version))))
+    (home-page "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System")
+    (synopsis "Advanced docking system for Qt")
+    (description
+     "Qt Advanced Docking System lets you create customizable layouts using a
+window docking system.")
+    (license license:lgpl2.1+)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 21 Feb 2025 09:27:04 GMT) Full text and rfc822 format available.

Message #152 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v4 2/7] gnu: Add qcodeeditor.
Date: Fri, 21 Feb 2025 14:31:55 +0530
* gnu/packages/qt.scm (qcodeeditor): New variable.
* gnu/packages/patches/qcodeeditor-qt6.patch: New file.
* gnu/local.mk: Register it.

Change-Id: I073bfc191d77f293afc7019d0cc2ebd460ffa58e
---
 gnu/local.mk                               |   1 +
 gnu/packages/patches/qcodeeditor-qt6.patch | 199 +++++++++++++++++++++
 gnu/packages/qt.scm                        |  52 ++++++
 3 files changed, 252 insertions(+)
 create mode 100644 gnu/packages/patches/qcodeeditor-qt6.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 01926bb1b8..2b464668e8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2005,6 +2005,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-sphobjinv-defer-ssl-import.patch	\
   %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch	\
   %D%/packages/patches/python-wxwidgets-type-errors.patch	\
+  %D%/packages/patches/qcodeeditor-qt6.patch			\
   %D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch	\
   %D%/packages/patches/qtdeclarative-disable-qmlcache.patch	\
   %D%/packages/patches/quodlibet-fix-invalid-glob.patch	\
diff --git a/gnu/packages/patches/qcodeeditor-qt6.patch b/gnu/packages/patches/qcodeeditor-qt6.patch
new file mode 100644
index 0000000000..d606e88549
--- /dev/null
+++ b/gnu/packages/patches/qcodeeditor-qt6.patch
@@ -0,0 +1,199 @@
+From 4c07c7e63727750a85f796a5b356c480f462bec2 Mon Sep 17 00:00:00 2001
+From: benyamin <benyamin.saedi <at> gmail.com>
+Date: Wed, 14 Sep 2022 19:43:38 +0430
+Subject: [PATCH] initialized with Qt6
+
+---
+ CMakeLists.txt                | 12 ++++++------
+ example/CMakeLists.txt        | 14 +++++++-------
+ example/src/MainWindow.cpp    |  9 +++++----
+ src/internal/QCodeEditor.cpp  | 15 ++++++++-------
+ src/internal/QLanguage.cpp    |  7 ++-----
+ src/internal/QSyntaxStyle.cpp | 19 +++++++------------
+ 6 files changed, 35 insertions(+), 41 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 40d5617..7cc7496 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -75,9 +75,9 @@ set(CMAKE_AUTOMOC On)
+ set(CMAKE_AUTORCC ON)
+ 
+ # Find includes in corresponding build directories
+-find_package(Qt5Core    CONFIG REQUIRED)
+-find_package(Qt5Widgets CONFIG REQUIRED)
+-find_package(Qt5Gui     CONFIG REQUIRED)
++find_package(Qt6Core    CONFIG REQUIRED)
++find_package(Qt6Widgets CONFIG REQUIRED)
++find_package(Qt6Gui     CONFIG REQUIRED)
+ 
+ add_library(QCodeEditor STATIC
+     ${RESOURCES_FILE}
+@@ -104,7 +104,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+ endif(CMAKE_COMPILER_IS_GNUCXX)
+ 
+ target_link_libraries(QCodeEditor
+-    Qt5::Core
+-    Qt5::Widgets
+-    Qt5::Gui
++    Qt::Core
++    Qt::Widgets
++    Qt::Gui
+ )
+diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
+index 0e0bf4a..d6204e4 100644
+--- a/example/CMakeLists.txt
++++ b/example/CMakeLists.txt
+@@ -6,9 +6,9 @@ set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_AUTOMOC On)
+ set(CMAKE_AUTORCC ON)
+ 
+-find_package(Qt5Core    CONFIG REQUIRED)
+-find_package(Qt5Widgets CONFIG REQUIRED)
+-find_package(Qt5Gui     CONFIG REQUIRED)
++find_package(Qt6Core    CONFIG REQUIRED)
++find_package(Qt6Widgets CONFIG REQUIRED)
++find_package(Qt6Gui     CONFIG REQUIRED)
+ 
+ add_executable(QCodeEditorExample
+     resources/demo_resources.qrc
+@@ -22,8 +22,8 @@ target_include_directories(QCodeEditorExample PUBLIC
+ )
+ 
+ target_link_libraries(QCodeEditorExample
+-    Qt5::Core
+-    Qt5::Widgets
+-    Qt5::Gui
++    Qt::Core
++    Qt::Widgets
++    Qt::Gui
+     QCodeEditor
+-)
+\ No newline at end of file
++)
+diff --git a/example/src/MainWindow.cpp b/example/src/MainWindow.cpp
+index 5552835..e71a1f2 100644
+--- a/example/src/MainWindow.cpp
++++ b/example/src/MainWindow.cpp
+@@ -15,13 +15,14 @@
+ #include <QPythonHighlighter>
+ 
+ // Qt
+-#include <QComboBox>
+-#include <QVBoxLayout>
+-#include <QHBoxLayout>
+ #include <QCheckBox>
+-#include <QSpinBox>
++#include <QComboBox>
++#include <QFile>
+ #include <QGroupBox>
++#include <QHBoxLayout>
+ #include <QLabel>
++#include <QSpinBox>
++#include <QVBoxLayout>
+ 
+ MainWindow::MainWindow(QWidget* parent) :
+     QMainWindow(parent),
+diff --git a/src/internal/QCodeEditor.cpp b/src/internal/QCodeEditor.cpp
+index 1aa93e7..1369ff4 100644
+--- a/src/internal/QCodeEditor.cpp
++++ b/src/internal/QCodeEditor.cpp
+@@ -537,16 +537,17 @@ void QCodeEditor::keyPressEvent(QKeyEvent* e) {
+ 
+     // Shortcut for moving line to left
+     if (m_replaceTab && e->key() == Qt::Key_Backtab) {
+-      indentationLevel = std::min(indentationLevel, m_tabReplace.size());
++        indentationLevel = std::min(indentationLevel, (int) m_tabReplace.size());
+ 
+-      auto cursor = textCursor();
++        auto cursor = textCursor();
+ 
+-      cursor.movePosition(QTextCursor::MoveOperation::StartOfLine);
+-      cursor.movePosition(QTextCursor::MoveOperation::Right,
+-                          QTextCursor::MoveMode::KeepAnchor, indentationLevel);
++        cursor.movePosition(QTextCursor::MoveOperation::StartOfLine);
++        cursor.movePosition(QTextCursor::MoveOperation::Right,
++                            QTextCursor::MoveMode::KeepAnchor,
++                            indentationLevel);
+ 
+-      cursor.removeSelectedText();
+-      return;
++        cursor.removeSelectedText();
++        return;
+     }
+ 
+     QTextEdit::keyPressEvent(e);
+diff --git a/src/internal/QLanguage.cpp b/src/internal/QLanguage.cpp
+index 3665df7..417c657 100644
+--- a/src/internal/QLanguage.cpp
++++ b/src/internal/QLanguage.cpp
+@@ -32,8 +32,7 @@ bool QLanguage::load(QIODevice* device)
+ 
+         if (type == QXmlStreamReader::TokenType::StartElement)
+         {
+-            if (reader.name() == "section")
+-            {
++            if (reader.name().toString() == "section") {
+                 if (!list.empty())
+                 {
+                     m_list[name] = list;
+@@ -41,9 +40,7 @@ bool QLanguage::load(QIODevice* device)
+                 }
+ 
+                 name = reader.attributes().value("name").toString();
+-            }
+-            else if (reader.name() == "name")
+-            {
++            } else if (reader.name().toString() == "name") {
+                 readText = true;
+             }
+         }
+diff --git a/src/internal/QSyntaxStyle.cpp b/src/internal/QSyntaxStyle.cpp
+index 6a9eb55..a4730de 100644
+--- a/src/internal/QSyntaxStyle.cpp
++++ b/src/internal/QSyntaxStyle.cpp
+@@ -25,15 +25,12 @@ bool QSyntaxStyle::load(QString fl)
+ 
+         if(token == QXmlStreamReader::StartElement)
+         {
+-            if (reader.name() == "style-scheme")
+-            {
++            if (reader.name().toString() == "style-scheme") {
+                 if (reader.attributes().hasAttribute("name"))
+                 {
+                     m_name = reader.attributes().value("name").toString();
+                 }
+-            }
+-            else if (reader.name() == "style")
+-            {
++            } else if (reader.name().toString() == "style") {
+                 auto attributes = reader.attributes();
+ 
+                 auto name = attributes.value("name");
+@@ -50,21 +47,19 @@ bool QSyntaxStyle::load(QString fl)
+                     format.setForeground(QColor(attributes.value("foreground").toString()));
+                 }
+ 
+-                if (attributes.hasAttribute("bold") &&
+-                    attributes.value("bold") == "true")
+-                {
++                if (attributes.hasAttribute("bold")
++                    && attributes.value("bold").toString() == "true") {
+                     format.setFontWeight(QFont::Weight::Bold);
+                 }
+ 
+-                if (attributes.hasAttribute("italic") &&
+-                    attributes.value("italic") == "true")
+-                {
++                if (attributes.hasAttribute("italic")
++                    && attributes.value("italic").toString() == "true") {
+                     format.setFontItalic(true);
+                 }
+ 
+                 if (attributes.hasAttribute("underlineStyle"))
+                 {
+-                    auto underline = attributes.value("underlineStyle");
++                    auto underline = attributes.value("underlineStyle").toString();
+ 
+                     auto s = QTextCharFormat::UnderlineStyle::NoUnderline;
+ 
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 432282f9cf..6a59ca31ba 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4867,6 +4867,58 @@ (define-public dotherside
 @end itemize\n")
     (license license:lgpl3)))                    ;version 3 only (+ exception)
 
+(define-public qcodeeditor
+  (let ((commit "dc644d41b68978ab9a5591ba891a223221570e74") ;no tags
+        (revision "0"))
+    (package
+      (name "qcodeeditor")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Megaxela/QCodeEditor")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1bpvfwbgp275w79dzrd7d9k3md1ch7n88rh59mxdfj8s911n42j8"))
+                (patches
+                 (search-patches "qcodeeditor-qt6.patch"))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:qtbase qtbase
+             #:tests? #f ;no tests
+             #:configure-flags
+             #~(list "-DBUILD_EXAMPLE=ON"
+                     (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
+                                    #$output "/lib"))
+             #:phases
+             #~(modify-phases %standard-phases
+                 (add-after 'unpack 'build-shared-library
+                   (lambda _
+                     (substitute* "CMakeLists.txt"
+                       (("STATIC") "SHARED"))))
+                 ;; Install rule does not exist.
+                 (replace 'install
+                   (lambda _
+                     (install-file "example/QCodeEditorExample"
+                                   (string-append #$output "/bin"))
+                     (install-file "libQCodeEditor.so"
+                                   (string-append #$output "/lib"))
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output
+                                                      "/include/QCodeEditor")))
+                       (find-files "../source/include/internal" "\\.hpp")))))))
+      (inputs
+       (list qtwayland))
+      (home-page "https://github.com/Megaxela/QCodeEditor")
+      (synopsis "Qt code editor widget")
+      (description
+       "QCodeEditor is a Qt widget for editing/viewing code.")
+      (license license:expat))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 21 Feb 2025 09:27:04 GMT) Full text and rfc822 format available.

Message #155 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v4 4/7] gnu: Add qtcsv.
Date: Fri, 21 Feb 2025 14:31:57 +0530
* gnu/packages/serialization.scm (qtcsv): New variable.

Change-Id: I9192e9c86914a204f1fcf940b56da33d0ba6ffbb
---
 gnu/packages/serialization.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index f77ae9dc16..c0f7001fa0 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -51,6 +51,7 @@ (define-module (gnu packages serialization)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system pyproject)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -69,6 +70,7 @@ (define-module (gnu packages serialization)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages time))
 
 (define-public avro-cpp-1.9
@@ -441,6 +443,30 @@ (define-public libcsv
      "This package provides a C library for parsing and writing CSV data.")
     (license license:lgpl2.1+)))
 
+(define-public qtcsv
+  (package
+    (name "qtcsv")
+    (version "1.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/iamantony/qtcsv")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c9i93kr7wvpr01i4wixi9mf991nd3k2adg5fy0vxwwlvvc7dgdw"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:qtbase qtbase
+           #:test-target "tests"))
+    (home-page "https://github.com/iamantony/qtcsv")
+    (synopsis "Library for reading and writing CSV files in Qt")
+    (description
+     "@code{qtcsv} is a library for reading and writing
+@acronym{CSV,comma-seperated values} files in Qt.")
+    (license license:expat)))
+
 (define-public libscfg
   (package
     (name "libscfg")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 21 Feb 2025 09:27:05 GMT) Full text and rfc822 format available.

Message #158 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v4 5/7] gnu: Add qtpromise.
Date: Fri, 21 Feb 2025 14:31:58 +0530
* gnu/packages/qt.scm (qtpromise): New variable.

Change-Id: Iaec93f91e8efe2a17eb32f7205f12eab5ed1e269
---
 gnu/packages/qt.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index cd3a572208..5f52a2cc41 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4948,6 +4948,46 @@ (define-public qt-advanced-docking-system
 window docking system.")
     (license license:lgpl2.1+)))
 
+(define-public qtpromise
+  (package
+    (name "qtpromise")
+    (version "0.7.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/simonbrunel/qtpromise")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nsh6v5k4kdrrhcd6adz947n0dka4rrbx8f8rvm1175545nbi67s"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:test-target "tests"
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'install 'fix-include-path
+                 (lambda _
+                   (chdir "../source")
+                   (substitute* "../source/include/QtPromise"
+                     (("../src/") ""))))
+               (replace 'install
+                 (lambda _
+                   (let ((include (string-append #$output "/include")))
+                     (with-directory-excursion "../source"
+                       (install-file "include/QtPromise"
+                                     (string-append include))
+                       (copy-recursively "src/qtpromise"
+                                         (string-append include
+                                                        "/qtpromise")))))))))
+    (home-page "https://qtpromise.netlify.app/")
+    (synopsis "Promises/A+ implementation for Qt/C++")
+    (description
+     "This package provides a Qt/C++ implementation of
+@url{Promises/A+,https://promisesaplus.com/} standard for the 'promises'
+programming paradigm..")
+    (license license:expat)))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to maxim.cournoyer <at> gmail.com, z572 <at> z572.online, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 21 Feb 2025 09:27:06 GMT) Full text and rfc822 format available.

Message #161 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v4 6/7] gnu: Add qtwidgetanimationframework.
Date: Fri, 21 Feb 2025 14:31:59 +0530
* gnu/packages/qt.scm (qtwidgetanimationframework): New variable.

Change-Id: I0368d1b68d80b64b9d363b5e76c3133619b3ccaa
---
 gnu/packages/qt.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 5f52a2cc41..fd6a12e049 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -34,6 +34,7 @@
 ;;; Copyright �� 2024 Foundation Devices, Inc. <hello <at> foundation.xyz>
 ;;; Copyright �� 2024 Josep Bigorra <jjbigorra <at> gmail.com>
 ;;; Copyright �� 2025 John Kehayias <john.kehayias <at> protonmail.com>
+;;; Copyright �� 2024 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4988,6 +4989,66 @@ (define-public qtpromise
 programming paradigm..")
     (license license:expat)))
 
+(define-public qtwidgetanimationframework
+  (let ((commit "b07ab59cee7a21eb29d29cb67c160681f13ac5ae") ;no tags
+          (revision "0"))
+    (package
+      (name "qtwidgetanimationframework")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+           (git-reference
+             (url "https://github.com/dimkanovikov/WidgetAnimationFramework")
+             (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1smbdrzk05vvbf6lpjdq82k4y2kc4yv1gk5388qbslbzlb6ihls6"))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:qtbase qtbase
+             #:tests? #f ;no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 ;; This project does not have any build rule but its demo has
+                 ;; one.
+                 (add-after 'unpack 'pre-configure
+                   (lambda _
+                     (copy-file "demo/waf-demo.pro" "src/waf.pro")
+                     (substitute* "src/waf.pro"
+                       (("main.cpp ") "")
+                       (("app") "lib")
+                       (("waf-demo") "waf"))
+                     (chdir "src")))
+                 ;; No configure script exists.
+                 (replace 'configure
+                   (lambda _
+                     (invoke "qmake")))
+                 ;; No install rule exists.
+                 (replace 'install
+                   (lambda _
+                     ;; Install library files.
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/lib/"
+                                                      (dirname file))))
+                       (find-files "." "\\.so"))
+                     ;; Install header files.
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/include/WAF/"
+                                                      (dirname file))))
+                       (find-files "." "\\.h$")))))))
+      (home-page "https://github.com/dimkanovikov/WidgetAnimationFramework")
+      (synopsis "Extension for animating Qt widgets")
+      (description
+       "@acronym{WAF,Widget Animation Framework} is an extension for animating
+Qt widgets.")
+      (license license:lgpl3+))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1





Information forwarded to gabriel <at> erlikon.ch, guix-patches <at> gnu.org:
bug#74344; Package guix-patches. (Fri, 21 Feb 2025 09:27:07 GMT) Full text and rfc822 format available.

Message #164 received at 74344 <at> debbugs.gnu.org (full text, mbox):

From: Sughosha <sughosha <at> disroot.org>
To: 74344 <at> debbugs.gnu.org
Cc: Sughosha <sughosha <at> disroot.org>
Subject: [PATCH v4 7/7] gnu: Add jamesdsp.
Date: Fri, 21 Feb 2025 14:32:00 +0530
* gnu/packages/audio.scm (jamesdsp): New variable.

Change-Id: Icabd933958029411a2e55ef9515fa3e94c09b22f
---
 gnu/packages/audio.scm | 139 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index c1a99aee0f..9f50f7f940 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -52,6 +52,7 @@
 ;;; Copyright �� 2024 Roman Scherer <roman <at> burningswell.com>
 ;;; Copyright �� 2024 Artyom V. Poptsov <poptsov.artyom <at> gmail.com>
 ;;; Copyright �� 2025 Junker <dk <at> junkeria.club>
+;;; Copyright �� 2025 Sughosha <sughosha <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -168,6 +169,7 @@ (define-module (gnu packages audio)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system pyproject)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system waf)
   #:use-module (guix download)
@@ -765,6 +767,143 @@ (define-public qm-dsp
 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.
+               (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
+           #: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
+PulseAudio clients, featuring:
+@itemize
+@item Automatic bass boost: Frequency-detecting bass-boost
+@item Automatic dynamic range compressor: automated multiband dynamic range
+ adjusting effect
+@item Complex reverberation IIR network (Progenitor 2)
+@item Interpolated FIR equalizer with flexible bands
+@item Arbitrary response equalizer (also known as GraphicEQ from EqualizerAPO)
+@item AutoEQ database integration (requires network connection)
+@item Partitioned convolver (Auto segmenting convolution): Mono, stereo,
+ full/true stereo (LL, LR, RL, RR) impulse response
+@item Crossfeed: Realistic surround effects
+@item Soundstage wideness: A multiband stereo wideness controller
+@item ViPER-DDC: Parametric equalization on audio and creating VDC input files
+@item Analog modeling: An aliasing-free even harmonic generator
+@item Output limiter
+@item Scripting engine: Live programmable DSP using the EEL2 scripting language
+@item Scripting IDE featuring syntax highlighting, basic code completion,
+ dynamic code outline window, console output support and detailed error
+ messages with inline code highlighting
+@end itemize")
+    (license license:gpl3+)))
+
 (define ardour-bundled-media
   (origin
     (method url-fetch)
-- 
2.47.1





Reply sent to Maxim Cournoyer <maxim.cournoyer <at> gmail.com>:
You have taken responsibility. (Sat, 22 Feb 2025 15:42:04 GMT) Full text and rfc822 format available.

Notification sent to Sughosha <sughosha <at> disroot.org>:
bug acknowledged by developer. (Sat, 22 Feb 2025 15:42:05 GMT) Full text and rfc822 format available.

Message #169 received at 74344-done <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Sughosha <sughosha <at> disroot.org>
Cc: 74344-done <at> debbugs.gnu.org, Gabriel Wicki <gabriel <at> erlikon.ch>,
 Leo Famulari <leo <at> famulari.name>
Subject: Re: [bug#74344] [PATCH v4 7/7] gnu: Add jamesdsp.
Date: Sun, 23 Feb 2025 00:41:30 +0900
Hi,

Sughosha <sughosha <at> disroot.org> writes:

> * gnu/packages/audio.scm (jamesdsp): New variable.

Merged this series with commit 0134b8c8d0.  Thank you and the others for
reviewing.

-- 
Thanks,
Maxim




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 23 Mar 2025 11:24:35 GMT) Full text and rfc822 format available.

This bug report was last modified 109 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.