diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b68f0cb..b8b29b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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: @@ -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 @@ -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: | @@ -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 @@ -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 @@ -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 @@ -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: diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 969fdc0..bda7cb4 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -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" diff --git a/README.md b/README.md index 12f86e3..94d3162 100644 --- a/README.md +++ b/README.md @@ -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. @@ -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 . +Building from source: see [BUILDING.md](BUILDING.md). More about FreeMixer at . Protocol -------- diff --git a/docs/own-host.md b/docs/own-host.md index 62d50be..0613851 100644 --- a/docs/own-host.md +++ b/docs/own-host.md @@ -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 diff --git a/tests/sabotage.py b/tests/sabotage.py index 4ec9863..71ff56b 100644 --- a/tests/sabotage.py +++ b/tests/sabotage.py @@ -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"),