From 21a66dbfdddf3135daf98b6fdbb1be6155ad5b47 Mon Sep 17 00:00:00 2001 From: Pau Aliagas Date: Sat, 24 Oct 2026 15:55:25 +0200 Subject: [PATCH 1/4] Install the preset schema with the other two schemas protocol/preset.schema.json is the schema the 0.9.0 preset file is checked against, but make install, the spec and debian/plugin-hostd-dev.install carried only protocol.schema.json and probe-output.schema.json, so a downstream generator could not hold to it. Install it as /usr/share/plugin-hostd/preset.schema.json and list it in plugin-hostd-devel and plugin-hostd-dev beside the others. The pkg-config file already exposes the directory as protocoldir. Schema content is unchanged. Refs #145. --- .github/workflows/ci.yml | 2 +- Makefile | 1 + debian/plugin-hostd-dev.install | 1 + packaging/plugin-hostd.spec | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 830ffe9..52fbcf9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -219,7 +219,7 @@ jobs: rpm -qlp "$rpm" rpm -qp --qf '[%{FILEMODES:perms} %{FILENAMES}\n]' "$rpm" | grep -v '^d' | cut -d' ' -f2 | sort > files.txt printf '%s\n' /usr/include/plugin-hostd/protocol.h /usr/include/plugin-hostd/pin.h /usr/share/pkgconfig/plugin-hostd.pc \ - /usr/share/plugin-hostd/protocol.schema.json /usr/share/plugin-hostd/probe-output.schema.json \ + /usr/share/plugin-hostd/protocol.schema.json /usr/share/plugin-hostd/probe-output.schema.json /usr/share/plugin-hostd/preset.schema.json \ /usr/share/omx-contract/contract.d/3/plugin-hostd/MANIFEST.json \ /usr/share/omx-contract/contract.d/3/plugin-hostd/formats/clap.json \ /usr/share/omx-contract/contract.d/3/plugin-hostd/formats/lv2.json \ diff --git a/Makefile b/Makefile index 1ce81c1..586cad4 100644 --- a/Makefile +++ b/Makefile @@ -111,6 +111,7 @@ install_protocol: install -m 644 protocol/mod-host.json $(DESTDIR)$(DATADIR)/plugin-hostd/mod-host.json install -m 644 protocol/plugin-hostd.schema.json $(DESTDIR)$(DATADIR)/plugin-hostd/protocol.schema.json install -m 644 protocol/probe-output.schema.json $(DESTDIR)$(DATADIR)/plugin-hostd/probe-output.schema.json + install -m 644 protocol/preset.schema.json $(DESTDIR)$(DATADIR)/plugin-hostd/preset.schema.json install -d $(DESTDIR)$(DATADIR)/plugin-hostd/pins.d install -d $(DESTDIR)$(INCLUDEDIR)/plugin-hostd install -m 644 include/plugin-hostd/protocol.h $(DESTDIR)$(INCLUDEDIR)/plugin-hostd/protocol.h diff --git a/debian/plugin-hostd-dev.install b/debian/plugin-hostd-dev.install index a9970cd..6f26223 100644 --- a/debian/plugin-hostd-dev.install +++ b/debian/plugin-hostd-dev.install @@ -3,4 +3,5 @@ usr/include/plugin-hostd/pin.h usr/share/pkgconfig/plugin-hostd.pc usr/share/plugin-hostd/protocol.schema.json usr/share/plugin-hostd/probe-output.schema.json +usr/share/plugin-hostd/preset.schema.json usr/share/omx-contract/contract.d/3/plugin-hostd diff --git a/packaging/plugin-hostd.spec b/packaging/plugin-hostd.spec index 07ded50..b7fb728 100644 --- a/packaging/plugin-hostd.spec +++ b/packaging/plugin-hostd.spec @@ -110,6 +110,7 @@ make test-daemon check-generated %{_datadir}/pkgconfig/plugin-hostd.pc %{_datadir}/plugin-hostd/protocol.schema.json %{_datadir}/plugin-hostd/probe-output.schema.json +%{_datadir}/plugin-hostd/preset.schema.json %{_datadir}/omx-contract/contract.d/3/plugin-hostd/ %changelog From 98a47cc4dde7dc519e671fd48b7a3a9376e16fa8 Mon Sep 17 00:00:00 2001 From: Pau Aliagas Date: Sat, 24 Oct 2026 15:55:25 +0200 Subject: [PATCH 2/4] Name the preset schema in the man page and the README The man page FILES section and the README list the schemas installed beside protocol.json, with the preset schema among them. Regenerated with make gen; make check-generated is current. Refs #145. --- README.md | 3 +++ doc/plugin-hostd.1 | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/README.md b/README.md index 4e41410..42c55c6 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,9 @@ header (`pkg-config --cflags plugin-hostd`, package `plugin-hostd-devel` or `plu else reads `/usr/share/plugin-hostd/protocol.json`. mod-host's own protocol, which the LV2 workers speak (its command and feedback templates, its parse refusals and its reply codes), is installed beside it as `/usr/share/plugin-hostd/mod-host.json`, written from the mod-host headers the daemon is built against. +The development package installs the schemas beside them: `protocol.schema.json` for the protocol JSON, +`probe-output.schema.json` for the probe's document and `preset.schema.json` for the org.openmixer.preset file +(`protocoldir` in the pkg-config file is that directory). Running ------- diff --git a/doc/plugin-hostd.1 b/doc/plugin-hostd.1 index c9d3ee6..0cbd210 100644 --- a/doc/plugin-hostd.1 +++ b/doc/plugin-hostd.1 @@ -74,6 +74,16 @@ one .RI \(dq key " value" \(dq per line: mod_host, clap_host, lv2_worker, lv2_path, state_root, pin_mode, pin_store, pin_file, pins_dir, descriptor_dir, qualification_dir, probe, ready_timeout_ms, rpc_timeout_ms, backoff_base_ms, backoff_max_ms, storm_deaths, storm_window_ms, suspect_window_ms, checkpoint_ms, idle_ms, pool_max, require_pins. .\" END GENERATED protocol:man-keys +.PP +The development package installs the schemas of the documents the daemon and its probe write or read, beside +.IR protocol.json , +in +.IR /usr/share/plugin\-hostd : +.IR protocol.schema.json , +.IR probe\-output.schema.json +and +.IR preset.schema.json +(the org.openmixer.preset file). .SH DIRECTORIES What the scan of an .B add From 028e0c7b11980f80bfa6a6c658761abfceb45ccc Mon Sep 17 00:00:00 2001 From: Pau Aliagas Date: Sat, 24 Oct 2026 15:55:43 +0200 Subject: [PATCH 3/4] Test that make install carries the three schemas test-install-schemas runs make install into a scratch DESTDIR with PREFIX=/usr and asserts protocol.schema.json, probe-output.schema.json and preset.schema.json exist under usr/share/plugin-hostd. make test runs it. Sabotaged by commenting out the preset schema install line of install_protocol, it went red: not installed: usr/share/plugin-hostd/preset.schema.json make: *** [Makefile:327: test-install-schemas] Error 1 and green again with the line restored. Refs #145. --- Makefile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 586cad4..b2c888c 100644 --- a/Makefile +++ b/Makefile @@ -164,7 +164,7 @@ clean: # the daemon against workers that are not plugin hosts at all (tests/fake-host speaks the same protocol and can be # made to die on cue): placement, forwarding, ledger, replay, attribution, the storm bound; no jack, no plugin -test: test-pin test-transforms test-format-coverage test-describe test-relay test-alloc test-format test-daemon check-generated check-schema test-probe-schema test-vocabulary test-probe test-contract test-consumer test-perturbation check-readme check-own-host-page check-no-pins check-ci-guards test-mod-host-json test-socket check-verb-table check-preset-schema +test: test-pin test-transforms test-format-coverage test-describe test-relay test-alloc test-format test-daemon check-generated check-schema test-probe-schema test-vocabulary test-probe test-contract test-consumer test-perturbation check-readme check-own-host-page check-no-pins check-ci-guards test-mod-host-json test-socket check-verb-table check-preset-schema test-install-schemas MOD_HOST_DIR=$(MOD_HOST_DIR) python3 tests/verbs_contract.py # the same without the verb table, which is read from a mod-host checkout's README @@ -322,6 +322,15 @@ check-no-pins: check-preset-schema: python3 tests/preset_format.py +# make install into a scratch DESTDIR carries all three schemas the development package ships (#145) +test-install-schemas: all + @set -e; tmp=$$(mktemp -d); trap 'rm -rf $$tmp' EXIT; \ + $(MAKE) --no-print-directory install DESTDIR=$$tmp PREFIX=/usr >/dev/null; \ + for f in protocol.schema.json probe-output.schema.json preset.schema.json; do \ + test -s $$tmp/usr/share/plugin-hostd/$$f || { echo "not installed: usr/share/plugin-hostd/$$f"; exit 1; }; \ + done; \ + echo "install carries the three schemas" + check-ci-guards: python3 tests/ci_guards.py From 4b1bff67c6020de254576985725eb9ed6a40c189 Mon Sep 17 00:00:00 2001 From: Pau Aliagas Date: Sat, 24 Oct 2026 15:55:46 +0200 Subject: [PATCH 4/4] release: plugin-hostd 0.9.1 (#145) Version 0.9.1 in debian/changelog, the spec, both man pages and src/main.c, with the changelog entry for the installed preset schema. --- debian/changelog | 9 +++++++++ doc/plugin-hostd-probe.1 | 2 +- doc/plugin-hostd.1 | 2 +- packaging/plugin-hostd.spec | 8 +++++++- src/main.c | 2 +- 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index dafd99c..e3903ae 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +plugin-hostd (0.9.1) unstable; urgency=medium + + * The preset schema, protocol/preset.schema.json, is installed in + /usr/share/plugin-hostd with the two other schemas, in the development + package, and named in the man page and the README; a test holds the + installed set (#145). + + -- Pau Aliagas Sat, 24 Oct 2026 15:55:43 +0200 + plugin-hostd (0.9.0) unstable; urgency=medium * The preset verbs preset_list, preset_load, preset_save and preset_show diff --git a/doc/plugin-hostd-probe.1 b/doc/plugin-hostd-probe.1 index 2c42b8f..ac8e62e 100644 --- a/doc/plugin-hostd-probe.1 +++ b/doc/plugin-hostd-probe.1 @@ -1,4 +1,4 @@ -.TH PLUGIN\-HOSTD\-PROBE 1 "October 2026" "plugin-hostd 0.9.0" "User Commands" +.TH PLUGIN\-HOSTD\-PROBE 1 "October 2026" "plugin-hostd 0.9.1" "User Commands" .SH NAME plugin\-hostd\-probe \- run a plugin prober under limits and write what happened .SH SYNOPSIS diff --git a/doc/plugin-hostd.1 b/doc/plugin-hostd.1 index 0cbd210..934b4da 100644 --- a/doc/plugin-hostd.1 +++ b/doc/plugin-hostd.1 @@ -1,4 +1,4 @@ -.TH PLUGIN\-HOSTD 1 "October 2026" "plugin-hostd 0.9.0" "User Commands" +.TH PLUGIN\-HOSTD 1 "October 2026" "plugin-hostd 0.9.1" "User Commands" .SH NAME plugin\-hostd \- supervisor of plugin host processes behind one mod\-host protocol socket .SH SYNOPSIS diff --git a/packaging/plugin-hostd.spec b/packaging/plugin-hostd.spec index b7fb728..6f2a130 100644 --- a/packaging/plugin-hostd.spec +++ b/packaging/plugin-hostd.spec @@ -1,7 +1,7 @@ %bcond_without check Name: plugin-hostd -Version: 0.9.0 +Version: 0.9.1 Release: 1%{?dist} License: GPL-3.0-or-later Summary: Run LV2 and CLAP plugins in a live rig without one crash taking down the show @@ -114,6 +114,12 @@ make test-daemon check-generated %{_datadir}/omx-contract/contract.d/3/plugin-hostd/ %changelog +* Sat Oct 24 2026 Pau Aliagas - 0.9.1-1 +- The preset schema, protocol/preset.schema.json, is installed in + /usr/share/plugin-hostd with the two other schemas, in the development + package, and named in the man page and the README; a test holds the + installed set (#145). + * Sat Oct 24 2026 Pau Aliagas - 0.9.0-1 - The preset verbs preset_list, preset_load, preset_save and preset_show are relayed by the daemon and the worker's answer comes back. The preset diff --git a/src/main.c b/src/main.c index 0484d9d..d8351f1 100644 --- a/src/main.c +++ b/src/main.c @@ -35,7 +35,7 @@ #include "verbs.h" #ifndef VERSION -#define VERSION "0.9.0" +#define VERSION "0.9.1" #endif #define SOCKET_DEFAULT_PORT PHD_DEFAULT_COMMAND_PORT