Artur Mukhamadiev 62c96b4885 init
2026-08-25 19:00:09 +03:00

118 lines
4.9 KiB
Markdown

---
name: webos-ose-build
description: >-
MANDATORY for Chromium-related webOS OSE BitBake builds, tests, and failure
investigation for Raspberry Pi 4 or qemu targets. Activate before proposing
or executing a container connection, BitBake command, target-specific image
or package rebuild, or diagnosis of container, recipe, task, or deploy
artifact failures. Verify the container environment, target/output, and
active build state; report and stop if a prerequisite fails.
---
# webOS OSE Chromium Build
Use this skill for Chromium-related webOS OSE BitBake builds.
## Pre-launch hard stops
Do not connect to a build environment or launch BitBake until every applicable
check below has passed. If any check fails, report the missing or invalid value
and STOP.
1. Check existing environment variables first. They may also be supplied in an
existing `.env` file:
- `WEBOS_BUILD_HOST` — host that provides the webOS OSE container.
- `WEBOS_BUILD_DIR` — build directory visible inside the container.
- `WEBOS_CONTAINER_SSH_PORT` — container SSH port.
- `WEBOS_BITBAKE_TARGET` — confirmed Chromium-related recipe or image target.
- `WEBOS_BUILD_LOG` — log file for an unattended BitBake run.
Use a set value exactly as supplied. Do not guess an absolute path,
container port, BitBake target, or replacement log path. An unattended run
requires `WEBOS_BUILD_LOG` to be set.
2. Verify that the build host, container port, build directory, and BitBake
target are all known. Establish the expected artifact or output before
starting a build.
3. If C/C++ source or header files changed, run the diagnostic procedure in
`lsp-cli/SKILL.md` for every modified file. Zero diagnostic errors is
required before a build. Report warnings. If diagnostics cannot run or
report any error, STOP.
4. Check for an active BitBake build in the selected container. If one is
running, report it and STOP. Never kill, restart, or replace a running build
without explicit user permission.
The webOS OSE container provides the required older Python and toolchain. Do
not run BitBake from a modern host shell. After the pre-launch checks, enter
the build host and container, then initialize the environment inside it:
```sh
ssh "$WEBOS_BUILD_HOST"
ssh -p "$WEBOS_CONTAINER_SSH_PORT" localhost
cd "$WEBOS_BUILD_DIR"
. oe-init-build-env
```
## Build Chromium-related targets
Run the confirmed target after initializing the environment:
```sh
bitbake "$WEBOS_BITBAKE_TARGET"
bitbake -C compile "$WEBOS_BITBAKE_TARGET" #for incremental build, after some changes in source code
```
Use an iterative task only when the user has confirmed that source-only changes
make it valid; otherwise run the normal target build. Do not override the
build directory's configured machine per command.
## Unattended builds and logs
For a user-authorized new unattended build, start a new log session after the
pre-launch checks have passed. Truncate `WEBOS_BUILD_LOG` with `>` and write a
unique launch marker before starting BitBake. Use `>>` only when continuing
that same already-running build session.
When monitoring, read only output after the current launch marker (or its
recorded byte offset). Do not cite earlier log entries as evidence about the
current build.
```sh
build_session="codex-bitbake-$(date -u +%Y%m%dT%H%M%SZ)"
: > "${WEBOS_BUILD_LOG:?set WEBOS_BUILD_LOG}"
printf '\n=== %s ===\n' "$build_session" >> "$WEBOS_BUILD_LOG"
nohup bitbake "$WEBOS_BITBAKE_TARGET" \
>> "$WEBOS_BUILD_LOG" 2>&1 &
```
## Test Chromium-related artifacts
Unless the user has supplied the test command and target environment, ask how
the Chromium artifact should be tested and STOP. After a successful build,
verify the requested image or package artifact in the configured deploy
directory before attempting deployment or runtime testing.
Use only the target-specific deployment and test procedure confirmed by the
user or Chromium/webOS OSE documentation. Do not assume a board address,
package name, application, or launch command.
## Debug BitBake failures
An unexpected build, configure, or test failure is terminal for the current
turn. Report the command, exit status, and complete preserved failure output or
its log location, then STOP. Do not retry, clean state, or change configuration
until the user gives a new instruction to investigate the failure.
- For Python, compiler, or host-tool failures, confirm that the command runs
inside the webOS OSE container after `oe-init-build-env`.
- For a missing recipe or task, inspect the available layer configuration and
the target's recipe before changing configuration.
- For a source change missing from the build, verify the recipe's configured
source revision and the task inputs before selecting an iterative rebuild.
- For an artifact failure, inspect the target's deploy output and the relevant
task log before proposing a recovery.
- Do not use destructive clean or state-removal tasks unless the user has
authorized their scope.