Command line usage

kas - setup tool for bitbake based project

usage: kas [-h] [--version] [-d] [-l {debug,info,warning,error,critical}]
           {build,checkout,dump,for-all-repos,shell,menu} ...

Positional Arguments

cmd

Possible choices: build, checkout, dump, for-all-repos, shell, menu

sub command help

Named Arguments

--version

show program’s version number and exit

-d, --debug

Enable debug logging (deprecated, use –log-level debug).

-l, --log-level

Possible choices: debug, info, warning, error, critical

Set log level (default: info)

Default: “info”

Sub-commands

build

Checks out all necessary repositories and builds using bitbake as specified in the configuration file.

kas build [-h] [--skip SKIP] [--force-checkout] [--update] [--target TARGET]
          [-c TASK]
          [config] [extra_bitbake_args ...]

Positional Arguments

config

Config file, using .config.yaml in KAS_WORK_DIR if none is specified

extra_bitbake_args

Extra arguments to pass to bitbake (typically requires separation via ‘–‘)

Named Arguments

--skip

Skip build steps

Default: []

--force-checkout

Always checkout the desired commit/branch/tag of each repository, discarding any local changes

Default: False

--update

Pull new upstream changes to the desired branch even if it is already checked out locally

Default: False

--target

Select target to build

-c, --cmd, --task

Select which task should be executed

checkout

Checks out all necessary repositories and sets up the build directory as specified in the configuration file.

kas checkout [-h] [--skip SKIP] [--force-checkout] [--update] [config]

Positional Arguments

config

Config file, using .config.yaml in KAS_WORK_DIR if none is specified

Named Arguments

--skip

Skip build steps

Default: []

--force-checkout

Always checkout the desired commit/branch/tag of each repository, discarding any local changes

Default: False

--update

Pull new upstream changes to the desired branch even if it is already checked out locally

Default: False

dump

Expand and dump the final config to stdout. When resolving branches, this is done before patches are applied.

kas dump [-h] [--skip SKIP] [--force-checkout] [--update]
         [--format {yaml,json}] [--indent INDENT] [--resolve-refs]
         [--resolve-env | --lock] [-i]
         [config]

Positional Arguments

config

Config file, using .config.yaml in KAS_WORK_DIR if none is specified

Named Arguments

--skip

Skip build steps

Default: []

--force-checkout

Always checkout the desired commit/branch/tag of each repository, discarding any local changes

Default: False

--update

Pull new upstream changes to the desired branch even if it is already checked out locally

Default: False

--format

Possible choices: yaml, json

Output format (default: yaml)

Default: “yaml”

--indent

Line indent (# of spaces, default: 4)

Default: 4

--resolve-refs

Replace floating refs with exact SHAs

Default: False

--resolve-env

Set env defaults to captured env value

Default: False

--lock

Create lockfile with exact SHAs

Default: False

-i, --inplace

Update lockfile in-place (requires –lock)

Default: False

for-all-repos

Runs a specified command in all checked out repositories.

kas for-all-repos [-h] [--skip SKIP] [--force-checkout] [--update] [-E]
                  [config] command

Positional Arguments

config

Config file, using .config.yaml in KAS_WORK_DIR if none is specified

command

Command to be executed as a string.

Named Arguments

--skip

Skip build steps

Default: []

--force-checkout

Always checkout the desired commit/branch/tag of each repository, discarding any local changes

Default: False

--update

Pull new upstream changes to the desired branch even if it is already checked out locally

Default: False

-E, --preserve-env

Keep current user environment block

Default: False

shell

Run a shell in the build environment.

kas shell [-h] [--skip SKIP] [--force-checkout] [--update] [-E] [-k]
          [-c COMMAND]
          [config]

Positional Arguments

config

Config file, using .config.yaml in KAS_WORK_DIR if none is specified

Named Arguments

--skip

Skip build steps

Default: []

--force-checkout

Always checkout the desired commit/branch/tag of each repository, discarding any local changes

Default: False

--update

Pull new upstream changes to the desired branch even if it is already checked out locally

Default: False

-E, --preserve-env

Keep current user environment block

Default: False

-k, --keep-config-unchanged

Skip steps that change the configuration

Default: False

-c, --command

Run command

Default: “”

Environment variables

Environment variables

Description

KAS_WORK_DIR

The path of the kas work directory, current work directory is the default.

KAS_BUILD_DIR

The path build directory, ${KAS_WORK_DIR}/build is the default.

KAS_REPO_REF_DIR

The path to the repository reference directory. Repositories in this directory are used as references when cloning. In order for kas to find those repositories, they have to be named in a specific way. The repo URLs are translated like this: “https://github.com/siemens/meta-iot2000.git” resolves to the name “github.com.siemens.meta-iot2000.git”. Repositories that are not found will be cloned below this directory. Multiple instances of kas can simultaneously work on the same directory, as long as the underlying filesystem is POSIX compatible.

KAS_DISTRO KAS_MACHINE KAS_TARGET KAS_TASK

This overwrites the respective setting in the configuration file.

KAS_PREMIRRORS DISTRO_APT_PREMIRRORS

Specifies alternatives for repo URLs. Just like bitbake PREMIRRORS, this variable consists of new-line separated entries. Each entry defines a regular expression to match a URL and, space-separated, its replacement. E.g.: “http://.*.someurl.io/ http://localmirror.net/

SSH_PRIVATE_KEY

Variable containing the private key that should be added to an internal ssh-agent. This key cannot be password protected. This setting is useful for CI build servers. On desktop machines, an ssh-agent running outside the kas environment is more useful.

SSH_PRIVATE_KEY_FILE

Path to the private key file that should be added to an internal ssh-agent. This key cannot be password protected. This setting is useful for CI build servers. On desktop machines, an ssh-agent running outside the kas environment is more useful.

SSH_AUTH_SOCK

SSH authentication socket. Used for cloning over SSH (alternative to SSH_PRIVATE_KEY or SSH_PRIVATE_KEY_FILE).

DL_DIR SSTATE_DIR SSTATE_MIRRORS TMPDIR

Environment variables that are transferred to the bitbake environment.

http_proxy https_proxy ftp_proxy no_proxy

These variables define the proxy configuration bitbake should use.

GIT_PROXY_COMMAND NO_PROXY

Set proxy for native git fetches. NO_PROXY is evaluated by OpenEmbedded’s oe-git-proxy script.

SHELL

The shell to start when using the shell plugin.

TERM

The terminal options used in the shell plugin.

AWS_CONFIG_FILE AWS_SHARED_CREDENTIALS_FILE

Path to the awscli configuration and credentials file that are copied to the kas home dir.

GIT_CREDENTIAL_HELPER GIT_CREDENTIAL_USEHTTPPATH

Allows to set and configure the git credential helper in the .gitconfig of the kas user.

NETRC_FILE

Path to a .netrc file which will be copied to the kas home dir as .netrc.

CI_SERVER_HOST CI_JOB_TOKEN

Environment variables from gitlab CI, if set .netrc is configured to allow fetching from the gitlab instance. An entry will be appended in case NETRC_FILE was given as well. Note that if the file already contains an entry for that host most tools would probably take that first one.

BB_NUMBER_THREADS PARALLEL_MAKE

Environment variables to control the concurrency