Provided by: kas_4.4-2_all bug

NAME

       kas - a setup tool for bitbake based projects

SYNOPSIS

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

DESCRIPTION

       kas - setup tool for bitbake based project

       This tool provides an easy mechanism to setup bitbake based projects.

       The  OpenEmbedded  tooling  support  starts  at  step 2 with bitbake. The downloading of sources and then
       configuration has to be done by hand. Usually, this is explained in a README.  Instead  kas  is  using  a
       project configuration file and does the download and configuration phase.

       Key features provided by the build tool:

       • clone and checkout bitbake layers

       • create default bitbake settings (machine, arch, ...)

       • launch minimal build environment, reducing risk of host contamination

       • initiate bitbake build process

SUB-COMMANDS

       kas build [-h] [--skip STEP] [--force-checkout] [--update] [-k]
                        [--target TARGET] [-c TASK] [--provenance {true,mode=min,mode=max}]
                        [config]  [extra_bitbake_args  ...]   Checks  out  all necessary repositories and builds
              using bitbake as specified in the configuration file.

       kas checkout [-h] [--skip STEP] [--force-checkout] [--update] [config]
              Checks out all necessary repositories and  sets  up  the  build  directory  as  specified  in  the
              configuration file.

       kas dump [-h] [--skip STEP] [--force-checkout] [--update]
                       [--format {yaml,json}] [--indent INDENT] [--resolve-refs]
                       [--resolve-local] [--resolve-env | --lock] [-i]
                       [config]  Expand  and  dump  the final config to stdout. When resolving branches, this is
              done before patches are applied.

       kas for-all-repos [-h] [--skip STEP] [--force-checkout] [--update] [-E] [-k]
                                [config] command Runs a specified command in all checked out repositories.

       kas shell [-h] [--skip STEP] [--force-checkout] [--update] [-E] [-k]
                        [-c COMMAND]
                        [config] Run a shell in the build environment.

       kas menu [-h] [kconfig]
              Provides a configuration menu and triggers the build of the choices.

PROJECT CONFIGURATION

       The project configuration file describes the build environment and the layers to be used. It is the  main
       input to kas.  For details, see kas-project-config(1)

BUILD ATTESTATION

       Kas supports to generate build attestation. For details, see kas-build-attestation(1).

CREDENTIAL HANDLING

       kas   provides   various   mechanisms   to   inject   credentials  into  the  build.   For  details,  see
       kas-credentials(1).

