Establish MOUSE ports collection

This commit is contained in:
Michal S.
2026-07-30 21:57:33 +01:00
commit 6dfbfa1938
5 changed files with 69 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
.PHONY: check
check:
./tests/check-layout.sh
+21
View File
@@ -0,0 +1,21 @@
# MOUSE ports
This repository is the independently versioned source-port collection for
MOUSE. It contains third-party recipes and patches only; the `mouse-port`
implementation, ports contract, base-system manifest, and release integration
belong to `mouse-src`.
Each port lives below `ports/NAME` and follows the recipe contract shipped by
the compatible MOUSE base release. A MOUSE release pins one tested commit from
this repository, while installed systems may move to later compatible ports
revisions without replacing the base system.
The adversarial and demonstration recipes used by the base-system acceptance
suite are deliberately not part of this collection. They live in
`mouse-src/tests/fixtures/ports`.
Run the collection checks with:
```sh
make check
```
+4
View File
@@ -0,0 +1,4 @@
# Infrastructure
Collection-wide generation, lint, and publication tooling belongs here. Base
image assembly and the `mouse-port` implementation remain in `mouse-src`.
+7
View File
@@ -0,0 +1,7 @@
# Ports collection
Each immediate child directory is one port named `[a-z][a-z0-9-]*` and contains
one `port.conf` plus its trusted `build.sh` and any port-owned patches or files.
The collection is intentionally empty until the first real third-party port is
accepted. Test-only recipes do not belong here.
+33
View File
@@ -0,0 +1,33 @@
#!/bin/sh
set -eu
root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
found=0
for directory in "$root"/ports/*; do
[ -d "$directory" ] || continue
[ "${directory##*/}" != README.md ] || continue
found=1
name=${directory##*/}
case "$name" in
""|[!a-z]*|*[!a-z0-9-]*)
printf '%s\n' "invalid port directory name: $name" >&2
exit 1
;;
esac
[ -f "$directory/port.conf" ] || {
printf '%s\n' "missing recipe: ports/$name/port.conf" >&2
exit 1
}
[ -x "$directory/build.sh" ] || {
printf '%s\n' "missing executable build script: ports/$name/build.sh" >&2
exit 1
}
sh -n "$directory/build.sh"
done
if [ "$found" -eq 0 ]; then
printf '%s\n' "ports collection is empty"
else
printf '%s\n' "ports layout check passed"
fi