Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 15 additions & 25 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name: ci
#
# The protocol library, the mod-host RPMs and the RPM build are the composite actions of
# FreeMixer/.github. The real CLAP worker the jack test drives, and its fixtures, are the omx-clap-host and
# omx-clap-host-tests packages of the FreeMixer channel, installed by dnf builddep / apt-get build-dep from the
# omx-clap-host-tests packages of the OpenMixer channel, installed by dnf builddep / apt-get build-dep from the
# floor the spec and debian/control declare; nothing of omx-clap-core is checked out or built here.

on:
Expand Down Expand Up @@ -44,9 +44,9 @@ jobs:

- uses: actions/checkout@v4

# the FreeMixer channel: where the BuildRequires Fedora does not carry (omx-clap-host-tests) come from
- name: Add the FreeMixer channel
run: dnf config-manager addrepo --setopt=retries=10 --from-repofile=https://freemixer.github.io/rpm/freemixer.repo
# the OpenMixer channel: where the BuildRequires Fedora does not carry (omx-clap-host-tests) come from
- name: Add the OpenMixer channel
uses: FreeMixer/.github/.github/actions/add-openmixer@v1

# the worker and the fixtures: omx-clap-host-tests Requires omx-clap-host, so this installs both
- name: Install the build dependencies from the channel
Expand All @@ -72,7 +72,7 @@ jobs:
dnf install -y --setopt=retries=10 omx-plugins-clap
make test-panel-wire

# mod-host itself, the LV2 worker, from the FreeMixer channel: the build the RPM job packages, with the patches
# mod-host itself, the LV2 worker, from the OpenMixer channel: the build the RPM job packages, with the patches
# FreeMixer/.github carries. The floor is the one the spec requires of the protocol library.
- name: Install mod-host from the channel
run: |
Expand Down Expand Up @@ -129,14 +129,9 @@ jobs:

- uses: actions/checkout@v4

# the FreeMixer channel: where the Build-Depends Debian does not carry (omx-clap-host-tests) come from
- name: Add the FreeMixer channel
run: |
set -euo pipefail
install -d /etc/apt/keyrings
curl -fsSL --retry 5 --retry-all-errors --connect-timeout 20 -o /etc/apt/keyrings/freemixer.asc https://freemixer.github.io/deb/freemixer.asc
echo "deb [signed-by=/etc/apt/keyrings/freemixer.asc] https://freemixer.github.io/deb/debian/$(. /etc/os-release; echo $VERSION_CODENAME) ./" > /etc/apt/sources.list.d/freemixer.list
apt-get update -qq
# the OpenMixer channel: where the Build-Depends Debian does not carry (omx-clap-host-tests) come from
- name: Add the OpenMixer channel
uses: FreeMixer/.github/.github/actions/add-openmixer@v1

# the worker and the fixtures: omx-clap-host-tests Depends on omx-clap-host, so this installs both
- name: Install the build dependencies from the channel
Expand Down Expand Up @@ -195,9 +190,9 @@ jobs:
with:
fetch-depth: 0

# the FreeMixer channel: where the BuildRequires Fedora does not carry (omx-clap-host-tests) come from
- name: Add the FreeMixer channel
run: dnf config-manager addrepo --setopt=retries=10 --from-repofile=https://freemixer.github.io/rpm/freemixer.repo
# the OpenMixer channel: where the BuildRequires Fedora does not carry (omx-clap-host-tests) come from
- name: Add the OpenMixer channel
uses: FreeMixer/.github/.github/actions/add-openmixer@v1

- uses: FreeMixer/.github/.github/actions/mod-host-rpms@v1

Expand Down Expand Up @@ -335,14 +330,9 @@ jobs:
with:
fetch-depth: 0

# the FreeMixer channel: where the Build-Depends Debian does not carry (omx-clap-host-tests) come from
- name: Add the FreeMixer channel
run: |
set -euo pipefail
install -d /etc/apt/keyrings
curl -fsSL --retry 5 --retry-all-errors --connect-timeout 20 -o /etc/apt/keyrings/freemixer.asc https://freemixer.github.io/deb/freemixer.asc
echo "deb [signed-by=/etc/apt/keyrings/freemixer.asc] https://freemixer.github.io/deb/debian/$(. /etc/os-release; echo $VERSION_CODENAME) ./" > /etc/apt/sources.list.d/freemixer.list
apt-get update -qq
# the OpenMixer channel: where the Build-Depends Debian does not carry (omx-clap-host-tests) come from
- name: Add the OpenMixer channel
uses: FreeMixer/.github/.github/actions/add-openmixer@v1

- uses: FreeMixer/.github/.github/actions/deb-deps@v1

Expand Down Expand Up @@ -455,7 +445,7 @@ jobs:
PLUGIN_HOSTD_PROTOCOL=/usr/share/plugin-hostd/protocol.json python3 smoke/tests/daemon_test.py

# docs/own-host.md, command by command, as a reader would type it: a clean Debian with nothing but what the page
# lists, the published packages of the FreeMixer channel, on both architectures (arm64 is a native runner).
# lists, the published packages of the OpenMixer channel, on both architectures (arm64 is a native runner).
# A step of the page that stops working fails this job. The page's LV2 block runs an LV2 URI with
# `lv2_worker omx-clap-host`, and --audio then measures the gain of a sine that went through that instance.
own-host-page:
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,14 @@ jobs:

- uses: actions/checkout@v4

# the harnesses read mod-host's protocol headers: the FreeMixer channel's mod-host-protocol-devel, at or above the
# the harnesses read mod-host's protocol headers: the OpenMixer channel's mod-host-protocol-devel, at or above the
# floor the spec declares for the build
- name: Install the mod-host protocol headers from the FreeMixer channel
- name: Add the OpenMixer channel
uses: FreeMixer/.github/.github/actions/add-openmixer@v1

