diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-09-18 22:11:35 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-10-06 01:10:26 +0300 |
commit | c9f7865a347606a64696048817b0f09d9c3fcd31 (patch) | |
tree | 00db80fae3599061617c0cb052a57302620882ec /poky/documentation/toaster-manual | |
parent | d1a90aa35d35426789d8f4061166a6dd8d27a30e (diff) | |
download | openbmc-c9f7865a347606a64696048817b0f09d9c3fcd31.tar.xz |
poky: subtree update:c67f57c09e..c6bc20857c
Adrian Freihofer (2):
oe-publish-sdk: fix layers init via ssh
oe-publish-sdk: add --keep-orig option
Alexander Kanavin (68):
meta-selftest: correct the virgl test for 5.8 kernels
bison: upgrade 3.6.4 -> 3.7.1
util-linux: upgrade 2.35.2 -> 2.36
python3-numpy: upgrade 1.19.0 -> 1.19.1
python3-setuptools: upgrade 49.3.1 -> 49.6.0
rsync: upgrade 3.2.2 -> 3.2.3
util-linux: merge .inc into .bb
acpica: upgrade 20200528 -> 20200717
asciidoc: upgrade 9.0.1 -> 9.0.2
cryptodev: upgrade 1.10 -> 1.11
diffoscope: upgrade 153 -> 156
epiphany: upgrade 3.36.3 -> 3.36.4
font-alias: upgrade 1.0.3 -> 1.0.4
gtk+3: upgrade 3.24.21 -> 3.24.22
libcheck: upgrade 0.15.0 -> 0.15.2
libinput: upgrade 1.16.0 -> 1.16.1
libpipeline: upgrade 1.5.2 -> 1.5.3
libx11: upgrade 1.6.9 -> 1.6.11
linux-firmware: upgrade 20200619 -> 20200721
man-pages: upgrade 5.07 -> 5.08
mc: upgrade 4.8.24 -> 4.8.25
mesa: upgrade 20.1.4 -> 20.1.5
piglit: upgrade to latest revision
re2c: upgrade 2.0 -> 2.0.2
sysstat: upgrade 12.2.2 -> 12.4.0
vala: upgrade 0.48.7 -> 0.48.9
bootchart2: update 0.14.8 -> 0.14.9
harfbuzz: convert to meson, enable gobject introspection
pango: update 1.44.7 -> 1.46.0
boost: update 1.73.0 -> 1.74.0
xev: update 1.2.3 -> 1.2.4
wpebackend-fdo: update 1.6.1 -> 1.7.1
gpgme: update 1.13.1 -> 1.14.0
libpsl: update 0.21.0 -> 0.21.1.
gettext: update 0.20.2 -> 0.21
cmake: update 3.17.3 -> 3.18.1
linux-firmware: update 20200721 -> 20200817
meson: update 0.55.0 -> 0.55.1
systemd-boot: bump version to 246.2
json-glib: inherit upstream-version-is-even
packagegroup-core-device-devel: remove
oeqa/x32lib: rework to use readelf from the host
oeqa/multilib: rework to use readelf from the host
oeqa/multilib: un-skip the connman test
poky.conf: do not install packagegroup-core-device-devel into qemu images
glib-2.0: update 2.64.4 -> 2.64.5
cmake: upgrade 3.18.1 -> 3.18.2
libxcrypt: upgrade 4.4.16 -> 4.4.17
debianutils: upgrade 4.11 -> 4.11.1
enchant2: upgrade 2.2.8 -> 2.2.9
harfbuzz: upgrade 2.7.1 -> 2.7.2
libmpc: upgrade 1.1.0 -> 1.2.0
librepo: upgrade 1.12.0 -> 1.12.1
libuv: upgrade 1.38.1 -> 1.39.0
msmtp: upgrade 1.8.11 -> 1.8.12
ninja: upgrade 1.10.0 -> 1.10.1
p11-kit: upgrade 0.23.20 -> 0.23.21
pango: upgrade 1.46.0 -> 1.46.1
re2c: upgrade 2.0.2 -> 2.0.3
resolvconf: upgrade 1.82 -> 1.83
stress-ng: upgrade 0.11.18 -> 0.11.19
gnu-config: update to latest revision
nasm: update 2.15.03 -> 2.15.05
libva-utils: fix upstream version check
gnupg: update 2.2.21 -> 2.2.22
libx11: update 1.6.11 -> 1.6.12
mesa: update 20.1.5 -> 20.1.6
xserver-xorg: update 1.20.8 -> 1.20.9
Andrey Zhizhikin (1):
insane: check for missing update-alternatives inherit
Anibal Limon (1):
recipes-kernel: linux-firmware add qcom-venus-{5.2,5.4} packages
Aníbal Limón (1):
recipes-graphics/xorg-xserver: Add patch to fix segfault when probe
Armin Kuster (2):
bind: update to 9.11.22 ESV
core-image-sato: qemumips use 512 mem
Bruce Ashfield (30):
linux-yocto/5.4: update to v5.4.59
linux-yocto/5.8: update to v5.8.2
yocto-bsp: update to v5.4.56
yocto-bsp: update to v5.4.58
qemu: bump default reference kernel to v5.8
linux-yocto/5.8: fix perf and virtio_scsi warnings
linux-yocto-rt/5.8: fix lttng-modules build
linux-yocto/5.8: selftests/bpf: Prevent runqslower from racing on building bpftool
linux-yocto/5.8: disable CONFIG_NFS_DISABLE_UDP_SUPPORT
poky: set preferred version for linux-yocto to be v5.8
poky-tiny: set preferred version to 5.8
poky: add preferred version for linux-yocto-rt
linux-yocto/5.8: update to v5.8.3
linux-yocto/5.4: update to v5.4.60
kernel: config cleanups for 5.8+
linux-yocto/5.4: update to v5.4.61
linux-yocto/5.8: update to v5.8.4
linux-yocto/5.8: disable IKHEADERS in default builds
kernel-yocto: allow promotion of configuration warnings to errors
kernel-yocto: checksum all modifications to available kernel fragments directories
lttng-modules/devupstream: bump to latest 2.12 commits
linux-yocto-dev: bump to v5.9+
linux-yocto/5.8: update to v5.8.5
kernel-devsrc: account for HOSTCC and HOSTCXX
linux-yocto/config: netfilter: Enable nat for ipv4 and ipv6
linux-yocto/5.8: update to v5.8.8
linux-yocto/5.4: update to v5.4.64
linux-yocto/config: configuration warning cleanup
linux-yocto/5.8: update to v5.8.9
linux-yocto/5.4: update to v5.4.65
Changhyeok Bae (2):
iw: upgrade 5.4 -> 5.8
iputils: upgrade s20190709 -> s20200821
Chris Laplante (12):
bitbake: compat.py: remove file since it no longer actually implements anything
bitbake: COW: formatting
bitbake: COW: migrate test suite into tests/cow
cve-update-db-native: add progress handler
cve-check/cve-update-db-native: use lockfile to fix usage under multiconfig
cve-update-db-native: use context manager for cve_f
cve-check: avoid FileNotFoundError if no do_cve_check task has run
bitbake: utils: process_profilelog: use context manager
bitbake: utils: fix UnboundLocalError when _print_exception raises
cve-update-db-native: be less magical about checking whether the cve-check class is enabled
cve-update-db-native: move -journal checking into do_fetch
cve-update-db-native: remove unused variable
Christophe GUIBOUT (1):
initramfs-framework: support kernel cmdline with double quotes
Denys Dmytriyenko (2):
weston: upgrade 8.0.0 -> 9.0.0
cryptodev: bump 1 commit past 1.11 to fix 5.9-rc1+
Diego Sueiro (2):
license_image.bbclass: Create symlink to the image license manifest dir
license_image.bbclass: Fix symlink to the image license manifest dir creation
Douglas Royds (1):
tcmode-default: Drop gcc-cross-initial, gcc-crosssdk-initial references
Frazer Clews (1):
bitbake: lib: fix most undefined code picked up by pylint
Geoff Parker (1):
systemd-serialgetty: Replace sed quoting using ' with " to allow var expansion
Jacob Kroon (1):
gcc10: Don't default back to -fcommon
Jean-Francois Dagenais (1):
bitbake: siggen: clean_basepath: remove recipe full path when virtual:xyz present
Jens Rehsack (1):
lttng-modules: backport patches from 2.12.x to fix 5.4.64+ and 5.8.9+ builds
Joe Slater (1):
pseudo: fix renaming to self
Jon Mason (4):
cortex-m0plus.inc: change file permissions
tune-cortexa55.inc: clean-up ARMv8.2a uses
tune-cortexa57-cortexa53.inc: add CRC and set march
tune-cortexa*: Cleanups
Joshua Watt (8):
wic: Add 512 Byte alignment to --offset
oeqa: runtime_tests: Extra GPG debugging
oeqa: sdk: Capture stderr output
oeqa: reproducible: Fix test not producing diffs
diffoscope: upgrade 156 -> 158
bitbake: bitbake: Add parsing torture test
bitbake: cooker: Block SIGINT in worker processes
sphinx: dev-manual: Clarify that virtual providers do not apply to runtime dependencies
Kai Kang (1):
dhcpcd: 9.1.4 -> 9.2.0
Kevin Hao (1):
meta-yocto-bsp: Bump to the v5.8 kernel
Khairul Rohaizzat Jamaluddin (1):
wic/bootimg-efi: IMAGE_EFI_BOOT_FILES variable added to separate bootimg-efi and bootimg-partition
Khem Raj (24):
gcc-cross-canadian: Install gcc/g++ wrappers for musl
uninative: Upgrade to 2.9
packagegroup-core-tools-profile: Disable lttng-modules for riscv64
lttng-modules: Disable on riscv64
kexec-tools: Fix build with -fno-common on ppc
lttng-tools: Do not build for riscv64
util-linux: Allow update alternatives for additional apps
lttng-tools: lttng-ust works on riscv64
json-glib: Backport a build fix with clang
rpcbind: Use update-alternatives for rpcinfo
go: Upgrade to 1.15 major release
weston-init: Redefine weston service and add socket activation option
musl: Upgrade to latest master
libucontext: Recognise riscv32 architecture
linuxloader.bbclass: Define riscv32 ldso for musl
populate_sdk_ext: Do not assume local.conf will always exist
weston: plane_add_prop() calls break musl atomic modesetting
weston-init: Enable RDP screen share
weston-init: Do not use fbdev backend
weston-init: Select drm/fbdev backends for qemu machines
oeqa/weston: Fix tests to run with systemd
core-image-weston: Bump qemu memory to 512M
go: Update to 1.15.2 minor release
bind: Inherit update-alternatives
Mark Hatle (6):
package_tar.bbclass: Sync to the other package_* classes
kernel.bbclass: Remove do_install[prefunc] no longer needed
buildhistory.bbclass: Rework to use read_subpackage_metadata
kernel.bbclass: Move away from calling package_get_auto_pr
package.bbclass: hash equivalency and pr service
bitbake: process.py: Handle SystemExit exception to eliminate backtrace
Mark Morton (1):
sphinx: test-manual code block, link, and format update
Martin Jansa (7):
devtool: expand SRC_URI when guessing recipe update mode
image-artifact-names: introduce new bbclass and move some variables into it
kernel.bbclass: use bash variables like imageType, base_name without {}
kernel.bbclass: eliminate (initramfs_)symlink_name variables
kernel.bbclass: use camelCase notation for bash variables in do_deploy
*-initramfs: don't use .rootfs IMAGE_NAME_SUFFIX
bitbake.conf: use ${TCMODE}-${TCLIBC} directory for CACHE
Matt Madison (1):
image.bbclass: fix REPRODUCIBLE_TIMESTAMP_ROOTFS reference
Michael Gloff (2):
sysvinit rc: Use PSPLASH_FIFO_DIR for progress fifo
sysvinit: Remove ${B} assignment
Michael Tretter (1):
devtool: deploy-target: Fix size calculation for hard links
Ming Liu (2):
systemd: split systemd specific udev rules into its own package
libubootenv: inherit uboot-config
Mingli Yu (3):
qemu: always define unknown_lock_type
qemu: override DEBUG_BUILD
bison: remove the parallel build patch
Naveen Saini (1):
lib/oe/recipeutils.py: add support for BBFILES_DYNAMIC
Nicolas Dechesne (73):
linux-libc-headers: kernel headers are installed in STAGING_KERNEL_BUILDDIR
bitbake: sphinx: add initial build infrastructure
bitbake: sphinx: initial sphinx support
bitbake: sphinx: bitbake-user-manual: use builtin sphinx glossary
bitbake: sphinx: switch to readthedocs theme
bitbake: sphinx: override theme CSS
bitbake: sphinx: fixup for links
bitbake: sphinx: fix links inside notes
bitbake: sphinx: fixes all remaining warnings
bitbake: sphinx: Makefile.sphinx: add clean and publish targets
bitbake: sphinx: tweak html output a bit
bitbake: sphinx: add SPDX headers
bitbake: sphinx: index: move the boilerplate at the end of the page
bitbake: sphinx: conf: enable extlinks extension
bitbake: sphinx: add releases page
bitbake: sphinx: bitbake-user-manual: insert additional blank line after title
bitbake: sphinx: last manual round of fixes/improvements
bitbake: sphinx: update style for important, caution and warnings
bitbake: sphinx: remove leading '/'
bitbake: sphinx: theme_override: properly set font for verbatim text
bitbake: bitbake-user-manual: fix bad links
sphinx: add initial build infrastructure
sphinx: initial sphinx support
sphinx: ref-variables: use builtin sphinx glossary
sphinx: overview-manual: add figures
sphinx: switch to readthedocs theme
sphinx: Add SPDX license headers
sphinx: add CSS theme override
sphinx: bsp-guide: add figures
sphinx: add Yocto project logo
sphinx: conf: update copyright
sphinx: conf: add substitutions/global variables
sphinx: add boilerplate file
sphinx: add boilerplate to manuals
sphinx: ref-manual: add revision history table
sphinx: add a general index
sphinx: conf.py: enable sphinx.ext.autosectionlabel
sphinx: ref-manual: use builtin glossary for the Terms section
sphinx: fix internal links
sphinx: ref-manual: fix typo
sphinx: fix custom term links
sphinx: manual updates for some links
sphinx: dev-manual add figures
sphinx: kernel-dev: add figures
sphinx: profile-manual: add figures
sphinx: fix up bold text for informalexample container
sphinx: ref-manual: add figures
sphinx: sdk-manual: add figures
sphinx: test-manual: add figures
sphinx: toaster-manual: add figures
sphinx: add links for Yocto project website
sphinx: fix links when the link text should be displayed
sphinx: add links to terms in the BitBake glossary
sphinx: add links to section in the Bitbake manual
sphinx: setup extlink for docs.yoctoproject.org
sphinx: enable intersphinx extension
sphinx: insert blank below between title and toc
sphinx: fix up terms related to kernel-fitimage
sphinx: conf: a few rendering tweaks
sphinx: makefile: add publish target
sphinx: conf: include CSS/JS files, the proper way
sphinx: convert 'what I wish I'd known'
sphinx: convert 'transitioning to a custom environment'
sphinx: ref-manual: fix heading for oe-init-build-env
sphinx: brief-yoctoprojectqs: fix up all remaining rendering issues
sphinx: Makefile.sphinx improvements
sphinx: convert bsp-guide
sphinx: remove leading '/'
sphinx: update style for important, caution and warnings
sphinx: profile-manual: convert profile-manual
sphinx: theme_override: properly set font for verbatim text
sphinx: theme_override: add tying-it-together admonition
sphinx: conf: exclude adt-manual/*.rst
Oleksandr Kravchuk (1):
ell: update to 0.33
Ovidiu Panait (1):
libxml2: Fix CVE-2020-24977
Peter A. Bigot (2):
bluez5: fix builds that require ell support
timezone: include leap second data in tzdata-core
Peter Bergin (1):
systemd: avoid failing if no udev rules provided
Pierre-Jean Texier (2):
libubootenv: upgrade 0.3 -> 0.3.1
diffoscope: upgrade 158 -> 160
Quentin Schulz (16):
sphinx: brief-yoctoprojectqs: remove redundant welcome
sphinx: brief-yoctoprojectqs: fix ambiguous note for cyclone5 example
sphinx: brief-yoctoprojectqs: add missing boilerplate
sphinx: overview-manual: add link to AUH how-to section
sphinx: overview-manual: fix bitbake basic explanation
sphinx: brief-yoctoprojectqs: add note on branch consistency between layers
sphinx: what-i-wish-id-known: update "don't be fooled by doc search results"
sphinx: overview-manual: remove highlight in bold section
sphinx: replace special quotes with single and double quotes
sphinx: fix incorrect indentations
sphinx: brief-yoctoprojectqs: put other distros note after Ubuntu-specific packages
sphinx: fix a few typos or missing/too many words
sphinx: "highlight" some variables, tasks or files
sphinx: fix or add missing links and remove mention of Eclipse workflow
ref-manual: examples: hello-autotools: upgrade to 2.10
ref-manual: examples: libxpm: add relative path to .inc
Rahul Kumar (1):
systemd-serialgetty: Fix sed expression quoting
Rasmus Villemoes (1):
kernel.bbclass: run do_symlink_kernsrc before do_patch
Richard Purdie (74):
nativesdk-sdk-provides-dummy: Add /bin/sh
bitbake: fetch2/wget: Remove buffering parameter
bitbake: cooker: Ensure parse_quit thread is closed down
bitbake: cooker: Explictly shut down the sync thread
bitbake: fetch2: Drop cups.org from wget status checks
bitbake: build/msg: Cleanup verbose option handling
bitbake: cooker/cookerdata/main: Improve loglevel handling
bitbake: cookerdata: Ensure UI options are updated to the server
bitbake: cooker/cookerdata: Ensure UI event log is updated from commandline
bitbake: cooker: Defer configuration init to after UI connection
bitbake: server/process: Move the socket code to server process only
bitbake: main/server/process: Drop configuration object passing
bitbake: cooker: Ensure BB_ORIGENV is updated by changes to configuration.env
bitbake: server/process: Log extra threads at exit
bitbake: server/process: Add bitbake-server and exec() a new server process
bitbake: runqueue: Don't use sys.argv
bitbake: cooker: Ensure cooker's enviroment is updated on updateConfig
connman-gnome/matchbox-desktop: Remove file:// globbing
selftest/recipetool: Drop globbing SRC_URI test, no longer supported
local.conf.sample: Document memory resident bitbake
bitbake: fetch2: Drop globbing supprt in file:// SRC_URIs
bitbake: server/process: Use sys.executable for bitbake-server
bitbake: process: Avoid bb.utils.timeout
bitbake: utils: Drop broken timeout function
bitbake: server/process: Fix typo in code causing tracebacks
oeqa/selftest: Apply patch to fix cpio build with -fno-common
runqemu: Show an error for conflicting graphics options
lttng: Move platform logic to dedicated inc file
patchelf: upgrade 0.11 -> 0.12
build-appliance/packagegroup-core-base-utils: Replace dhcp-client/dhcp-server with dhcpcd/kea
selftest/prservice: Improve test failure message
iputils: Adapt ${PN}-tftpd package dependency to PACKAGECONFIG
bitbake: process/knotty: Improve early exception handling
bitbake: cooker/cookerdata: Use BBHandledException, not sys.exit()
bitbake: cookerdata: Fix exception raise statements
bitbake: process: Avoid printing binary strings for leftover processes
bitbake: server/process: Ensure logging is flushed
bitbake: server/process: Don't show tracebacks if the lockfile is removed
bitbake: cooker: Ensure parser replacement calls parser final_cleanup
bitbake: cooker: Assign a name to the sync thread to aid debugging
bitbake: server/process: Ensure we don't keep looping if some other server is started
bitbake: server/process: Prefix the log data with pid/time information
bitbake: server/process: Note when commands complete in logs
bitbake: cooker: Ensure parser is cleaned up
runqemu: Add a hook to allow it to renice
bitbake: cooker: Avoid parser deadlocks
bitbake: cooker: Ensure parser worker signal handlers are default
selftest/signing: Ensure build path relocation is safe
oeqa/concurrencytest: Improve builddir path manipulations
bitbake: cooker/command: Fix disconnection handling
bitbake: tinfoil: Ensure sockets don't leak even when exceptions occur
bitbake: tests/fetch: Move away from problematic freedesktop.org urls
bitbake: sphinx: Enhance the sphinx experience/nagivation with:
bitbake: sphinx: theme_override: Use bold for emphasis text
Revert "qemu: always define unknown_lock_type"
Revert "core-image-sato: qemumips use 512 mem"
sphinx: Organize top level docs
sphinx: releases.rst: Add index/links to docs for previous releases
sphinx: boilerplate.rst: Drop versions notes as we have better navigation now
sphinx: boilerplate.rst: Sphinx puts the copyright elsewhere
sphinx: history: Move revision history to its own section
sphinx: manuals: Move boilerplate after toctree
sphinx: Add support for multiple docs version
sphinx: index.rst: Fix links
sphinx: ref-system-requirements: Improve formatting of the notes sections, merging them
sphinx: ref-manual links fixes and many other cleanups to import
sphinx: dev-manual: Various URL, code block and other fixes to imported data
sphinx: sdk-manual: Various URL, code block and other fixes to imported data
sphinx: kernel-dev: Various URL, code block and other fixes to imported data
sphinx: theme_override: Use bold for emphasis text
sphinx: ref-tasks: Add populate_sdk_ext task definition
sphinx: ref-manual/migration: Split each release into its own file
sphinx: overview-manual: Various URL, code block and other fixes to imported data
build-appliance-image: Update to master head revision
Robert Yang (3):
bitbake: cooker.py: Save prioritized BBFILES to BBFILES_PRIORITIZED
bitbake: utils.py: get_file_layer(): Exit the loop when file is matched
bitbake: utils.py: get_file_layer(): Improve performance
Ross Burton (25):
package.bbclass: explode the RPROVIDES so we don't think the versions are provides
elfutils: silence a new QA warning
insane: improve gnu-hash-style warning
gdk-pixbuf: add tests PACKAGECONFIG
debianutils: change SRC_URI to use snapshot.debian.org
insane: only load real files as ELF
autoconf: consolidate SRC_URI
autoconf: consolidate DEPENDS
kea: no need to depend on kea-native
kea: don't use PACKAGECONFIG inappropriately
kea: bump to 1.7.10
help2man: rewrite recipe
local.conf.sample.extended: remove help2man reference
curl: add vendors to CVE_PRODUCT to exclude false positives
harfbuzz: update patch status
harfbuzz: fix a build race around hb-version.h
cmake: whitelist CVE-2016-10642
ncurses: remove config.cache
qemu: fix CVE-2020-14364
cve-update-db-native: remove unused import
cve-update-db-native: add more logging when fetching
cve-update-db-native: use fetch task
alsa-plugins: improve .la removal
sato-screenshot: improve .la removal
buildhistory-diff: use BUILDDIR to know where buildhistory is
Saul Wold (1):
gnupg: uprev 2.2.22 -> 2.2.23
Stacy Gaikovaia (2):
bison: uprev from 3.7.1 to 3.7.2
valgrind: fix memcheck vgtests remove fullpath-after flags
Steve Sakoman (1):
xinput-calibrator: change SRC_URI to branch with libinput support
Sumit Garg (1):
insane: fix gnu-hash-style check
TeohJayShen (1):
oeqa/runtime: add test for matchbox-terminal
Tim Orling (1):
sphinx: toaster-manual: fix vars, links, code blocks
Vijai Kumar K (2):
image_types_wic: Add ASSUME_PROVIDED to WICVARS
wic: misc: Add /bin to the list of searchpaths
Yanfei Xu (1):
kernel-yocto: only replace leading -I in include paths
Yi Zhao (1):
glib-networking: add ptest
Zhixiong Chi (1):
gnutls: CVE-2020-24659
akuster (8):
log4cplus: move meta-oe pkg to core
kea: Move from meta-networking
maintainers.inc: Add me as kea & log4plus maintainer.
dhcpcd: Move from meta-network as OE-Core needs a client
maintainers.inc: Add me as dhcpcd maintainer
dhcp: remove from core
bind: Add 9.16.x
bind: 9.11 remove
hongxu (1):
sysstat: fix installed-vs-shipped QA Issue in systemd
zangrc (4):
libcap:upgrade 2.42 -> 2.43
libcap-ng:upgrade 0.7.10 -> 0.7.11
libgpg-error:upgrade 1.38 -> 1.39
at-spi2-core:upgrade 2.36.0 -> 2.36.1
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I5542f5eea751a2641342e945725fd687cd74bebe
Diffstat (limited to 'poky/documentation/toaster-manual')
7 files changed, 1546 insertions, 6 deletions
diff --git a/poky/documentation/toaster-manual/history.rst b/poky/documentation/toaster-manual/history.rst new file mode 100644 index 000000000..027b343d0 --- /dev/null +++ b/poky/documentation/toaster-manual/history.rst @@ -0,0 +1,46 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +*********************** +Manual Revision History +*********************** + +.. list-table:: + :widths: 10 15 40 + :header-rows: 1 + + * - Revision + - Date + - Note + * - 1.8 + - April 2015 + - The initial document released with the Yocto Project 1.8 Release + * - 2.0 + - October 2015 + - Released with the Yocto Project 2.0 Release. + * - 2.1 + - April 2016 + - Released with the Yocto Project 2.1 Release. + * - 2.2 + - October 2016 + - Released with the Yocto Project 2.2 Release. + * - 2.3 + - May 2017 + - Released with the Yocto Project 2.3 Release. + * - 2.4 + - October 2017 + - Released with the Yocto Project 2.4 Release. + * - 2.5 + - May 2018 + - Released with the Yocto Project 2.5 Release. + * - 2.6 + - November 2018 + - Released with the Yocto Project 2.6 Release. + * - 2.7 + - May 2019 + - Released with the Yocto Project 2.7 Release. + * - 3.0 + - October 2019 + - Released with the Yocto Project 3.0 Release. + * - 3.1 + - April 2020 + - Released with the Yocto Project 3.1 Release. diff --git a/poky/documentation/toaster-manual/toaster-manual-intro.rst b/poky/documentation/toaster-manual/toaster-manual-intro.rst new file mode 100644 index 000000000..0b7cd41c8 --- /dev/null +++ b/poky/documentation/toaster-manual/toaster-manual-intro.rst @@ -0,0 +1,105 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +************ +Introduction +************ + +Toaster is a web interface to the Yocto Project's +:term:`OpenEmbedded Build System`. The interface +enables you to configure and run your builds. Information about builds +is collected and stored in a database. You can use Toaster to configure +and start builds on multiple remote build servers. + +.. _intro-features: + +Toaster Features +================ + +Toaster allows you to configure and run builds, and it provides +extensive information about the build process. + +- *Configure and Run Builds:* You can use the Toaster web interface to + configure and start your builds. Builds started using the Toaster web + interface are organized into projects. When you create a project, you + are asked to select a release, or version of the build system you + want to use for the project builds. As shipped, Toaster supports + Yocto Project releases 1.8 and beyond. With the Toaster web + interface, you can: + + - Browse layers listed in the various + :ref:`layer sources <toaster-manual/toaster-manual-reference:layer source>` + that are available in your project (e.g. the OpenEmbedded Layer Index at + http://layers.openembedded.org/layerindex/). + + - Browse images, recipes, and machines provided by those layers. + + - Import your own layers for building. + + - Add and remove layers from your configuration. + + - Set configuration variables. + + - Select a target or multiple targets to build. + + - Start your builds. + + Toaster also allows you to configure and run your builds from the + command line, and switch between the command line and the web + interface at any time. Builds started from the command line appear + within a special Toaster project called "Command line builds". + +- *Information About the Build Process:* Toaster also records extensive + information about your builds. Toaster collects data for builds you + start from the web interface and from the command line as long as + Toaster is running. + + .. note:: + + You must start Toaster before the build or it will not collect + build data. + + With Toaster you can: + + - See what was built (recipes and packages) and what packages were + installed into your final image. + + - Browse the directory structure of your image. + + - See the value of all variables in your build configuration, and + which files set each value. + + - Examine error, warning, and trace messages to aid in debugging. + + - See information about the BitBake tasks executed and reused during + your build, including those that used shared state. + + - See dependency relationships between recipes, packages, and tasks. + + - See performance information such as build time, task time, CPU + usage, and disk I/O. + +For an overview of Toaster shipped with the Yocto Project &DISTRO; +Release, see the "`Toaster - Yocto Project +2.2 <https://youtu.be/BlXdOYLgPxA>`__" video. + +.. _toaster-installation-options: + +Installation Options +==================== + +You can set Toaster up to run as a local instance or as a shared hosted +service. + +When Toaster is set up as a local instance, all the components reside on +a single build host. Fundamentally, a local instance of Toaster is +suited for a single user developing on a single build host. + +.. image:: figures/simple-configuration.png + :align: center + +Toaster as a hosted service is suited for multiple users developing +across several build hosts. When Toaster is set up as a hosted service, +its components can be spread across several machines: + +.. image:: figures/hosted-service.png + :align: center diff --git a/poky/documentation/toaster-manual/toaster-manual-reference.rst b/poky/documentation/toaster-manual/toaster-manual-reference.rst new file mode 100644 index 000000000..e95536e05 --- /dev/null +++ b/poky/documentation/toaster-manual/toaster-manual-reference.rst @@ -0,0 +1,662 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +********************** +Concepts and Reference +********************** + +In order to configure and use Toaster, you should understand some +concepts and have some basic command reference material available. This +final chapter provides conceptual information on layer sources, +releases, and JSON configuration files. Also provided is a quick look at +some useful ``manage.py`` commands that are Toaster-specific. +Information on ``manage.py`` commands does exist across the Web and the +information in this manual by no means attempts to provide a command +comprehensive reference. + +Layer Source +============ + +In general, a "layer source" is a source of information about existing +layers. In particular, we are concerned with layers that you can use +with the Yocto Project and Toaster. This chapter describes a particular +type of layer source called a "layer index." + +A layer index is a web application that contains information about a set +of custom layers. A good example of an existing layer index is the +OpenEmbedded Layer Index. A public instance of this layer index exists +at http://layers.openembedded.org. You can find the code for this +layer index's web application at +http://git.yoctoproject.org/cgit/cgit.cgi/layerindex-web/. + +When you tie a layer source into Toaster, it can query the layer source +through a +`REST <http://en.wikipedia.org/wiki/Representational_state_transfer>`__ +API, store the information about the layers in the Toaster database, and +then show the information to users. Users are then able to view that +information and build layers from Toaster itself without worrying about +cloning or editing the BitBake layers configuration file +``bblayers.conf``. + +Tying a layer source into Toaster is convenient when you have many +custom layers that need to be built on a regular basis by a community of +developers. In fact, Toaster comes pre-configured with the OpenEmbedded +Metadata Index. + +.. note:: + + You do not have to use a layer source to use Toaster. Tying into a + layer source is optional. + +.. _layer-source-using-with-toaster: + +Setting Up and Using a Layer Source +----------------------------------- + +To use your own layer source, you need to set up the layer source and +then tie it into Toaster. This section describes how to tie into a layer +index in a manner similar to the way Toaster ties into the OpenEmbedded +Metadata Index. + +Understanding Your Layers +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The obvious first step for using a layer index is to have several custom +layers that developers build and access using the Yocto Project on a +regular basis. This set of layers needs to exist and you need to be +familiar with where they reside. You will need that information when you +set up the code for the web application that "hooks" into your set of +layers. + +For general information on layers, see the +":ref:`overview-manual/overview-manual-yp-intro:the yocto project layer model`" +section in the Yocto Project Overview and Concepts Manual. For information on how +to create layers, see the ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`" +section in the Yocto Project Development Tasks Manual. + +.. _configuring-toaster-to-hook-into-your-layer-source: + +Configuring Toaster to Hook Into Your Layer Index +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you want Toaster to use your layer index, you must host the web +application in a server to which Toaster can connect. You also need to +give Toaster the information about your layer index. In other words, you +have to configure Toaster to use your layer index. This section +describes two methods by which you can configure and use your layer +index. + +In the previous section, the code for the OpenEmbedded Metadata Index +(i.e. http://layers.openembedded.org) was referenced. You can use +this code, which is at +http://git.yoctoproject.org/cgit/cgit.cgi/layerindex-web/, as a +base to create your own layer index. + +Use the Administration Interface +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Access the administration interface through a browser by entering the +URL of your Toaster instance and adding "``/admin``" to the end of the +URL. As an example, if you are running Toaster locally, use the +following URL:: + + http://127.0.0.1:8000/admin + +The administration interface has a "Layer sources" section that includes +an "Add layer source" button. Click that button and provide the required +information. Make sure you select "layerindex" as the layer source type. + +Use the Fixture Feature +^^^^^^^^^^^^^^^^^^^^^^^ + +The Django fixture feature overrides the default layer server when you +use it to specify a custom URL. To use the fixture feature, create (or +edit) the file ``bitbake/lib/toaster.orm/fixtures/custom.xml``, and then +set the following Toaster setting to your custom URL: + +.. code-block:: xml + + <?xml version="1.0" ?> + <django-objects version="1.0"> + <object model="orm.toastersetting" pk="100"> + <field name="name" type="CharField">CUSTOM_LAYERINDEX_SERVER</field> + <field name="value" type="CharField">https://layers.my_organization.org/layerindex/branch/master/layers/</field> + </object> + <django-objects> + +When you start Toaster for the first time, or +if you delete the file ``toaster.sqlite`` and restart, the database will +populate cleanly from this layer index server. + +Once the information has been updated, verify the new layer information +is available by using the Toaster web interface. To do that, visit the +"All compatible layers" page inside a Toaster project. The layers from +your layer source should be listed there. + +If you change the information in your layer index server, refresh the +Toaster database by running the following command: + +.. code-block:: shell + + $ bitbake/lib/toaster/manage.py lsupdates + + +If Toaster can reach the API URL, you should see a message telling you that +Toaster is updating the layer source information. + +.. _toaster-releases: + +Releases +======== + +When you create a Toaster project using the web interface, you are asked +to choose a "Release." In the context of Toaster, the term "Release" +refers to a set of layers and a BitBake version the OpenEmbedded build +system uses to build something. As shipped, Toaster is pre-configured +with releases that correspond to Yocto Project release branches. +However, you can modify, delete, and create new releases according to +your needs. This section provides some background information on +releases. + +.. _toaster-releases-supported: + +Pre-Configured Releases +----------------------- + +As shipped, Toaster is configured to use a specific set of releases. Of +course, you can always configure Toaster to use any release. For +example, you might want your project to build against a specific commit +of any of the "out-of-the-box" releases. Or, you might want your project +to build against different revisions of OpenEmbedded and BitBake. + +As shipped, Toaster is configured to work with the following releases: + +- *Yocto Project &DISTRO; "&DISTRO_NAME;" or OpenEmbedded "&DISTRO_NAME;":* + This release causes your Toaster projects to build against the head + of the &DISTRO_NAME_NO_CAP; branch at + https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=&DISTRO_NAME_NO_CAP; or + http://git.openembedded.org/openembedded-core/commit/?h=&DISTRO_NAME_NO_CAP;. + +- *Yocto Project "Master" or OpenEmbedded "Master":* This release + causes your Toaster Projects to build against the head of the master + branch, which is where active development takes place, at + https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/ or + http://git.openembedded.org/openembedded-core/log/. + +- *Local Yocto Project or Local OpenEmbedded:* This release causes your + Toaster Projects to build against the head of the ``poky`` or + ``openembedded-core`` clone you have local to the machine running + Toaster. + +Configuring Toaster +=================== + +In order to use Toaster, you must configure the database with the +default content. The following subsections describe various aspects of +Toaster configuration. + +Configuring the Workflow +------------------------ + +The ``bldcontrol/management/commands/checksettings.py`` file controls +workflow configuration. The following steps outline the process to +initially populate this database. + +1. The default project settings are set from + ``orm/fixtures/settings.xml``. + +2. The default project distro and layers are added from + ``orm/fixtures/poky.xml`` if poky is installed. If poky is not + installed, they are added from ``orm/fixtures/oe-core.xml``. + +3. If the ``orm/fixtures/custom.xml`` file exists, then its values are + added. + +4. The layer index is then scanned and added to the database. + +Once these steps complete, Toaster is set up and ready to use. + +Customizing Pre-Set Data +------------------------ + +The pre-set data for Toaster is easily customizable. You can create the +``orm/fixtures/custom.xml`` file to customize the values that go into to +the database. Customization is additive, and can either extend or +completely replace the existing values. + +You use the ``orm/fixtures/custom.xml`` file to change the default +project settings for the machine, distro, file images, and layers. When +creating a new project, you can use the file to define the offered +alternate project release selections. For example, you can add one or +more additional selections that present custom layer sets or distros, +and any other local or proprietary content. + +Additionally, you can completely disable the content from the +``oe-core.xml`` and ``poky.xml`` files by defining the section shown +below in the ``settings.xml`` file. For example, this option is +particularly useful if your custom configuration defines fewer releases +or layers than the default fixture files. + +The following example sets "name" to "CUSTOM_XML_ONLY" and its value to +"True". + +.. code-block:: xml + + <object model="orm.toastersetting" pk="99"> + <field type="CharField" name="name">CUSTOM_XML_ONLY</field> + <field type="CharField" name="value">True</field> + </object> + +Understanding Fixture File Format +--------------------------------- + +The following is an overview of the file format used by the +``oe-core.xml``, ``poky.xml``, and ``custom.xml`` files. + +The following subsections describe each of the sections in the fixture +files, and outline an example section of the XML code. you can use to +help understand this information and create a local ``custom.xml`` file. + +Defining the Default Distro and Other Values +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section defines the default distro value for new projects. By +default, it reserves the first Toaster Setting record "1". The following +demonstrates how to set the project default value for +:term:`DISTRO`: + +.. code-block:: xml + + <!-- Set the project default value for DISTRO --> + <object model="orm.toastersetting" pk="1"> + <field type="CharField" name="name">DEFCONF_DISTRO</field> + <field type="CharField" name="value">poky</field> + </object> + +You can override +other default project values by adding additional Toaster Setting +sections such as any of the settings coming from the ``settings.xml`` +file. Also, you can add custom values that are included in the BitBake +environment. The "pk" values must be unique. By convention, values that +set default project values have a "DEFCONF" prefix. + +Defining BitBake Version +~~~~~~~~~~~~~~~~~~~~~~~~ + +The following defines which version of BitBake is used for the following +release selection: + +.. code-block:: xml + + <!-- Bitbake versions which correspond to the metadata release --> + <object model="orm.bitbakeversion" pk="1"> + <field type="CharField" name="name">&DISTRO_NAME_NO_CAP;</field> + <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field> + <field type="CharField" name="branch">&DISTRO_NAME_NO_CAP;</field> + <field type="CharField" name="dirpath">bitbake</field> + </object> + +.. _defining-releases: + +Defining Release +~~~~~~~~~~~~~~~~ + +The following defines the releases when you create a new project: + +.. code-block:: xml + + <!-- Releases available --> + <object model="orm.release" pk="1"> + <field type="CharField" name="name">&DISTRO_NAME_NO_CAP;</field> + <field type="CharField" name="description">Yocto Project &DISTRO; "&DISTRO_NAME;"</field> + <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field> + <field type="CharField" name="branch_name">&DISTRO_NAME_NO_CAP;</field> + <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=&DISTRO_NAME_NO_CAP;">Yocto Project &DISTRO_NAME; branch</a>.</field> + </object> + +The "pk" value must match the above respective BitBake version record. + +Defining the Release Default Layer Names +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following defines the default layers for each release: + +.. code-block:: xml + + <!-- Default project layers for each release --> + <object model="orm.releasedefaultlayer" pk="1"> + <field rel="ManyToOneRel" to="orm.release" name="release">1</field> + <field type="CharField" name="layer_name">openembedded-core</field> + </object> + +The 'pk' values in the example above should start at "1" and increment +uniquely. You can use the same layer name in multiple releases. + +Defining Layer Definitions +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Layer definitions are the most complex. The following defines each of +the layers, and then defines the exact layer version of the layer used +for each respective release. You must have one ``orm.layer`` entry for +each layer. Then, with each entry you need a set of +``orm.layer_version`` entries that connects the layer with each release +that includes the layer. In general all releases include the layer. + +.. code-block:: xml + + <object model="orm.layer" pk="1"> + <field type="CharField" name="name">openembedded-core</field> + <field type="CharField" name="layer_index_url"></field> + <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field> + <field type="CharField" name="vcs_web_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky</field> + <field type="CharField" name="vcs_web_tree_base_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> + <field type="CharField" name="vcs_web_file_base_url">http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field> + </object> + <object model="orm.layer_version" pk="1"> + <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> + <field type="IntegerField" name="layer_source">0</field> + <field rel="ManyToOneRel" to="orm.release" name="release">1</field> + <field type="CharField" name="branch">&DISTRO_NAME_NO_CAP;</field> + <field type="CharField" name="dirpath">meta</field> + </object> <object model="orm.layer_version" pk="2"> + <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> + <field type="IntegerField" name="layer_source">0</field> + <field rel="ManyToOneRel" to="orm.release" name="release">2</field> + <field type="CharField" name="branch">HEAD</field> + <field type="CharField" name="commit">HEAD</field> + <field type="CharField" name="dirpath">meta</field> + </object> + <object model="orm.layer_version" pk="3"> + <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field> + <field type="IntegerField" name="layer_source">0</field> + <field rel="ManyToOneRel" to="orm.release" name="release">3</field> + <field type="CharField" name="branch">master</field> + <field type="CharField" name="dirpath">meta</field> + </object> + +The layer "pk" values above must be unique, and typically start at "1". The +layer version "pk" values must also be unique across all layers, and typically +start at "1". + +Remote Toaster Monitoring +========================= + +Toaster has an API that allows remote management applications to +directly query the state of the Toaster server and its builds in a +machine-to-machine manner. This API uses the +`REST <http://en.wikipedia.org/wiki/Representational_state_transfer>`__ +interface and the transfer of JSON files. For example, you might monitor +a build inside a container through well supported known HTTP ports in +order to easily access a Toaster server inside the container. In this +example, when you use this direct JSON API, you avoid having web page +parsing against the display the user sees. + +Checking Health +--------------- + +Before you use remote Toaster monitoring, you should do a health check. +To do this, ping the Toaster server using the following call to see if +it is still alive:: + + http://host:port/health + +Be sure to provide values for host and port. If the server is alive, you will +get the response HTML: + +.. code-block:: html + + <!DOCTYPE html> + <html lang="en"> + <head><title>Toaster Health</title></head> + <body>Ok</body> + </html> + +Determining Status of Builds in Progress +---------------------------------------- + +Sometimes it is useful to determine the status of a build in progress. +To get the status of pending builds, use the following call:: + + http://host:port/toastergui/api/building + +Be sure to provide values for host and port. The output is a JSON file that +itemizes all builds in progress. This file includes the time in seconds since +each respective build started as well as the progress of the cloning, parsing, +and task execution. The following is sample output for a build in progress: + +.. code-block:: JSON + + {"count": 1, + "building": [ + {"machine": "beaglebone", + "seconds": "463.869", + "task": "927:2384", + "distro": "poky", + "clone": "1:1", + "id": 2, + "start": "2017-09-22T09:31:44.887Z", + "name": "20170922093200", + "parse": "818:818", + "project": "my_rocko", + "target": "core-image-minimal" + }] + } + +The JSON data for this query is returned in a +single line. In the previous example the line has been artificially +split for readability. + +Checking Status of Builds Completed +----------------------------------- + +Once a build is completed, you get the status when you use the following +call:: + + http://host:port/toastergui/api/builds + +Be sure to provide values for host and port. The output is a JSON file that +itemizes all complete builds, and includes build summary information. The +following is sample output for a completed build: + +.. code-block:: JSON + + {"count": 1, + "builds": [ + {"distro": "poky", + "errors": 0, + "machine": "beaglebone", + "project": "my_rocko", + "stop": "2017-09-22T09:26:36.017Z", + "target": "quilt-native", + "seconds": "78.193", + "outcome": "Succeeded", + "id": 1, + "start": "2017-09-22T09:25:17.824Z", + "warnings": 1, + "name": "20170922092618" + }] + } + +The JSON data for this query is returned in a single line. In the +previous example the line has been artificially split for readability. + +Determining Status of a Specific Build +-------------------------------------- + +Sometimes it is useful to determine the status of a specific build. To +get the status of a specific build, use the following call:: + + http://host:port/toastergui/api/build/ID + +Be sure to provide values for +host, port, and ID. You can find the value for ID from the Builds +Completed query. See the ":ref:`toaster-manual/toaster-manual-reference:checking status of builds completed`" +section for more information. + +The output is a JSON file that itemizes the specific build and includes +build summary information. The following is sample output for a specific +build: + +.. code-block:: JSON + + {"build": + {"distro": "poky", + "errors": 0, + "machine": "beaglebone", + "project": "my_rocko", + "stop": "2017-09-22T09:26:36.017Z", + "target": "quilt-native", + "seconds": "78.193", + "outcome": "Succeeded", + "id": 1, + "start": "2017-09-22T09:25:17.824Z", + "warnings": 1, + "name": "20170922092618", + "cooker_log": "/opt/user/poky/build-toaster-2/tmp/log/cooker/beaglebone/build_20170922_022607.991.log" + } + } + +The JSON data for this query is returned in a single line. In the +previous example the line has been artificially split for readability. + +.. _toaster-useful-commands: + +Useful Commands +=============== + +In addition to the web user interface and the scripts that start and +stop Toaster, command-line commands exist through the ``manage.py`` +management script. You can find general documentation on ``manage.py`` +at the +`Django <https://docs.djangoproject.com/en/2.2/topics/settings/>`__ +site. However, several ``manage.py`` commands have been created that are +specific to Toaster and are used to control configuration and back-end +tasks. You can locate these commands in the +:term:`Source Directory` (e.g. ``poky``) at +``bitbake/lib/manage.py``. This section documents those commands. + +.. note:: + + - When using ``manage.py`` commands given a default configuration, + you must be sure that your working directory is set to the + :term:`Build Directory`. Using + ``manage.py`` commands from the Build Directory allows Toaster to + find the ``toaster.sqlite`` file, which is located in the Build + Directory. + + - For non-default database configurations, it is possible that you + can use ``manage.py`` commands from a directory other than the + Build Directory. To do so, the ``toastermain/settings.py`` file + must be configured to point to the correct database backend. + +.. _toaster-command-buildslist: + +``buildslist`` +-------------- + +The ``buildslist`` command lists all builds that Toaster has recorded. +Access the command as follows: + +.. code-block:: shell + + $ bitbake/lib/toaster/manage.py buildslist + +The command returns a list, which includes numeric +identifications, of the builds that Toaster has recorded in the current +database. + +You need to run the ``buildslist`` command first to identify existing +builds in the database before using the +:ref:`toaster-manual/toaster-manual-reference:\`\`builddelete\`\`` command. Here is an +example that assumes default repository and build directory names: + +.. code-block:: shell + + $ cd ~/poky/build + $ python ../bitbake/lib/toaster/manage.py buildslist + +If your Toaster database had only one build, the above +:ref:`toaster-manual/toaster-manual-reference:\`\`buildslist\`\`` +command would return something like the following:: + + 1: qemux86 poky core-image-minimal + +.. _toaster-command-builddelete: + +``builddelete`` +--------------- + +The ``builddelete`` command deletes data associated with a build. Access +the command as follows: + +.. code-block:: + + $ bitbake/lib/toaster/manage.py builddelete build_id + +The command deletes all the build data for the specified +build_id. This command is useful for removing old and unused data from +the database. + +Prior to running the ``builddelete`` command, you need to get the ID +associated with builds by using the +:ref:`toaster-manual/toaster-manual-reference:\`\`buildslist\`\`` command. + +.. _toaster-command-perf: + +``perf`` +-------- + +The ``perf`` command measures Toaster performance. Access the command as +follows: + +.. code-block:: shell + + $ bitbake/lib/toaster/manage.py perf + +The command is a sanity check that returns page loading times in order to +identify performance problems. + +.. _toaster-command-checksettings: + +``checksettings`` +----------------- + +The ``checksettings`` command verifies existing Toaster settings. Access +the command as follows: + +.. code-block:: shell + + $ bitbake/lib/toaster/manage.py checksettings + +Toaster uses settings that are based on the database to configure the +building tasks. The ``checksettings`` command verifies that the database +settings are valid in the sense that they have the minimal information +needed to start a build. + +In order for the ``checksettings`` command to work, the database must be +correctly set up and not have existing data. To be sure the database is +ready, you can run the following: + +.. code-block:: shell + + $ bitbake/lib/toaster/manage.py syncdb + $ bitbake/lib/toaster/manage.py migrate orm + $ bitbake/lib/toaster/manage.py migrate bldcontrol + +After running these commands, you can run the ``checksettings`` command. + +.. _toaster-command-runbuilds: + +``runbuilds`` +------------- + +The ``runbuilds`` command launches scheduled builds. Access the command +as follows: + +.. code-block:: shell + + $ bitbake/lib/toaster/manage.py runbuilds + +The ``runbuilds`` command checks if scheduled builds exist in the database +and then launches them per schedule. The command returns after the builds +start but before they complete. The Toaster Logging Interface records and +updates the database when the builds complete. diff --git a/poky/documentation/toaster-manual/toaster-manual-setup-and-use.rst b/poky/documentation/toaster-manual/toaster-manual-setup-and-use.rst new file mode 100644 index 000000000..01c0dce41 --- /dev/null +++ b/poky/documentation/toaster-manual/toaster-manual-setup-and-use.rst @@ -0,0 +1,651 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK +.. Set default pygment highlighting to 'shell' for this document +.. highlight:: shell + +**************************** +Setting Up and Using Toaster +**************************** + +Starting Toaster for Local Development +====================================== + +Once you have set up the Yocto Project and installed the Toaster system +dependencies as described in the ":ref:`toaster-manual/toaster-manual-start:Preparing to Use +Toaster`" chapter, you are ready to start +Toaster. + +Navigate to the root of your +:term:`Source Directory` (e.g. ``poky``):: + + $ cd poky + +Once in that directory, source the build environment script:: + + $ source oe-init-build-env + +Next, from the build directory (e.g. +``poky/build``), start Toaster using this command:: + + $ source toaster start + +You can now run your builds from the command line, or with Toaster +as explained in section +":ref:`toaster-manual/toaster-manual-setup-and-use:using the toaster web interface`". + +To access the Toaster web interface, open your favorite browser and +enter the following:: + + http://127.0.0.1:8000 + +Setting a Different Port +======================== + +By default, Toaster starts on port 8000. You can use the ``WEBPORT`` +parameter to set a different port. For example, the following command +sets the port to "8400":: + + $ source toaster start webport=8400 + +Setting Up Toaster Without a Web Server +======================================= + +You can start a Toaster environment without starting its web server. +This is useful for the following: + +- Capturing a command-line build's statistics into the Toaster database + for examination later. + +- Capturing a command-line build's statistics when the Toaster server + is already running. + +- Having one instance of the Toaster web server track and capture + multiple command-line builds, where each build is started in its own + "noweb" Toaster environment. + +The following commands show how to start a Toaster environment without +starting its web server, perform BitBake operations, and then shut down +the Toaster environment. Once the build is complete, you can close the +Toaster environment. Before closing the environment, however, you should +allow a few minutes to ensure the complete transfer of its BitBake build +statistics to the Toaster database. If you have a separate Toaster web +server instance running, you can watch this command-line build's +progress and examine the results as soon as they are posted:: + + $ source toaster start noweb + $ bitbake target + $ source toaster stop + +Setting Up Toaster Without a Build Server +========================================= + +You can start a Toaster environment with the "New Projects" feature +disabled. Doing so is useful for the following: + +- Sharing your build results over the web server while blocking others + from starting builds on your host. + +- Allowing only local command-line builds to be captured into the + Toaster database. + +Use the following command to set up Toaster without a build server:: + + $ source toaster start nobuild webport=port + +Setting up External Access +========================== + +By default, Toaster binds to the loop back address (i.e. ``localhost``), +which does not allow access from external hosts. To allow external +access, use the ``WEBPORT`` parameter to open an address that connects +to the network, specifically the IP address that your NIC uses to +connect to the network. You can also bind to all IP addresses the +computer supports by using the shortcut "0.0.0.0:port". + +The following example binds to all IP addresses on the host:: + + $ source toaster start webport=0.0.0.0:8400 + +This example binds to a specific IP address on the host's NIC:: + + $ source toaster start webport=192.168.1.1:8400 + +The Directory for Cloning Layers +================================ + +Toaster creates a ``_toaster_clones`` directory inside your Source +Directory (i.e. ``poky``) to clone any layers needed for your builds. + +Alternatively, if you would like all of your Toaster related files and +directories to be in a particular location other than the default, you +can set the ``TOASTER_DIR`` environment variable, which takes precedence +over your current working directory. Setting this environment variable +causes Toaster to create and use ``$TOASTER_DIR./_toaster_clones``. + +.. _toaster-the-build-directory: + +The Build Directory +=================== + +Toaster creates a build directory within your Source Directory (e.g. +``poky``) to execute the builds. + +Alternatively, if you would like all of your Toaster related files and +directories to be in a particular location, you can set the +``TOASTER_DIR`` environment variable, which takes precedence over your +current working directory. Setting this environment variable causes +Toaster to use ``$TOASTER_DIR/build`` as the build directory. + +.. _toaster-creating-a-django-super-user: + +Creating a Django Superuser +=========================== + +Toaster is built on the `Django +framework <https://www.djangoproject.com/>`__. Django provides an +administration interface you can use to edit Toaster configuration +parameters. + +To access the Django administration interface, you must create a +superuser by following these steps: + +#. If you used ``pip3``, which is recommended, to set up the Toaster + system dependencies, you need be sure the local user path is in your + ``PATH`` list. To append the pip3 local user path, use the following + command:: + + $ export PATH=$PATH:$HOME/.local/bin + +#. From the directory containing the Toaster database, which by default + is the :term:`Build Directory`, + invoke the ``createsuperuser`` command from ``manage.py``:: + + $ cd ~/poky/build + $ ../bitbake/lib/toaster/manage.py createsuperuser + +#. Django prompts you for the username, which you need to provide. + +#. Django prompts you for an email address, which is optional. + +#. Django prompts you for a password, which you must provide. + +#. Django prompts you to re-enter your password for verification. + +After completing these steps, the following confirmation message +appears:: + + Superuser created successfully. + +Creating a superuser allows you to access the Django administration +interface through a browser. The URL for this interface is the same as +the URL used for the Toaster instance with "/admin" on the end. For +example, if you are running Toaster locally, use the following URL:: + + http://127.0.0.1:8000/admin + +You can use the Django administration interface to set Toaster configuration +parameters such as the build directory, layer sources, default variable +values, and BitBake versions. + +.. _toaster-setting-up-a-production-instance-of-toaster: + +Setting Up a Production Instance of Toaster +=========================================== + +You can use a production instance of Toaster to share the Toaster +instance with remote users, multiple users, or both. The production +instance is also the setup that can handle heavier loads on the web +service. Use the instructions in the following sections to set up +Toaster to run builds through the Toaster web interface. + +.. _toaster-production-instance-requirements: + +Requirements +------------ + +Be sure you meet the following requirements: + +.. note:: + + You must comply with all Apache, ``mod-wsgi``, and Mysql requirements. + +- Have all the build requirements as described in the ":ref:`toaster-manual/toaster-manual-start:Preparing to + Use Toaster`" chapter. + +- Have an Apache webserver. + +- Have ``mod-wsgi`` for the Apache webserver. + +- Use the Mysql database server. + +- If you are using Ubuntu, run the following:: + + $ sudo apt-get install apache2 libapache2-mod-wsgi-py3 mysql-server python3-pip libmysqlclient-dev + +- If you are using Fedora or a RedHat distribution, run the + following:: + + $ sudo dnf install httpd python3-mod_wsgi python3-pip mariadb-server mariadb-devel python3-devel + +- If you are using openSUSE, run the following:: + + $ sudo zypper install apache2 apache2-mod_wsgi-python3 python3-pip mariadb mariadb-client python3-devel + +.. _toaster-installation-steps: + +Installation +------------ + +Perform the following steps to install Toaster: + +#. Create toaster user and set its home directory to + ``/var/www/toaster``:: + + $ sudo /usr/sbin/useradd toaster -md /var/www/toaster -s /bin/false + $ sudo su - toaster -s /bin/bash + +#. Checkout a copy of ``poky`` into the web server directory. You will + be using ``/var/www/toaster``:: + + $ git clone git://git.yoctoproject.org/poky + $ git checkout &DISTRO_NAME_NO_CAP; + +#. Install Toaster dependencies using the --user flag which keeps the + Python packages isolated from your system-provided packages:: + + $ cd /var/www/toaster/ + $ pip3 install --user -r ./poky/bitbake/toaster-requirements.txt + $ pip3 install --user mysqlclient + + .. note:: + + Isolating these packages is not required but is recommended. + Alternatively, you can use your operating system's package + manager to install the packages. + +#. Configure Toaster by editing + ``/var/www/toaster/poky/bitbake/lib/toaster/toastermain/settings.py`` + as follows: + + - Edit the + `DATABASES <https://docs.djangoproject.com/en/2.2/ref/settings/#databases>`__ + settings: + + .. code-block:: python + + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'toaster_data', + 'USER': 'toaster', + 'PASSWORD': 'yourpasswordhere', + 'HOST': 'localhost', + 'PORT': '3306', + } + } + + - Edit the + `SECRET_KEY <https://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-SECRET_KEY>`__: + + .. code-block:: python + + SECRET_KEY = 'your_secret_key' + + - Edit the + `STATIC_ROOT <https://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-STATIC_ROOT>`__: + + .. code-block:: python + + STATIC_ROOT = '/var/www/toaster/static_files/' + +#. Add the database and user to the ``mysql`` server defined earlier:: + + $ mysql -u root -p + mysql> CREATE DATABASE toaster_data; + mysql> CREATE USER 'toaster'@'localhost' identified by 'yourpasswordhere'; + mysql> GRANT all on toaster_data.\* to 'toaster'@'localhost'; + mysql> quit + +#. Get Toaster to create the database schema, default data, and gather + the statically-served files:: + + $ cd /var/www/toaster/poky/ + $ ./bitbake/lib/toaster/manage.py migrate + $ TOASTER_DIR=`pwd\` TEMPLATECONF='poky' \ + ./bitbake/lib/toaster/manage.py checksettings + $ ./bitbake/lib/toaster/manage.py collectstatic + + + In the previous + example, from the ``poky`` directory, the ``migrate`` command + ensures the database schema changes have propagated correctly (i.e. + migrations). The next line sets the Toaster root directory + ``TOASTER_DIR`` and the location of the Toaster configuration file + ``TOASTER_CONF``, which is relative to ``TOASTER_DIR``. The + ``TEMPLATECONF`` value reflects the contents of + ``poky/.templateconf``, and by default, should include the string + "poky". For more information on the Toaster configuration file, see + the ":ref:`toaster-manual/toaster-manual-reference:Configuring Toaster`" section. + + This line also runs the ``checksettings`` command, which configures + the location of the Toaster :term:`Build Directory`. + The Toaster + root directory ``TOASTER_DIR`` determines where the Toaster build + directory is created on the file system. In the example above, + ``TOASTER_DIR`` is set as follows:: + + /var/www/toaster/poky + + + This setting causes the Toaster build directory to be:: + + /var/www/toaster/poky/build + + Finally, the ``collectstatic`` command is a Django framework command + that collects all the statically served files into a designated + directory to be served up by the Apache web server as defined by + ``STATIC_ROOT``. + +#. Test and/or use the Mysql integration with Toaster's Django web + server. At this point, you can start up the normal Toaster Django + web server with the Toaster database in Mysql. You can use this web + server to confirm that the database migration and data population + from the Layer Index is complete. + + To start the default Toaster Django web server with the Toaster + database now in Mysql, use the standard start commands:: + + $ source oe-init-build-env + $ source toaster start + + Additionally, if Django is sufficient for your requirements, you can use + it for your release system and migrate later to Apache as your + requirements change. + +#. Add an Apache configuration file for Toaster to your Apache web + server's configuration directory. If you are using Ubuntu or Debian, + put the file here:: + + /etc/apache2/conf-available/toaster.conf + + + If you are using Fedora or RedHat, put it here:: + + /etc/httpd/conf.d/toaster.conf + + If you are using OpenSUSE, put it here:: + + /etc/apache2/conf.d/toaster.conf + + Following is a sample Apache configuration for Toaster you can follow: + + .. code-block:: apache + + Alias /static /var/www/toaster/static_files + <Directory /var/www/toaster/static_files> + <IfModule mod_access_compat.c> + Order allow,deny + Allow from all + </IfModule> + <IfModule !mod_access_compat.c> + Require all granted + </IfModule> + </Directory> + + <Directory /var/www/toaster/poky/bitbake/lib/toaster/toastermain> + <Files "wsgi.py"> + Require all granted + </Files> + </Directory> + + WSGIDaemonProcess toaster_wsgi python-path=/var/www/toaster/poky/bitbake/lib/toaster:/var/www/toaster/.local/lib/python3.4/site-packages + WSGIScriptAlias / "/var/www/toaster/poky/bitbake/lib/toaster/toastermain/wsgi.py" + <Location /> + WSGIProcessGroup toaster_wsgi + </Location> + + + If you are using Ubuntu or Debian, you will need to enable the config and + module for Apache:: + + $ sudo a2enmod wsgi + $ sudo a2enconf toaster + $ chmod +x bitbake/lib/toaster/toastermain/wsgi.py + + Finally, restart Apache to make sure all new configuration is loaded. For Ubuntu, + Debian, and OpenSUSE use:: + + $ sudo service apache2 restart + + For Fedora and RedHat use:: + + $ sudo service httpd restart + +#. Prepare the systemd service to run Toaster builds. Here is a sample + configuration file for the service: + + .. code-block:: ini + + [Unit] + Description=Toaster runbuilds + + [Service] + Type=forking User=toaster + ExecStart=/usr/bin/screen -d -m -S runbuilds /var/www/toaster/poky/bitbake/lib/toaster/runbuilds-service.sh start + ExecStop=/usr/bin/screen -S runbuilds -X quit + WorkingDirectory=/var/www/toaster/poky + + [Install] + WantedBy=multi-user.target + + + Prepare the ``runbuilds-service.sh`` script that you need to place in the + ``/var/www/toaster/poky/bitbake/lib/toaster/`` directory by setting + up executable permissions:: + + #!/bin/bash + + #export http_proxy=http://proxy.host.com:8080 + #export https_proxy=http://proxy.host.com:8080 + #export GIT_PROXY_COMMAND=$HOME/bin/gitproxy + cd ~/poky/ + source ./oe-init-build-env build + source ../bitbake/bin/toaster $1 noweb + [ "$1" == 'start' ] && /bin/bash + +#. Run the service:: + + $ sudo service runbuilds start + + Since the service is running in a detached screen session, you can + attach to it using this command:: + + $ sudo su - toaster + $ screen -rS runbuilds + + You can detach from the service again using "Ctrl-a" followed by "d" key + combination. + +You can now open up a browser and start using Toaster. + +Using the Toaster Web Interface +=============================== + +The Toaster web interface allows you to do the following: + +- Browse published layers in the `OpenEmbedded Layer + Index <http://layers.openembedded.org>`__ that are available for your + selected version of the build system. + +- Import your own layers for building. + +- Add and remove layers from your configuration. + +- Set configuration variables. + +- Select a target or multiple targets to build. + +- Start your builds. + +- See what was built (recipes and packages) and what packages were + installed into your final image. + +- Browse the directory structure of your image. + +- See the value of all variables in your build configuration, and which + files set each value. + +- Examine error, warning and trace messages to aid in debugging. + +- See information about the BitBake tasks executed and reused during + your build, including those that used shared state. + +- See dependency relationships between recipes, packages and tasks. + +- See performance information such as build time, task time, CPU usage, + and disk I/O. + +.. _web-interface-videos: + +Toaster Web Interface Videos +---------------------------- + +Following are several videos that show how to use the Toaster GUI: + +- *Build Configuration:* This + `video <https://www.youtube.com/watch?v=qYgDZ8YzV6w>`__ overviews and + demonstrates build configuration for Toaster. + +- *Build Custom Layers:* This + `video <https://www.youtube.com/watch?v=QJzaE_XjX5c>`__ shows you how + to build custom layers that are used with Toaster. + +- *Toaster Homepage and Table Controls:* This + `video <https://www.youtube.com/watch?v=QEARDnrR1Xw>`__ goes over the + Toaster entry page, and provides an overview of the data manipulation + capabilities of Toaster, which include search, sorting and filtering + by different criteria. + +- *Build Dashboard:* This + `video <https://www.youtube.com/watch?v=KKqHYcnp2gE>`__ shows you the + build dashboard, a page providing an overview of the information + available for a selected build. + +- *Image Information:* This + `video <https://www.youtube.com/watch?v=XqYGFsmA0Rw>`__ walks through + the information Toaster provides about images: packages installed and + root file system. + +- *Configuration:* This + `video <https://www.youtube.com/watch?v=UW-j-T2TzIg>`__ provides + Toaster build configuration information. + +- *Tasks:* This `video <https://www.youtube.com/watch?v=D4-9vGSxQtw>`__ + shows the information Toaster provides about the tasks run by the + build system. + +- *Recipes and Packages Built:* This + `video <https://www.youtube.com/watch?v=x-6dx4huNnw>`__ shows the + information Toaster provides about recipes and packages built. + +- *Performance Data:* This + `video <https://www.youtube.com/watch?v=qWGMrJoqusQ>`__ shows the + build performance data provided by Toaster. + +.. _a-note-on-the-local-yocto-project-release: + +Additional Information About the Local Yocto Project Release +------------------------------------------------------------ + +This section only applies if you have set up Toaster for local +development, as explained in the +":ref:`toaster-manual/toaster-manual-setup-and-use:starting toaster for local development`" +section. + +When you create a project in Toaster, you will be asked to provide a +name and to select a Yocto Project release. One of the release options +you will find is called "Local Yocto Project". + +.. image:: figures/new-project.png + :align: center + :scale: 75% + +When you select the "Local Yocto Project" release, Toaster will run your +builds using the local Yocto Project clone you have in your computer: +the same clone you are using to run Toaster. Unless you manually update +this clone, your builds will always use the same Git revision. + +If you select any of the other release options, Toaster will fetch the +tip of your selected release from the upstream `Yocto Project +repository <https://git.yoctoproject.org>`__ every time you run a build. +Fetching this tip effectively means that if your selected release is +updated upstream, the Git revision you are using for your builds will +change. If you are doing development locally, you might not want this +change to happen. In that case, the "Local Yocto Project" release might +be the right choice. + +However, the "Local Yocto Project" release will not provide you with any +compatible layers, other than the three core layers that come with the +Yocto Project: + +- `openembedded-core <http://layers.openembedded.org/layerindex/branch/master/layer/openembedded-core/>`__ + +- `meta-poky <http://layers.openembedded.org/layerindex/branch/master/layer/meta-poky/>`__ + +- `meta-yocto-bsp <http://layers.openembedded.org/layerindex/branch/master/layer/meta-yocto-bsp/>`__ + +.. image:: figures/compatible-layers.png + :align: center + :scale: 75% + +If you want to build any other layers, you will need to manually import +them into your Toaster project, using the "Import layer" page. + +.. image:: figures/import-layer.png + :align: center + :scale: 75% + +.. _toaster-web-interface-preferred-version: + +Building a Specific Recipe Given Multiple Versions +-------------------------------------------------- + +Occasionally, a layer might provide more than one version of the same +recipe. For example, the ``openembedded-core`` layer provides two +versions of the ``bash`` recipe (i.e. 3.2.48 and 4.3.30-r0) and two +versions of the ``which`` recipe (i.e. 2.21 and 2.18). The following +figure shows this exact scenario: + +.. image:: figures/bash-oecore.png + :align: center + :scale: 75% + +By default, the OpenEmbedded build system builds one of the two recipes. +For the ``bash`` case, version 4.3.30-r0 is built by default. +Unfortunately, Toaster as it exists, is not able to override the default +recipe version. If you would like to build bash 3.2.48, you need to set +the +:term:`PREFERRED_VERSION` +variable. You can do so from Toaster, using the "Add variable" form, +which is available in the "BitBake variables" page of the project +configuration section as shown in the following screen: + +.. image:: figures/add-variable.png + :align: center + :scale: 75% + +To specify ``bash`` 3.2.48 as the version to build, enter +"PREFERRED_VERSION_bash" in the "Variable" field, and "3.2.48" in the +"Value" field. Next, click the "Add variable" button: + +.. image:: figures/set-variable.png + :align: center + :scale: 75% + +After clicking the "Add variable" button, the settings for +``PREFERRED_VERSION`` are added to the bottom of the BitBake variables +list. With these settings, the OpenEmbedded build system builds the +desired version of the recipe rather than the default version: + +.. image:: figures/variable-added.png + :align: center + :scale: 75% diff --git a/poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml b/poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml index d810b9d57..f55574592 100644 --- a/poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml +++ b/poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml @@ -70,17 +70,17 @@ web server. This is useful for the following: <itemizedlist> <listitem><para> - Capturing a command-line build’s statistics into + Capturing a command-line build's statistics into the Toaster database for examination later. </para></listitem> <listitem><para> - Capturing a command-line build’s statistics when + Capturing a command-line build's statistics when the Toaster server is already running. </para></listitem> <listitem><para> Having one instance of the Toaster web server track and capture multiple command-line builds, - where each build is started in its own “noweb” + where each build is started in its own "noweb" Toaster environment. </para></listitem> </itemizedlist> @@ -92,7 +92,7 @@ minutes to ensure the complete transfer of its BitBake build statistics to the Toaster database. If you have a separate Toaster web server instance running, you - can watch this command-line build’s progress and examine the + can watch this command-line build's progress and examine the results as soon as they are posted: <literallayout class='monospaced'> $ source toaster start noweb @@ -107,7 +107,7 @@ <para> You can start a Toaster environment with the - “New Projects” feature disabled. + "New Projects" feature disabled. Doing so is useful for the following: <itemizedlist> <listitem><para> @@ -470,7 +470,7 @@ <filename>STATIC_ROOT</filename>. </para></listitem> <listitem><para> - Test and/or use the Mysql integration with Toaster’s + Test and/or use the Mysql integration with Toaster's Django web server. At this point, you can start up the normal Toaster Django web server with the Toaster database in Mysql. diff --git a/poky/documentation/toaster-manual/toaster-manual-start.rst b/poky/documentation/toaster-manual/toaster-manual-start.rst new file mode 100644 index 000000000..2d612b893 --- /dev/null +++ b/poky/documentation/toaster-manual/toaster-manual-start.rst @@ -0,0 +1,57 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK +.. Set default pygments highlighting to shell for this document +.. highlight:: shell + +************************ +Preparing to Use Toaster +************************ + +This chapter describes how you need to prepare your system in order to +use Toaster. + +.. _toaster-setting-up-the-basic-system-requirements: + +Setting Up the Basic System Requirements +======================================== + +Before you can use Toaster, you need to first set up your build system +to run the Yocto Project. To do this, follow the instructions in the +":ref:`dev-manual/dev-manual-start:preparing the build host`" section of +the Yocto Project Development Tasks Manual. For Ubuntu/Debian, you might +also need to do an additional install of pip3. :: + + $ sudo apt-get install python3-pip + +.. _toaster-establishing-toaster-system-dependencies: + +Establishing Toaster System Dependencies +======================================== + +Toaster requires extra Python dependencies in order to run. A Toaster +requirements file named ``toaster-requirements.txt`` defines the Python +dependencies. The requirements file is located in the ``bitbake`` +directory, which is located in the root directory of the +:term:`Source Directory` (e.g. +``poky/bitbake/toaster-requirements.txt``). The dependencies appear in a +``pip``, install-compatible format. + +.. _toaster-load-packages: + +Install Toaster Packages +------------------------ + +You need to install the packages that Toaster requires. Use this +command:: + + $ pip3 install --user -r bitbake/toaster-requirements.txt + +The previous command installs the necessary Toaster modules into a local +python 3 cache in your ``$HOME`` directory. The caches is actually +located in ``$HOME/.local``. To see what packages have been installed +into your ``$HOME`` directory, do the following:: + + $ pip3 list installed --local + +If you need to remove something, the following works:: + + $ pip3 uninstall PackageNameToUninstall diff --git a/poky/documentation/toaster-manual/toaster-manual.rst b/poky/documentation/toaster-manual/toaster-manual.rst new file mode 100644 index 000000000..f6f59411b --- /dev/null +++ b/poky/documentation/toaster-manual/toaster-manual.rst @@ -0,0 +1,19 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +=================== +Toaster User Manual +=================== + +| + +.. toctree:: + :caption: Table of Contents + :numbered: + + toaster-manual-intro + toaster-manual-start + toaster-manual-setup-and-use + toaster-manual-reference + history + +.. include:: /boilerplate.rst |