poky/scripts
Alexander Kanavin c390b2e615 oe-setup-build: add a tool for discovering config templates and setting up builds
This is another piece of the puzzle in setting up builds from nothing
without having to write custom scripts or use external tools.

After layers have been fetched and placed into their respective locations by
oe-setup-layers, one would surely want to proceed to the actual build, and here's how:

1. Without arguments the tool reads available layers
from .oe-layers.json file (written out by oe-setup-layers or a fallback under scripts/),
prints what templates it has found, and asks the user to select one, as seen below.
This will land the user in a shell ready to run bitbake:

=============================================
alex@Zen2:/srv/work/alex$ ./setup-build
Available build configurations:

1. alex-configuration-gadget
This configuration will set up a build for the purposes of supporting gadget.

2. alex-configuration-gizmo
This configuration allows building a gizmo.

3. poky-default
This is the default build configuration for the Poky reference distribution.

Re-run with 'list -v' to see additional information.
Please choose a configuration by its number: 1
Running: TEMPLATECONF=/srv/work/alex/meta-alex/conf/templates/configuration-gadget . /srv/work/alex/poky/oe-init-build-env /srv/work/alex/build-alex-configuration-gadget && /bin/bash
You had no conf/local.conf file. This configuration file has therefore been
created for you from /srv/work/alex/meta-alex/conf/templates/configuration-gadget/local.conf.sample
You may wish to edit it to, for example, select a different MACHINE (target
hardware).

You had no conf/bblayers.conf file. This configuration file has therefore been
created for you from /srv/work/alex/meta-alex/conf/templates/configuration-gadget/bblayers.conf.sample
To add additional metadata layers into your configuration please add entries
to conf/bblayers.conf.

The Yocto Project has extensive documentation about OE including a reference
manual which can be found at:
    https://docs.yoctoproject.org

For more information about OpenEmbedded see the website:
    https://www.openembedded.org/

This configuration will set up a build for the purposes of supporting gadget.
Please refer to meta-alex/README for additional details and available bitbake targets.
==============================================

2. It is also possible to list available configurations without selecting one using
'setup-build list' or to select and setup one non-interactively with 'setup-build setup'.

3. The full set of command line options is:

$ ./setup-build --help
usage: setup-build [-h] [--layerlist LAYERLIST] {list,setup} ...

A script that discovers available build configurations and sets up a build environment based on one of them. Run without arguments to choose one interactively.

positional arguments:
  {list,setup}
    list                List available configurations
    setup               Set up a build environment and open a shell session with it, ready to run builds.

optional arguments:
  -h, --help            show this help message and exit
  --layerlist LAYERLIST
                        Where to look for available layers (as written out by setup-layers script) (default is /srv/work/alex/.oe-layers.json).

$ ./setup-build list --help
usage: setup-build list [-h] [-v]

optional arguments:
  -h, --help  show this help message and exit
  -v          Print detailed information and usage notes for each available build configuration.

$ ./setup-build setup --help
usage: setup-build setup [-h] [-c configuration_name] [-b build_path] [--no-shell]

optional arguments:
  -h, --help            show this help message and exit
  -c configuration_name
                        Use a build configuration configuration_name to set up a build environment (run this script with 'list' to see what is available)
  -b build_path         Set up a build directory in build_path (run this script with 'list -v' to see where it would be by default)
  --no-shell            Create a build directory but do not start a shell session with the build environment from it.

4. There's an an added hint in oe-setup-layers about how to proceed (as it is really not user-friendly
to fetch the layer repos successfully and then exit without a word), and a symlink to the script
from the top level layer checkout directory.

5. The selftest to check layer setup has been adjusted to run a basic check for template
discovery and build setup. The revision of poky to be cloned has been bumped to 4.1,
as that's the first version with a default template in a standard location.

(From OE-Core rev: 1360b64e88cda7dddfb0eca6a64f70c13dafb890)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-19 11:47:53 +00:00
..
contrib scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
cross-intercept native/cross: Add ar wrapper for determinism 2021-11-26 17:01:08 +00:00
esdk-tools scripts/esdk-tools: use a dedicated, static directory for esdk tools 2023-11-05 08:44:06 +00:00
lib devtool: _extract_source: Correct the removal of an old backup directory 2024-02-18 22:02:40 +00:00
native-intercept native/cross: Add ar wrapper for determinism 2021-11-26 17:01:08 +00:00
nativesdk-intercept nativesdk-intercept: Fix bad intercept chgrp/chown logic 2023-09-08 22:59:47 +01:00
postinst-intercepts update_gtk_icon_cache: Fix for GTK4-only builds 2023-12-08 16:58:34 +00:00
pybootchartgui pybootchartgui: also match do_compile and do_configure subtasks 2023-09-09 22:14:41 +01:00
tiny scripts/tiny/ksize: Fix for more recent kernels 2020-05-09 18:57:21 +01:00
.oe-layers.json oe-setup-build: add a tool for discovering config templates and setting up builds 2024-02-19 11:47:53 +00:00
autobuilder-worker-prereq-tests scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
bblock scripts/bblock: add a script to lock/unlock recipes 2023-10-09 15:58:47 +01:00
bitbake-prserv-tool scripts/bitbake-prserv-tool: Fix to work with memres bitbake 2023-01-29 19:24:22 +00:00
buildall-qemu buildall-qemu: automate build testing for qemu MACHINEs 2020-04-24 14:10:08 +01:00
buildhistory-collect-srcrevs buildhistory-collect-srcrevs: Adapt to the new variable override syntax 2021-08-26 22:09:44 +01:00
buildhistory-diff scripts/buildhistory-diff: drop use of distutils 2022-01-04 23:14:05 +00:00
buildstats-diff scripts: fix buildstats diff/summary hard bound to host python3 2023-05-05 11:07:26 +01:00
buildstats-summary scripts: fix buildstats diff/summary hard bound to host python3 2023-05-05 11:07:26 +01:00
combo-layer scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
combo-layer-hook-default.sh scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
combo-layer.conf.example
cp-noerror scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
create-pull-request scripts/create-pull-request: update URLs to git repositories 2023-08-14 12:51:21 +01:00
crosstap scripts: Various typo/grammar/punctuation fixes 2022-03-02 18:43:24 +00:00
devtool devtool: support plugins with plugins 2024-02-02 10:38:28 +00:00
gen-lockedsig-cache scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
gen-site-config meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
git scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
install-buildtools install-buildtools: support buildtools-make-tarball and update to 4.1 2022-10-25 13:42:02 +01:00
multilib_header_wrapper.h multilib_header_wrapper: Drop using __MHWORDSIZE 2020-05-18 06:33:36 +01:00
oe-build-perf-report oe-build-perf-report: Ensure correct data is shown for multiple branch options 2020-10-10 13:37:56 +01:00
oe-build-perf-test scripts/oe-build-perf-test: Use python3 from the environment 2019-12-15 09:10:46 +00:00
oe-buildenv-internal oe-buildenv-internal: update required Python version 2023-08-21 16:15:35 +01:00
oe-check-sstate scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
oe-debuginfod scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-depends-dot oe-depends-dot: improve '-w' behavior 2023-09-02 18:23:05 +01:00
oe-find-native-sysroot scripts/oe-find-native-sysroot: use bitbake-getvar 2023-09-07 07:53:51 +01:00
oe-git-archive meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
oe-git-proxy oe-git-proxy: fix dash "Bad substitution" 2019-09-16 23:02:44 +01:00
oe-gnome-terminal-phonehome scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-pkgdata-browser scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-pkgdata-browser.glade oe-pkgdata-browser: Make the window 1200x900 by default 2020-01-10 21:18:22 +00:00
oe-pkgdata-util scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
oe-publish-sdk scripts/oe-publish-sdk: Disable git gc to avoid build errors 2021-09-23 13:49:11 +01:00
oe-pylint scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-run-native scripts: oe-run-native, fix *-native directories 2021-01-15 13:39:25 +00:00
oe-selftest oe-selftest: Implement console 'keepalive' output 2019-09-06 08:15:45 +01:00
oe-setup-build oe-setup-build: add a tool for discovering config templates and setting up builds 2024-02-19 11:47:53 +00:00
oe-setup-builddir scripts/oe-setup-builddir: add support for configuration summaries 2024-02-19 11:47:53 +00:00
oe-setup-layers oe-setup-build: add a tool for discovering config templates and setting up builds 2024-02-19 11:47:53 +00:00
oe-setup-vscode oe-init-build-env: generate .vscode from template 2024-02-19 11:34:33 +00:00
oe-test meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
oe-time-dd-test.sh scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-trim-schemas scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oepydevshell-internal.py scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
opkg-query-helper.py scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
patchtest patchtest: add stronger indication for failed tests 2024-02-19 11:39:08 +00:00
patchtest-get-branch scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
patchtest-get-series patchtest: update SPDX identifiers 2023-10-17 22:53:30 +01:00
patchtest-send-results patchtest-send-results: add --debug option 2024-02-16 15:14:26 +00:00
patchtest-setup-sharedir patchtest: update SPDX identifiers 2023-10-17 22:53:30 +01:00
patchtest.README patchtest.README: update mailing list 2024-02-06 15:01:16 +00:00
pythondeps scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
README
recipetool meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
relocate_sdk.py relocate_sdk.py: ensure interpreter size error causes relocation to fail 2022-08-08 15:44:21 +01:00
resulttool meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
rootfs_rpm-extract-postinst.awk
rpm2cpio.sh rpm2cpio.sh: update to the last 4.x version 2023-06-21 18:38:25 +01:00
runqemu runqemu: match .rootfs. in addition to -image- for rootfs 2024-01-04 23:47:51 +00:00
runqemu-addptable2image image_types/runqemu-addptable2image: Fix a minor typo 2022-05-15 08:57:15 +01:00
runqemu-export-rootfs qemu-helper: depend on unfs3 and pseudo directly 2022-11-29 10:29:58 +00:00
runqemu-extract-sdk qemu-helper: depend on unfs3 and pseudo directly 2022-11-29 10:29:58 +00:00
runqemu-gen-tapdevs runqemu-gen-tapdevs: remove only our taps 2023-06-24 12:21:48 +01:00
runqemu-ifdown runqemu-ifdown: catch up with ifup 2023-06-28 07:56:34 +01:00
runqemu-ifup runqemu: Fix automated call to runqemu-ifup 2023-06-28 07:56:34 +01:00
runqemu.README scripts/runqemu.README: fix typos and trailing whitespaces 2022-08-31 12:25:44 +01:00
send-error-report meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
send-pull-request meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
sstate-cache-management.py sstate-cache-management: fix regex for 'sigdata' stamp files 2024-02-17 18:19:19 +00:00
sstate-diff-machines.sh scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
sstate-sysroot-cruft.sh scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
sysroot-relativelinks.py scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
task-time scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
test-reexec meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
test-remote-image meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
verify-bashisms scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
wic wic: fix WicError message 2022-06-22 22:40:28 +01:00
yocto_testresults_query.py scripts/yocto_testresults_query: add option to change display limit 2023-10-23 10:49:19 +01:00
yocto-check-layer yocto-check-layer: Allow OE-Core to be tested 2022-12-09 13:18:41 +00:00
yocto-check-layer-wrapper meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00

This directory contains Various useful scripts for working with OE builds