118 lines
4.9 KiB
Markdown
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="build-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.
|