ENVIRONMENT VARIABLES

       kas uses a number of environment variables to configure its behavior.  The Variables Glossary provides an
       overview, wherein the tuple (C,K,E) denotes the scope of the variable.

   Variable Scope
       kas-container (C)

       The variable is processed or forwarded by the kas-container script.  For some variables, the variable  is
       re-written to the container's directory layout.

       NOTE:
          The  env  section  of  the  project  configuration can be used to make arbitrary environment variables
          available to the build environment. When invoking the build  via  kas-container,  make  sure  to  also
          forward the corresponding environment variables into the container.

       kas (K)

       The  variable  is  processed  by  kas  itself.  Some  variables (e.g. the credentials for the awscli) are
       re-written to configuration files to also support older versions of the tooling.

       build environment (E)

       The variable is exported into the  build  environment.  In  this  environment,  the  bitbake  command  is
       executed.

   Variables Glossary
               ────────────────────────────────────────────────────────────────────────────────────────
                 Environment variables                   Description
               ────────────────────────────────────────────────────────────────────────────────────────
                 KAS_WORK_DIR (C, K)                     The  path  of the kas work directory,
                                                         current   work   directory   is   the
                                                         default.
               ────────────────────────────────────────────────────────────────────────────────────────
                 KAS_BUILD_DIR (C, K)                    The     path     build     directory,
                                                         ${KAS_WORK_DIR}/build is the default.
               ────────────────────────────────────────────────────────────────────────────────────────
                 KAS_REPO_REF_DIR (C, K)                 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   This  overwrites  the  respective setting in
                 KAS_TASK (C, K)                         the configuration file.
               ────────────────────────────────────────────────────────────────────────────────────────
                 KAS_PREMIRRORS (C, K)                   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/"
               ────────────────────────────────────────────────────────────────────────────────────────
                 DISTRO_APT_PREMIRRORS (C)               Specifies alternatives for  apt  URLs.  Just
                                                         like KAS_PREMIRRORS.
               ────────────────────────────────────────────────────────────────────────────────────────
                 KAS_CLONE_DEPTH (C, K)                  Perform   shallow   git   clone/fetch  using
                                                         --depth=N specified by this  variable.  This
                                                         is  useful  in  case  CI  always starts with
                                                         empty work directory and this  directory  is
                                                         always discarded after the CI run.
               ────────────────────────────────────────────────────────────────────────────────────────
                 SSH_PRIVATE_KEY (K)                     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 (K)                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 (C,K,E)                   SSH  authentication socket. Used for cloning
                                                         over SSH (alternative to SSH_PRIVATE_KEY  or
                                                         SSH_PRIVATE_KEY_FILE).
               ────────────────────────────────────────────────────────────────────────────────────────
                 DL_DIR    SSTATE_DIR   SSTATE_MIRRORS   Environment variables that  are  transferred
                 (C,K,E)                                 to the bitbake environment.
               ────────────────────────────────────────────────────────────────────────────────────────
                 TMPDIR (K,E)                            Directory for temporary files.
               ────────────────────────────────────────────────────────────────────────────────────────
                 http_proxy    https_proxy   ftp_proxy   These    variables    define    the    proxy
                 no_proxy (C,K,E)                        configuration bitbake should use.
               ────────────────────────────────────────────────────────────────────────────────────────
                 GIT_PROXY_COMMAND     (E)    NO_PROXY   Set proxy for native git  fetches.  NO_PROXY
                 (C,K,E)                                 is  evaluated by OpenEmbedded's oe-git-proxy
                                                         script.
               ────────────────────────────────────────────────────────────────────────────────────────
                 SHELL (C,K,E)                           The shell to  start  when  using  the  shell
                                                         plugin.
               ────────────────────────────────────────────────────────────────────────────────────────
                 TERM (C,K,E)                            The  terminal  options  used  in  the  shell
                                                         plugin.
               ────────────────────────────────────────────────────────────────────────────────────────
                 AWS_CONFIG_FILE          AWS_ROLE_ARN   Path   to   the   awscli  configuration  and
                 AWS_SHARED_CREDENTIALS_FILE             credentials files that are copied to the kas
                 AWS_WEB_IDENTITY_TOKEN_FILE (K,C)       home dir.
               ────────────────────────────────────────────────────────────────────────────────────────
                 GIT_CREDENTIAL_HELPER                   Allows  to  set  and   configure   the   git
                 GIT_CREDENTIAL_USEHTTPPATH (K,C)        credential  helper  in the .gitconfig of the
                                                         kas user.
               ────────────────────────────────────────────────────────────────────────────────────────
                 GITCONFIG_FILE (K,C)                    Path to a  .gitconfig  file  which  will  be
                                                         copied to the kas home dir as .gitconfig.
               ────────────────────────────────────────────────────────────────────────────────────────
                 NETRC_FILE (K,C)                        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
                 CI_JOB_URL (K)                          .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. The job url is
                                                         added  to  the  provenance  attestation  (if
                                                         enabled).
               ────────────────────────────────────────────────────────────────────────────────────────
                 GITHUB_ACTIONS GITLAB_CI (K)            Environment variables from GitHub actions or
                                                         GitLab CI. If set  to  true,  .gitconfig  is
                                                         automatically  imported.   For  details, see
                                                         GITCONFIG_FILE.
               ────────────────────────────────────────────────────────────────────────────────────────
                 BB_NUMBER_THREADS       PARALLEL_MAKE   Environment   variables   to   control   the
                 (C,K,E)                                 concurrency.
               ┌───────────────────────────────────────┬──────────────────────────────────────────────┐
               │                                       │                                              │
SEE ALSO       │                                       │                                              │
--
KAS            │                                       │                                              │
--
AUTHOR         │                                       │                                              │
--
COPYRIGHT      │                                       │                                              │