[PATCH core-updates 0/4] Add more tests to lsp-plugins

  • Open
  • quality assurance status badge
Details
One participant
  • Parnikkapore
Owner
unassigned
Submitted by
Parnikkapore
Severity
normal
P
P
Parnikkapore wrote on 21 Apr 00:03 +0200
(address . guix-patches@gnu.org)
cover.1713647481.git.poomklao@yahoo.com
Hi Guix!

This patch series has a few updates and fixes building towards using
lv2lint and lv2_validate to test lsp-plugins further.

Because changing sord affects many packages, this series should go on
core-updates; it should be OK to merge the first patch straight to
master, however.

The last patch requires https://issues.guix.gnu.org/70486.

Parnikkapore (4):
gnu: lv2lint: Update to 0.16.2.
gnu: sord: Fix missing sord_validate.
gnu: lv2: Hard-code path for sord_validate
gnu: lsp-plugins: Test with lv2lint and lv2_validate.

gnu/packages/audio.scm | 26 +++++++++-----
gnu/packages/music.scm | 79 ++++++++++++++++++++++++++++--------------
gnu/packages/rdf.scm | 2 +-
3 files changed, 72 insertions(+), 35 deletions(-)


base-commit: 43a4215cad8c6da357f895569c0cedf5e854cee0
prerequisite-patch-id: 1104b4fdc3ddb7633d2bee4f68cb70d6c8961243
prerequisite-patch-id: 5cb5081aefcfd465769f508a7e0beaff2b4e339e
prerequisite-patch-id: 14af9262fcd071dd89e7b5ea33f3c5ca7ef97333
prerequisite-patch-id: 79ff13b50e217e6fc18dd1a2c3fcc56aad69d9c7
prerequisite-patch-id: f294eb85e37c3409b9bd3349d3d265df4baaf9bc
--
2.41.0
P
P
Parnikkapore wrote on 21 Apr 01:02 +0200
[PATCH core-updates 1/4] gnu: lv2lint: Update to 0.16.2.
(address . 70487@debbugs.gnu.org)
55416d4cf7cf7172cc2efc898e2cae35ec1dcea3.1713647481.git.poomklao@yahoo.com
* gnu/packages/audio.scm (lv2lint): Update to 0.16.2.
[configure-flags]: Enable X11 tests, like upstream builds.
[inputs]: Add lv2 and libx11.

Change-Id: Ib331399d8d95117574beab900480885ab4a73fcf
---
gnu/packages/audio.scm | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)

Toggle diff (55 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 1a88698165..e3a6c692d2 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -45,7 +45,7 @@
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Gabriel Wicki <gabriel@erlikon.ch>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
-;;; Copyright © 2023 Parnikkapore <poomklao@yahoo.com>
+;;; Copyright © 2023, 2024 Parnikkapore <poomklao@yahoo.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -5733,31 +5733,32 @@ (define-public libaudec
(define-public lv2lint
(package
(name "lv2lint")
- (version "0.8.0")
+ (version "0.16.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://git.open-music-kontrollers.ch/lv2/lv2lint")
+ (url "https://git.open-music-kontrollers.ch/~hp/lv2lint")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "1jrka0hsn4n1clri7zfkcl3c2vi52144lkpjm81l51ff8rqy8ks1"))))
+ "0cyiq5amf02k6fkmbch3kgmfx6wa33k310ig7zzf6rwbswmdnk1n"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
- `("-Delf-tests=true" ; for checking symbol visibility
- "-Donline-tests=true"))) ; for checking URI existence
+ `("-Donline-tests=enabled" ; for checking URI existence
+ "-Delf-tests=enabled" ; for checking symbol visibility
+ "-Dx11-tests=enabled"))) ; for checking X11 UI instantiation
(inputs
- (list curl libelf lilv))
+ (list lv2 lilv curl libelf libx11))
(native-inputs
(list pkg-config))
(synopsis "LV2 plugin lint tool")
(description "lv2lint is an LV2 lint-like tool that checks whether a
given plugin and its UI(s) match up with the provided metadata and adhere
to well-known best practices.")
- (home-page "https://open-music-kontrollers.ch/lv2/lv2lint/")
+ (home-page "https://git.open-music-kontrollers.ch/~hp/lv2lint")
(license license:artistic2.0)))
(define-public lv2toweb
--
2.41.0
P
P
Parnikkapore wrote on 21 Apr 01:02 +0200
[PATCH core-updates 2/4] gnu: sord: Fix missing sord_validate.
(address . 70487@debbugs.gnu.org)
84ca529753c8dad411e0dbfdae90f3d0f2b8ceca.1713647481.git.poomklao@yahoo.com
* gnu/packages/rdf.scm (sord): Fix missing sord_validate.
[inputs]: Replace pcre with pcre2

Change-Id: I0e78419476097c8c72a1986c9ce68d774824c2c3
---
gnu/packages/rdf.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index cc6b009f14..bd9e8c9e54 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -316,7 +316,7 @@ (define-public sord
"1l2zjz6gypxbf1z32zyqkljdcn9mz452djc4xq1dlhv1fmnqfzr5"))))
(build-system meson-build-system)
(inputs
- (list pcre))
+ (list pcre2))
(native-inputs
(list pkg-config))
(propagated-inputs
--
2.41.0
P
P
Parnikkapore wrote on 21 Apr 01:02 +0200
[PATCH core-updates 3/4] gnu: lv2: Hard-code path for sord_validate
(address . 70487@debbugs.gnu.org)
43ec83da41d66fa5982755eba2b95f8286c15bb4.1713647481.git.poomklao@yahoo.com
Change-Id: I29323db7133a17fdf11c37db4df10f4ddce9e8b7
---
gnu/packages/audio.scm | 9 +++++++++
1 file changed, 9 insertions(+)

Toggle diff (22 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index e3a6c692d2..532c835b20 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -3146,6 +3146,15 @@ (define-public lv2
(base32
"0gwm63jrvg9lww0rl3sjkgbjwfz0vascpb19cfxmhkmm477ipibq"))))
(build-system meson-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "util/lv2_validate.in"
+ (("sord_validate")
+ #$(file-append sord "/bin/sord_validate"))))))))
(inputs
;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
(list libsndfile))
--
2.41.0
P
P
Parnikkapore wrote on 21 Apr 01:02 +0200
[PATCH core-updates 4/4] gnu: lsp-plugins: Test with lv2lint and lv2_validate.
(address . 70487@debbugs.gnu.org)
7ad4b3dc6f1788dc11b325d8c201023ee33dcaaa.1713647481.git.poomklao@yahoo.com
* gnu/packages/music.scm (lsp-plugins): Add more tests.
[arguments]: Add (guix build json) to the environment.
[phases]: Run lv2_validate and lv2lint.
[native-inputs]: Add lv2 (for lv2_validate) and lv2lint.

Change-Id: Ie73c5943298611dd0f8b42455151306d86a29a1e
---
gnu/packages/music.scm | 79 ++++++++++++++++++++++++++++--------------
1 file changed, 53 insertions(+), 26 deletions(-)

Toggle diff (106 lines)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 4a3e615c15..a234cbe3c2 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -90,6 +90,7 @@ (define-module (gnu packages music)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
+ #:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages)
@@ -6213,31 +6214,57 @@ (define-public lsp-plugins
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target)))
#:phases
- #~(modify-phases %standard-phases
- (replace 'configure
- (lambda _
- (invoke "make" "config"
- "STRICT=1"
- "TEST=1"
- "FEATURES=clap doc jack ladspa lv2 vst2 xdg"
- (string-append "PREFIX=" #$output)
- (string-append "ETCDIR=" #$output "/etc"))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke ".build/host/lsp-plugin-fw/lsp-plugins-test" "utest"))))
- (add-after 'install 'move-large-subdirs
- (lambda _
- (define (move-to-output output path)
- (let ((source (string-append #$output path))
- (target (string-append output path)))
- (mkdir-p (dirname target))
- (rename-file source target)))
- (move-to-output #$output:doc "/share/doc") ; 29MB
- (move-to-output #$output:lv2 "/lib/lv2") ; 32MB
- (move-to-output #$output:bin "/bin") ; Avoid cluttering xdg menu
- (move-to-output #$output:bin "/share")
- (move-to-output #$output:bin "/etc"))))))
+ (with-imported-modules (source-module-closure '((guix build json)))
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (invoke "make" "config"
+ "STRICT=1"
+ "TEST=1"
+ "FEATURES=clap doc jack ladspa lv2 vst2 xdg"
+ (string-append "PREFIX=" #$output)
+ (string-append "ETCDIR=" #$output "/etc"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke ".build/host/lsp-plugin-fw/lsp-plugins-test" "utest"))))
+ (add-after 'install 'move-large-subdirs
+ (lambda _
+ (define (move-to-output output path)
+ (let ((source (string-append #$output path))
+ (target (string-append output path)))
+ (mkdir-p (dirname target))
+ (rename-file source target)))
+ (move-to-output #$output:doc "/share/doc") ; 29MB
+ (move-to-output #$output:lv2 "/lib/lv2") ; 32MB
+ (move-to-output #$output:bin "/bin") ; Avoid cluttering xdg menu
+ (move-to-output #$output:bin "/share")
+ (move-to-output #$output:bin "/etc")))
+ (add-after 'move-large-subdirs 'postinstall-check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (use-modules (guix build json))
+ (let* ((plugins-json
+ (call-with-input-file
+ ".build/target/lsp-plugin-fw/plugins.json"
+ read-json))
+ (plugin-objects
+ (assoc-ref plugins-json "plugins"))
+ (plugin-urls
+ (map (lambda (obj) (assoc-ref obj "lv2_uri"))
+ plugin-objects))
+ (plugin-urls (filter ->bool plugin-urls)))
+ (setenv
+ "LV2_PATH"
+ (string-append #$output:lv2 "/lib/lv2:" #$lv2 "/lib/lv2"))
+ (for-each
+ (lambda (url)
+ (invoke "lv2lint" "-Mpack" "-t" "* Symbols" url))
+ plugin-urls))
+ (system
+ (string-append "lv2_validate "
+ #$output:lv2
+ "/usr/lib/lv2/lsp-*.lv2/*.ttl")))))))))
(inputs
(list cairo
freetype
@@ -6246,7 +6273,7 @@ (define-public lsp-plugins
libx11
libxrandr
mesa))
- (native-inputs (list pkg-config php))
+ (native-inputs (list pkg-config php lv2 lv2lint))
(outputs '("out" "doc" "lv2" "debug"))
(synopsis "Audio plugin collection")
(description "LSP (Linux Studio Plugins) is a collection of audio
--
2.41.0
?