- name: Install the mod-host protocol headers from the OpenMixer channel
run: |
set -euo pipefail
dnf config-manager addrepo --setopt=retries=10 --from-repofile=https://freemixer.github.io/rpm/freemixer.repo
floor=$(sed -n 's/^BuildRequires:[[:space:]]*mod-host-protocol-devel[[:space:]]*>=[[:space:]]*\([^[:space:]]*\).*/\1/p' packaging/plugin-hostd.spec | head -n 1)
test -n "$floor"
dnf install -y --setopt=retries=10 "mod-host-protocol-devel >= $floor"
Expand Down
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,12 @@ Install

Fedora:

sudo dnf config-manager addrepo --from-repofile=https://freemixer.github.io/rpm/freemixer.repo
sudo dnf install https://www.openmixer.org/rpm/openmixer-release.noarch.rpm
sudo dnf install plugin-hostd omx-clap-host

Debian bookworm and trixie and Raspberry Pi OS (amd64 and arm64):

curl -fsSL https://freemixer.github.io/deb/freemixer.asc | sudo tee /usr/share/keyrings/freemixer.asc >/dev/null
echo "deb [signed-by=/usr/share/keyrings/freemixer.asc] https://freemixer.github.io/deb/debian/$(. /etc/os-release; echo $VERSION_CODENAME) ./" | sudo tee /etc/apt/sources.list.d/freemixer.list
curl -fsSLO https://www.openmixer.org/deb/openmixer-release.deb && sudo apt install ./openmixer-release.deb
sudo apt update && sudo apt install plugin-hostd omx-clap-host

The LV2 worker is mod-host, which Debian does not package; without it CLAP plugins still work.
Expand Down Expand Up @@ -67,7 +66,7 @@ you would a mod-host plugin. `man plugin-hostd` has the options; the full protoc
Using it from your own host (Zynthian, a Raspberry Pi, any Debian): [docs/own-host.md](docs/own-host.md), nine commands from
nothing to a plugin running.

Building from source: see [BUILDING.md](BUILDING.md). More about FreeMixer at <https://freemixer.github.io>.
Building from source: see [BUILDING.md](BUILDING.md). More about FreeMixer at <https://www.openmixer.org>.

Protocol
--------
Expand Down
4 changes: 2 additions & 2 deletions docs/own-host.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ The commands, in order. Run them as a normal user with `sudo`, or as root:

```sh own-host
send() { printf '%s\0' "$1" | nc -w3 127.0.0.1 5555 | tr '\0' '\n'; }
sudo curl -fsSL --create-dirs -o /etc/apt/keyrings/freemixer.asc https://freemixer.github.io/deb/freemixer.asc
echo "deb [signed-by=/etc/apt/keyrings/freemixer.asc] https://freemixer.github.io/deb/debian/$(. /etc/os-release; echo $VERSION_CODENAME) ./" | sudo tee /etc/apt/sources.list.d/freemixer.list
curl -fsSLO https://www.openmixer.org/deb/openmixer-release.deb
sudo apt-get install -y ./openmixer-release.deb
sudo apt-get update && sudo apt-get install -y plugin-hostd omx-clap-host omx-plugins-clap jackd2 netcat-openbsd
jackd -r -d dummy >/dev/null 2>&1 & sleep 2
plugin-hostd -n -p 5555 >plugin-hostd.log 2>&1 & sleep 2
Expand Down
4 changes: 2 additions & 2 deletions tests/sabotage.py
Original file line number Diff line number Diff line change
Expand Up @@ -369,8 +369,8 @@
"permissions:\n contents: read\n", "permissions:\n contents: read\n\nenv:\n OMX_CLAP_HOST_REF: v0.4.0\n",
"no pin anywhere", "nopins"),
("a workflow checks omx-clap-core out again", ".github/workflows/ci.yml",
" - uses: actions/checkout@v4\n\n # the FreeMixer channel: where the BuildRequires Fedora does not carry (omx-clap-host-tests) come from\n - name: Add the FreeMixer channel\n run: dnf config-manager addrepo --setopt=retries=10 --from-repofile=https://freemixer.github.io/rpm/freemixer.repo\n\n # the worker and the fixtures",
" - uses: actions/checkout@v4\n with:\n repository: FreeMixer/omx-clap-core\n\n # the FreeMixer channel: where the BuildRequires Fedora does not carry (omx-clap-host-tests) come from\n - name: Add the FreeMixer channel\n run: dnf config-manager addrepo --setopt=retries=10 --from-repofile=https://freemixer.github.io/rpm/freemixer.repo\n\n # the worker and the fixtures",
" - uses: actions/checkout@v4\n\n # the OpenMixer channel: where the BuildRequires Fedora does not carry (omx-clap-host-tests) come from\n - name: Add the OpenMixer channel\n uses: FreeMixer/.github/.github/actions/add-openmixer@v1\n\n # the worker and the fixtures",
" - uses: actions/checkout@v4\n with:\n repository: FreeMixer/omx-clap-core\n\n # the OpenMixer channel: where the BuildRequires Fedora does not carry (omx-clap-host-tests) come from\n - name: Add the OpenMixer channel\n uses: FreeMixer/.github/.github/actions/add-openmixer@v1\n\n # the worker and the fixtures",
"no pin anywhere", "nopins"),
("lv2_worker_set leaves the adapter's refusal in place", "src/supervisor.c", " lv2_refusals_forget(fwd);\n", "",
"lv2_worker_set_makes_the_adapter_be_asked_again_about_that_plugin_only"),
Expand Down
Loading