[PATCH 0/7] gnu: Add jamesdsp.

  • Open
  • quality assurance status badge
Details
2 participants
  • Gabriel Wicki
  • Sughosha
Owner
unassigned
Submitted by
Sughosha
Severity
normal
S
S
Sughosha wrote on 13 Nov 16:37 +0100
(address . guix-patches@gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
cover.1731512270.git.sughosha@disroot.org
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
S
S
Sughosha wrote on 13 Nov 16:46 +0100
[PATCH 1/7] gnu: Add asyncplusplus.
(address . 74344@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
009f0224022cd4677679737eb01a26142e658152.1731512782.git.sughosha@disroot.org
* gnu/packages/cpp.scm (asyncplusplus): New variable.

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

Toggle diff (42 lines)
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
S
S
Sughosha wrote on 13 Nov 16:46 +0100
[PATCH 2/7] gnu: Add qcodeeditor.
(address . 74344@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
27a83d4a7c8a696acc70f7ebbd050080a10b34c3.1731512782.git.sughosha@disroot.org
* gnu/packages/qt.scm (qcodeeditor): New variable.

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

Toggle diff (49 lines)
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
S
S
Sughosha wrote on 13 Nov 16:46 +0100
[PATCH 3/7] gnu: Add qt-advanced-docking-system.
(address . 74344@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
0d1c7fa75260391f46f042a36af861213d809b73.1731512783.git.sughosha@disroot.org
* gnu/packages/qt.scm (qt-advanced-docking-system): New variable.

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

Toggle diff (55 lines)
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
S
S
Sughosha wrote on 13 Nov 16:46 +0100
[PATCH 4/7] gnu: Add qtcsv.
(address . 74344@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
53f3800d64e7b4aaa4e1ca19a26065550ff7ec59.1731512783.git.sughosha@disroot.org
* gnu/packages/qt.scm (qtcsv): New variable.

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

Toggle diff (36 lines)
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
S
S
Sughosha wrote on 13 Nov 16:46 +0100
[PATCH 5/7] gnu: Add qtpromise.
(address . 74344@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
e555af2c6b504b7eca8ef64bd2bcbbd617969cbb.1731512783.git.sughosha@disroot.org
* gnu/packages/qt.scm (qtpromise): New variable.

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

Toggle diff (50 lines)
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
S
S
Sughosha wrote on 13 Nov 16:46 +0100
[PATCH 6/7] gnu: Add widgetanimationframework.
(address . 74344@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
d8916bbafc835bf3e4e808b9e442dfc63ec170a4.1731512783.git.sughosha@disroot.org
* gnu/packages/qt.scm (widgetanimationframework): New variable.

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

Toggle diff (76 lines)
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@qq.com>
;;; Copyright © 2023 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2024 Foundation Devices, Inc. <hello@foundation.xyz>
+;;; Copyright © 2024 Sughosha <sughosha@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
S
S
Sughosha wrote on 13 Nov 16:46 +0100
[PATCH 7/7] gnu: Add jamesdsp.
(address . 74344@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
8682c543b89052ca0f0f76b5159e1da9f43f1ede.1731512783.git.sughosha@disroot.org
* gnu/packages/audio.scm (jamesdsp): New variable.

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

Toggle diff (160 lines)
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@posteo.net>
;;; Copyright © 2024 mio <stigma@disroot.org>
;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me>
+;;; Copyright © 2024 Sughosha <sughosha@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
G
G
Gabriel Wicki wrote on 26 Nov 23:52 +0100
Review
(name . Sughosha)(address . sughosha@disroot.org)(address . 74344@debbugs.gnu.org)
nzpu45hnctxowfbkipxsuum5srn5hyc7mejn6fdobffwrqmifg@rmnnx5d2ztgk
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
S
S
Sughosha wrote 7 days ago
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)(address . 74344@debbugs.gnu.org)
4610880.LvFx2qVVIh@localhost.localdomain
On Wednesday, November 27, 2024 4:22:35?AM Gabriel Wicki wrote:
Toggle quote (25 lines)
> 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
S
S
Sughosha wrote 7 days ago
[PATCH v2 0/7] gnu: Add jamesdsp.
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
cover.1732788466.git.sughosha@disroot.org
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
S
S
Sughosha wrote 7 days ago
[PATCH v2 1/7] gnu: Add asyncplusplus.
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
534e77c9ac4b76db1002d794abc12a4191467d6c.1732788466.git.sughosha@disroot.org
* gnu/packages/cpp.scm (asyncplusplus): New variable.

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

Toggle diff (40 lines)
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
S
S
Sughosha wrote 7 days ago
[PATCH v2 2/7] gnu: Add qcodeeditor.
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
b56307a3ac5e7db0f5c7855de48442f5262ccd26.1732788466.git.sughosha@disroot.org
* gnu/packages/qt.scm (qcodeeditor): New variable.

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

Toggle diff (49 lines)
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
S
S
Sughosha wrote 7 days ago
[PATCH v2 3/7] gnu: Add qt-advanced-docking-system.
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
f0d4886457aab7636aacfcecb977412b1ffb9bad.1732788466.git.sughosha@disroot.org
* gnu/packages/qt.scm (qt-advanced-docking-system): New variable.

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

Toggle diff (45 lines)
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
S
S
Sughosha wrote 7 days ago
[PATCH v2 5/7] gnu: Add qtpromise.
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
5efe1ba7b1b470a7138fe636d3b3ee8c0e431ca5.1732788466.git.sughosha@disroot.org
* gnu/packages/qt.scm (qtpromise): New variable.

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

Toggle diff (50 lines)
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
S
S
Sughosha wrote 7 days ago
[PATCH v2 6/7] gnu: Add qt-widget-animation-framework.
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
feeeb190e46fdab2250f318782bc55d8fa62dc97.1732788466.git.sughosha@disroot.org
* gnu/packages/qt.scm (qt-widget-animation-framework): New variable.

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

Toggle diff (80 lines)
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@qq.com>
;;; Copyright © 2023 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2024 Foundation Devices, Inc. <hello@foundation.xyz>
+;;; Copyright © 2024 Sughosha <sughosha@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
S
S
Sughosha wrote 7 days ago
[PATCH v2 4/7] gnu: Add qtcsv.
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
3f682c3dcd29189f161eced168ac78257f4f6407.1732788466.git.sughosha@disroot.org
* gnu/packages/qt.scm (qtcsv): New variable.

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

Toggle diff (36 lines)
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
S
S
Sughosha wrote 7 days ago
[PATCH v2 7/7] gnu: Add jamesdsp.
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)
d32d79352e38e463daecca016f8dd93403a62f8e.1732788466.git.sughosha@disroot.org
* gnu/packages/audio.scm (jamesdsp): New variable.

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

Toggle diff (160 lines)
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@posteo.net>
;;; Copyright © 2024 mio <stigma@disroot.org>
;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me>
+;;; Copyright © 2024 Sughosha <sughosha@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
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 74344@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 74344
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch