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..b2c888c 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 @@ -163,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 @@ -321,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 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/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/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/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 c9d3ee6..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 @@ -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 diff --git a/packaging/plugin-hostd.spec b/packaging/plugin-hostd.spec index 07ded50..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 @@ -110,9 +110,16 @@ 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 +* 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