[PATCH 0/7] gnu: Add jamesdsp.

  • Open
  • quality assurance status badge
Details
One participant
  • Sughosha
Owner
unassigned
Submitted by
Sughosha
Severity
normal
S
S
Sughosha wrote 30 hours ago
(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 30 hours ago
[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 30 hours ago
[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 30 hours ago
[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 30 hours ago
[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 30 hours ago
[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 30 hours ago
[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 30 hours ago
[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
?
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