diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2022-11-03 21:47:49 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2022-11-03 22:43:10 +0300 |
commit | 2390b1b6299fb1e57e6d9a94c287ce1c0b322376 (patch) | |
tree | 09462bb0a9634a75c5044f4a4db872fa857780da /poky/documentation | |
parent | 5641269ed7838c5ea402b23c5e0ac0af5d6a866b (diff) | |
download | openbmc-2390b1b6299fb1e57e6d9a94c287ce1c0b322376.tar.xz |
subtree updates2.14.0-dev
meta-arm: 14c7e5b336..3b7347cd67:
Jon Mason (6):
CI: Remove host bitbake variables
arm: add Mickledore to layer compat string
CI: Add packages for opencsd and gator-daemon to base build
CI: add common fvp yml file
arm/opencsd: update to version 1.3.1
arm/gator-daemon: update to v7.8.0
Jose Quaresma (2):
optee-ftpm/optee-os: add missing space in EXTRA_OEMAKE
optee-os-ts: avoid using escape chars in EXTRA_OEMAKE
Mohamed Omar Asaker (4):
Revert "arm-bsp/trusted-firmware-m: corstone1000: secure debug code checkout from yocto"
Revert "arm-bsp/trusted-firmware-m: corstone1000: bump tfm SHA"
arm-bsp/trusted-firmware-m: corstone1000 support FMP image info
arm-bsp/corstone1000: add msd configs for fvp
Ross Burton (5):
arm/hafnium: add missing Upstream-Status
arm-bsp/hafnium: add missing Upstream-Status
arm-bsp/linux-arm64-ack: fix malformed Upstream-Status tag
CI: add documentation job
CI: track meta-openembedded's langdale branch
Rui Miguel Silva (2):
arm/trusted-services: port crypto config
arm-bsp/corstone1000: apply ts patch to psa crypto api test
Satish Kumar (1):
arm-bsp/trusted-service: corstone1000: esrt support
Vishnu Banavath (4):
runfvp: corstone1000: add mmc card configuration
meta-arm-bsp/doc: add readthedocs for corstone1000
arm-bsp/optee: register DRAM1 for N1SDP target
arm-bsp:optee: enable optee test for N1SDP target
meta-raspberrypi: 722c51647c..a305f4804b:
Sung Gon Kim (1):
libcamera: rename bbappend to match any version
meta-openembedded: 8073ec2275..6ebff843cc:
Akash Hadke (1):
audit: Fix compile error for audit_2.8.5
Alex Kiernan (1):
lldpd: Upgrade 1.0.14 -> 1.0.15
Alexander Kanavin (3):
sip3: remove the recipe
python3-wxgtk4: skip the recipe
python3-yappi: mark as incompatible with python 3.11
Bhupesh Sharma (1):
android-tools-conf-configfs: Allow handling two or more UDC controllers
Eero Aaltonen (1):
valijson: use install task from CMakeLists.txt
Etienne Cordonnier (1):
uutils-coreutils: upgrade 0.0.15 -> 0.0.16
Gianfranco Costamagna (2):
vboxguestdrivers: upgrade 6.1.38 -> 7.0.0
vbxguestdrivers: upgrade 7.0.0 -> 7.0.2
Joshua Watt (3):
nginx: Add ipv6 support
iniparser: Add native support
libzip: Add native support
Khem Raj (3):
postfix: Upgrade to 3.7.3
msktutil: Add recipe
protobuf: Enable protoc binary in nativesdk
Leon Anavi (7):
python3-cheetah: Upgrade 3.2.6 -> 3.2.6.post1
python3-dill: Upgrade 0.3.5.1 -> 0.3.6
python3-pythonping: Upgrade 1.1.3 -> 1.1.4
python3-colorama: Upgrade 0.4.5 -> 0.4.6
python3-pint: Upgrade 0.19.2 -> 0.20
python3-traitlets: Upgrade 5.4.0 -> 5.5.0
python3-py-cpuinfo: Upgrade 8.0.0 -> 9.0.0
Markus Volk (4):
perfetto: build libperfetto
libcamera: upgrade -> 0.0.1
gtk-vnc: add recipe
spice-gtk: add recipe
Meier Boas (1):
jwt-cpp: add recipe
Ovidiu Panait (1):
syzkaller: add recipe and selftest for syzkaller fuzzing
Peter Marko (2):
cpputest: remove dev package dependency
cpputest: add possibility to build extensions
Robert Joslyn (1):
fwupd: Fix plugin_gpio PACKAGECONFIG
Sebastian Trahm (1):
Add recipe for python3-pytest-json-report
Tim Orling (5):
libmime-types-perl: upgrade 2.17 -> 2.22
libcompress-raw*-perl: move from libio/compress-*
libio-compress*-perl: cleanup; fixes
libcompress-raw-*-perl: cleanup; fixes
packagegroup-meta-perl: mv libcompress-raw-*-perl
Vincent Davis Jr (2):
libglvnd: add new recipe libglvnd v1.5.0
xf86-video-amdgpu: add new recipe xf86-video-amdgpu
Wang Mingyu (36):
bats: upgrade 1.8.0 -> 1.8.2
ctags: upgrade 5.9.20221009.0 -> 5.9.20221016.0
fvwm: upgrade 2.6.9 -> 2.7.0
makedumpfile: upgrade 1.7.1 -> 1.7.2
sanlock: upgrade 3.8.4 -> 3.8.5
python3-astroid: upgrade 2.12.11 -> 2.12.12
python3-charset-normalizer: upgrade 2.1.1 -> 3.0.0
python3-google-api-python-client: upgrade 2.64.0 -> 2.65.0
python3-google-auth: upgrade 2.12.0 -> 2.13.0
python3-grpcio-tools: upgrade 1.49.1 -> 1.50.0
python3-grpcio: upgrade 1.49.1 -> 1.50.0
python3-huey: upgrade 2.4.3 -> 2.4.4
python3-incremental: upgrade 21.3.0 -> 22.10.0
python3-luma-core: upgrade 2.3.1 -> 2.4.0
python3-oauthlib: upgrade 3.2.1 -> 3.2.2
python3-pandas: upgrade 1.5.0 -> 1.5.1
python3-pastedeploy: upgrade 2.1.1 -> 3.0.1
python3-pika: upgrade 1.3.0 -> 1.3.1
python3-portalocker: upgrade 2.5.1 -> 2.6.0
python3-protobuf: upgrade 4.21.7 -> 4.21.8
python3-pyjwt: upgrade 2.5.0 -> 2.6.0
python3-pymongo: upgrade 4.2.0 -> 4.3.2
python3-pywbemtools: upgrade 1.0.0 -> 1.0.1
python3-robotframework: upgrade 5.0.1 -> 6.0
python3-socketio: upgrade 5.7.1 -> 5.7.2
python3-sqlalchemy: upgrade 1.4.41 -> 1.4.42
tracker-miners: upgrade 3.2.1 -> 3.4.1
tracker: upgrade 3.4.0 -> 3.4.1
wolfssl: upgrade 5.5.1 -> 5.5.2
cglm: upgrade 0.8.5 -> 0.8.7
ctags: upgrade 5.9.20221016.0 -> 5.9.20221023.0
flatbuffers: upgrade 22.9.29 -> 22.10.26
function2: upgrade 4.2.1 -> 4.2.2
poco: upgrade 1.12.2 -> 1.12.3
thingsboard-gateway: upgrade 3.1 -> 3.2
grpc: upgrade 1.50.0 -> 1.50.1
Xiangyu Chen (1):
ipmitool: fix typo in .bb file's comments, using = instead of =?
Zheng Qiu (1):
jq: improve ptest and disable valgrind by default
zhengruoqin (5):
tcpslice: upgrade 1.5 -> 1.6
tio: upgrade 2.1 -> 2.2
python3-stevedore: upgrade 4.0.1 -> 4.1.0
python3-xxhash: upgrade 3.0.0 -> 3.1.0
python3-zeroconf: upgrade 0.39.1 -> 0.39.2
meta-security: e8e7318189..2aa48e6f4e:
Armin Kuster (1):
kas-security-base.yml: make work again
Gowtham Suresh Kumar (1):
Update PARSEC recipe to latest v1.1.0 release
Michael Haener (1):
tpm2-openssl: update to 1.1.1
poky: 95c802b0be..482c493cf6:
Adrian Freihofer (3):
own-mirrors: add crate
buildconf: compare abspath
ref-manual: add wic command bootloader ptable option
Ahmad Fatoum (2):
kernel-fitimage: mangle slashes to underscores as late as possible
kernel-fitimage: skip FDT section creation for applicable symlinks
Alex Kiernan (4):
u-boot: Remove duplicate inherit of cml1
u-boot: Add savedefconfig task
rust: update 1.63.0 -> 1.64.0
cargo_common.bbclass: Fix typos
Alexander Kanavin (40):
rust-target-config: match riscv target names with what rust expects
rust: install rustfmt for riscv32 as well
unfs3: correct upstream version check
gnu-config: update to latest revision
llvm: update 14.0.6 -> 15.0.1
grep: update 3.7 -> 3.8
hdparm: update 9.64 -> 9.65
stress-ng: update 0.14.03 -> 0.14.06
vulkan: update 1.3.216.0 -> 1.3.224.1
wayland-utils: update 1.0.0 -> 1.1.0
libxft: update 2.3.4 -> 2.3.6
pinentry: update 1.2.0 -> 1.2.1
ovmf: upgrade edk2-stable202205 -> edk2-stable202208
cmake: update 3.24.0 -> 3.24.2
jquery: upgrade 3.6.0 -> 3.6.1
python3-dbus: upgrade 1.2.18 -> 1.3.2
python3-hatch-fancy-pypi-readme: add a recipe
python3-jsonschema: upgrade 4.9.1 -> 4.16.0
shadow: update 4.12.1 -> 4.12.3
lttng-modules: upgrade 2.13.4 -> 2.13.5
libsoup: upgrade 3.0.7 -> 3.2.0
libxslt: upgrade 1.1.35 -> 1.1.37
quilt: backport a patch to address grep 3.8 failures
python3: update 3.10.6 -> 3.11.0
cargo-update-recipe-crates.bbclass: add a class to generate SRC_URI crate lists from Cargo.lock
python3-bcrypt: convert to use cargo-update-recipe-crates class.
python3-cryptography: convert to cargo-update-recipe-crates class
groff: submit patches upstream
tcl: correct patch status
tcl: correct upstream version check
lttng-tools: submit determinism.patch upstream
cmake: drop qt4 patches
kea: submit patch upstream
argp-standalone: replace with a maintained fork
ovmf: correct patches status
go: submit patch upstream
libffi: submit patch upstream
go: update 1.19 -> 1.19.2
rust-common.bbclass: use built-in rust targets for -native builds
rust: submit a rewritten version of crossbeam_atomic.patch upstream
Andrew Geissler (1):
go: add support to build on ppc64le
Bartosz Golaszewski (1):
bluez5: add dbus to RDEPENDS
Bernhard Rosenkränzer (1):
cmake-native: Fix host tool contamination
Bruce Ashfield (3):
kern-tools: fix relative path processing
linux-yocto/5.19: update to v5.19.14
linux-yocto/5.15: update to v5.15.72
Changhyeok Bae (2):
ethtool: upgrade 5.19 -> 6.0
iproute2: upgrade 5.19.0 -> 6.0.0
Chen Qi (1):
openssl: export necessary env vars in SDK
Christian Eggers (1):
linux-firmware: split rtl8761 firmware
Claus Stovgaard (1):
gstreamer1.0-libav: fix errors with ffmpeg 5.x
Ed Tanous (1):
openssl: Upgrade 3.0.5 -> 3.0.7
Etienne Cordonnier (1):
mirrors.bbclass: use shallow tarball for binutils-native
Fabio Estevam (1):
go-mod.bbclass: Remove repeated word
Frank de Brabander (1):
cve-update-db-native: add timeout to urlopen() calls
Hitendra Prajapati (1):
openssl: CVE-2022-3358 Using a Custom Cipher with NID_undef may lead to NULL encryption
Jan-Simon Moeller (1):
buildtools-tarball: export certificates to python and curl
Jeremy Puhlman (1):
qemu-native: Add PACKAGECONFIG option for jack
Johan Korsnes (1):
bitbake: bitbake: user-manual: inform about spaces in :remove
Jon Mason (2):
linux-yocto: add efi entry for machine features
linux-yocto-dev: add qemuarmv5
Jose Quaresma (3):
kernel-yocto: improve fatal error messages of symbol_why.py
oeqa/selftest/archiver: Add multiconfig test for shared recipes
archiver: avoid using machine variable as it breaks multiconfig
Joshua Watt (3):
runqemu: Fix gl-es argument from causing other arguments to be ignored
qemu-helper-native: Re-write bridge helper as C program
runqemu: Do not perturb script environment
Justin Bronder (1):
bitbake: asyncrpc: serv: correct closed client socket detection
Kai Kang (1):
mesa: only apply patch to fix ALWAYS_INLINE for native
Keiya Nobuta (2):
gnutls: Unified package names to lower-case
create-spdx: Remove ";name=..." for downloadLocation
Khem Raj (3):
perf: Depend on native setuptools3
musl: Upgrade to latest master
mesa: Add native patch via a variable
Lee Chee Yang (2):
migration-guides/release-notes-4.1.rst: update Repositories / Downloads
migration-guides/release-notes-4.1.rst: update Repositories / Downloads
Leon Anavi (1):
python3-manifest.json: Move urllib to netclient
Liam Beguin (1):
meson: make wrapper options sub-command specific
Luca Boccassi (1):
systemd: add systemd-creds and systemd-cryptenroll to systemd-extra-utils
Marek Vasut (1):
bluez5: Point hciattach bcm43xx firmware search path to /lib/firmware
Mark Asselstine (2):
bitbake: tests: bb.tests.fetch.URLHandle: add 2 new tests
bitbake: bitbake: bitbake-layers: checkout layer(s) branch when clone exists
Mark Hatle (2):
insane.bbclass: Allow hashlib version that only accepts on parameter
bitbake: utils/ply: Update md5 to better report errors with hashlib
Markus Volk (2):
wayland-protocols: upgrade 1.26 -> 1.27
mesa: update 22.2.0 -> 22.2.2
Martin Jansa (3):
vulkan-samples: add lfs=0 to SRC_URI to avoid git smudge errors in do_unpack
externalsrc.bbclass: fix git repo detection
cargo-update-recipe-crates: small improvements
Maxim Uvarov (2):
wic: add UEFI kernel as UEFI stub
wic: bootimg-efi: implement --include-path
Michael Opdenacker (11):
manuals: updates for building on Windows (WSL 2)
ref-manual: classes.rst: add links to all references to a class
poky.conf: remove Ubuntu 21.10
bitbake: doc: bitbake-user-manual: expand description of BB_PRESSURE_MAX variables
bitbake: bitbake-user-manual: details about variable flags starting with underscore
Documentation/README: formalize guidelines for external link syntax
manuals: replace "_" by "__" in external links
manuals: stop referring to the meta-openembedded repo from GitHub
manuals: add missing references to SDKMACHINE and SDK_ARCH
manuals: use references to the "Build Directory" term
create-spdx.bbclass: remove unused SPDX_INCLUDE_PACKAGED
Mikko Rapeli (6):
os-release: replace DISTRO_CODENAME with VERSION_CODENAME
os-release: add HOMEPAGE and link to documentation
ref-manual: variables.rst: add documentation for CVE_VERSION
ref-manual: classes.rst: improve documentation for cve-check.bbclass
dev-manual: common-tasks.rst: add regular updates and CVE scans to security best practices
dev-manual: common-tasks.rst: refactor and improve "Checking for Vulnerabilities" section
Ming Liu (1):
dropbear: add pam to PACKAGECONFIG
Mingli Yu (1):
grub: disable build on armv7ve/a with hardfp
Oliver Lang (2):
bitbake: cooker: fix a typo
bitbake: runqueue: fix a typo
Pablo Saavedra Rodi?o (1):
weston: update 10.0.2 -> 11.0.0
Paul Eggleton (2):
install-buildtools: support buildtools-make-tarball and update to 4.1
ref-manual: add info on buildtools-make-tarball
Peter Bergin (1):
gptfdisk: remove warning message from target system
Peter Kjellerstedt (3):
gcc: Allow -Wno-error=poison-system-directories to take effect
base-passwd: Update to 3.6.1
externalsrc.bbclass: Remove a trailing slash from ${B}
Qiu, Zheng (2):
tiff: fix a typo for CVE-2022-2953.patch
valgrind: update to 3.20.0
Quentin Schulz (1):
docs: add support for langdale (4.1) release
Richard Purdie (4):
openssl: Fix SSL_CERT_FILE to match ca-certs location
bitbake: tests/fetch: Allow handling of a file:// url within a submodule
patchelf: upgrade 0.15.0 -> 0.16.1
lttng-modules: upgrade 2.13.5 -> 2.13.7
Robert Joslyn (1):
curl: Update 7.85.0 to 7.86.0
Ross Burton (26):
populate_sdk_base: ensure ptest-pkgs pulls in ptest-runner
scripts/oe-check-sstate: cleanup
scripts/oe-check-sstate: force build to run for all targets, specifically populate_sysroot
externalsrc: move back to classes
opkg-utils: use a git clone, not a dynamic snapshot
oe/packagemanager/rpm: don't leak file objects
zlib: use .gz archive and set a PREMIRROR
glib-2.0: fix rare GFileInfo test case failure
lighttpd: fix CVE-2022-41556
acpid: upgrade 2.0.33 -> 2.0.34
python3-hatchling: upgrade 1.9.0 -> 1.10.0
pango: upgrade 1.50.9 -> 1.50.10
piglit: upgrade to latest revision
lsof: upgrade 4.95.0 -> 4.96.3
zlib: do out-of-tree builds
zlib: upgrade 1.2.12 -> 1.2.13
libx11: apply the fix for CVE-2022-3554
xserver-xorg: ignore CVE-2022-3553 as it is XQuartz-specific
xserver-xorg: backport fixes for CVE-2022-3550 and CVE-2022-3551
tiff: fix a number of CVEs
qemu: backport the fix for CVE-2022-3165
bitbake: fetch2/git: don't set core.fsyncobjectfiles=0
sanity: check for GNU tar specifically
expat: upgrade to 2.5.0
oeqa/target/ssh: add ignore_status argument to run()
oeqa/runtime/dnf: rewrite test_dnf_installroot_usrmerge
Sakib Sajal (1):
go: update 1.19.2 -> 1.19.3
Sean Anderson (6):
uboot-sign: Fix using wrong KEY_REQ_ARGS
kernel: Clear SYSROOT_DIRS instead of replacing sysroot_stage_all
kernel-fitimage: Use KERNEL_OUTPUT_DIR where appropriate
uboot-sign: Use bitbake variables directly
uboot-sign: Split off kernel-fitimage variables
u-boot: Rework signing to remove interdependencies
Sergei Zhmylev (2):
wic: implement binary repeatable disk identifiers
wic: honor the SOURCE_DATE_EPOCH in case of updated fstab
Teoh Jay Shen (1):
vim: Upgrade 9.0.0598 -> 9.0.0614
Thomas Perrot (2):
psplash: add psplash-default in rdepends
xserver-xorg: move some recommended dependencies in required
Tim Orling (23):
python3-cryptography: upgrade 37.0.4 -> 38.0.1
python3-cryptography-vectors: upgrade 37.0.4 -> 38.0.1
python3-certifi: upgrade 2022.9.14 -> 2022.9.24
python3-hypothesis: upgrade 6.54.5 -> 6.56.1
python3-pyopenssl: upgrade 22.0.0 -> 22.1.0
python3-bcrypt: upgrade 3.2.2 -> 4.0.0
python3-sphinx: upgrade 5.1.1 -> 5.2.3
python3-setuptools-rust: upgrade 1.5.1 -> 1.5.2
python3-iso8601: upgrade 1.0.2 -> 1.1.0
python3-poetry-core: upgrade 1.0.8 -> 1.3.2
git: upgrade 2.37.3 -> 2.38.1
vim: upgrade 9.0.0614 -> 9.0.0820
python3-mako: upgrade 1.2.2 -> 1.2.3
python3-bcrypt: upgrade 4.0.0 -> 4.0.1
python3-cryptography{-vectors}: 38.0.1 -> 38.0.3
python3-psutil: upgrade 5.9.2 -> 5.9.3
python3-pytest: upgrade 7.1.3 -> 7.2.0
python3-pytest-subtests: upgrade 0.8.0 -> 0.9.0
python3-hypothesis: upgrade 6.56.1 -> 6.56.4
python3-more-itertools: upgrade 8.14.0 -> 9.0.0
python3-pytz: upgrade 2022.4 -> 2022.6
python3-zipp: upgrade 3.9.0 -> 3.10.0
python3-sphinx: upgrade 5.2.3 -> 5.3.0
Vincent Davis Jr (1):
linux-firmware: package amdgpu firmware
Vyacheslav Yurkov (1):
overlayfs: Allow not used mount points
Xiangyu Chen (1):
linux-yocto-dev: add qemuarm64
Yan Xinkuan (1):
bc: Add ptest.
ciarancourtney (1):
wic: swap partitions are not added to fstab
wangmy (32):
init-system-helpers: upgrade 1.64 -> 1.65.2
meson: upgrade 0.63.2 -> 0.63.3
mtools: upgrade 4.0.40 -> 4.0.41
dbus: upgrade 1.14.0 -> 1.14.4
ifupdown: upgrade 0.8.37 -> 0.8.39
openssh: upgrade 9.0p1 -> 9.1p1
python3-hatchling: upgrade 1.10.0 -> 1.11.0
u-boot: upgrade 2022.07 -> 2022.10
python3-git: upgrade 3.1.27 -> 3.1.28
python3-importlib-metadata: upgrade 4.12.0 -> 5.0.0
gnutls: upgrade 3.7.7 -> 3.7.8
gsettings-desktop-schemas: upgrade 42.0 -> 43.0
harfbuzz: upgrade 5.1.0 -> 5.3.0
libcap: upgrade 2.65 -> 2.66
libical: upgrade 3.0.14 -> 3.0.15
libva: upgrade 2.15.0 -> 2.16.0
libva-utils: upgrade 2.15.0 -> 2.16.0
powertop: upgrade 2.14 -> 2.15
numactl: upgrade 2.0.15 -> 2.0.16
python3-pytz: upgrade 2022.2.1 -> 2022.4
python3-zipp: upgrade 3.8.1 -> 3.9.0
repo: upgrade 2.29.2 -> 2.29.3
sqlite3: upgrade 3.39.3 -> 3.39.4
wpebackend-fdo: upgrade 1.12.1 -> 1.14.0
xkeyboard-config: upgrade 2.36 -> 2.37
xz: upgrade 5.2.6 -> 5.2.7
libksba: upgrade 1.6.0 -> 1.6.2
libsdl2: upgrade 2.24.0 -> 2.24.1
libwpe: upgrade 1.12.3 -> 1.14.0
lttng-ust: upgrade 2.13.4 -> 2.13.5
btrfs-tools: upgrade 5.19.1 -> 6.0
lighttpd: upgrade 1.4.66 -> 1.4.67
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I3322dd0057da9f05bb2ba216fdcda3f569c0493b
Diffstat (limited to 'poky/documentation')
37 files changed, 923 insertions, 770 deletions
diff --git a/poky/documentation/README b/poky/documentation/README index 6333f0496a..c27ed86a33 100644 --- a/poky/documentation/README +++ b/poky/documentation/README @@ -275,6 +275,19 @@ websites. More information can be found here: https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html. +For external links, we use this syntax: +`link text <link URL>`__ + +instead of: +`link text <link URL>`_ + +Both syntaxes work, but the latter also creates a "link text" reference +target which could conflict with other references with the same name. +So, only use this variant when you wish to make multiple references +to this link, reusing only the target name. + +See https://stackoverflow.com/questions/27420317/restructured-text-rst-http-links-underscore-vs-use + Anchor (<#link>) links are forbidden as they are not checked by Sphinx during the build and may be broken without knowing about it. diff --git a/poky/documentation/boilerplate.rst b/poky/documentation/boilerplate.rst index 9b64d91efd..ad7bb64956 100644 --- a/poky/documentation/boilerplate.rst +++ b/poky/documentation/boilerplate.rst @@ -8,7 +8,7 @@ Permission is granted to copy, distribute and/or modify this document under the terms of the `Creative Commons Attribution-Share Alike 2.0 UK: England & Wales -<https://creativecommons.org/licenses/by-sa/2.0/uk/>`_ as published by Creative +<https://creativecommons.org/licenses/by-sa/2.0/uk/>`__ as published by Creative Commons. To report any inaccuracies or problems with this (or any other Yocto Project) diff --git a/poky/documentation/brief-yoctoprojectqs/index.rst b/poky/documentation/brief-yoctoprojectqs/index.rst index 7ae0ddc349..d322bbca6b 100644 --- a/poky/documentation/brief-yoctoprojectqs/index.rst +++ b/poky/documentation/brief-yoctoprojectqs/index.rst @@ -25,18 +25,11 @@ build a reference embedded OS called Poky. in the Yocto Project Development Tasks Manual for more information. - - You may use Windows Subsystem For Linux v2 to set up a build host - using Windows 10. - - .. note:: - - The Yocto Project is not compatible with WSLv1, it is - compatible but not officially supported nor validated with - WSLv2, if you still decide to use WSL please upgrade to WSLv2. - - See the :ref:`dev-manual/start:setting up to use windows - subsystem for linux (wslv2)` section in the Yocto Project Development - Tasks Manual for more information. + - You may use version 2 of Windows Subsystem For Linux (WSL 2) to set + up a build host using Windows 10 or later, Windows Server 2019 or later. + See the :ref:`dev-manual/start:setting up to use windows subsystem for + linux (wsl 2)` section in the Yocto Project Development Tasks Manual + for more information. If you want more conceptual or background information on the Yocto Project, see the :doc:`/overview-manual/index`. @@ -231,13 +224,13 @@ an entire Linux distribution, including the toolchain, from source. Among other things, the script creates the :term:`Build Directory`, which is ``build`` in this case and is located in the :term:`Source Directory`. After - the script runs, your current working directory is set to the Build - Directory. Later, when the build completes, the Build Directory contains all the - files created during the build. + the script runs, your current working directory is set to the + :term:`Build Directory`. Later, when the build completes, the + :term:`Build Directory` contains all the files created during the build. #. **Examine Your Local Configuration File:** When you set up the build environment, a local configuration file named ``local.conf`` becomes - available in a ``conf`` subdirectory of the Build Directory. For this + available in a ``conf`` subdirectory of the :term:`Build Directory`. For this example, the defaults are set to build for a ``qemux86`` target, which is suitable for emulation. The package manager used is set to the RPM package manager. @@ -352,9 +345,7 @@ Follow these steps to add a hardware layer: #. **Add Your Layer to the Layer Configuration File:** Before you can use a layer during a build, you must add it to your ``bblayers.conf`` - file, which is found in the - :term:`Build Directory` ``conf`` - directory. + file, which is found in the :term:`Build Directory` ``conf`` directory. Use the ``bitbake-layers add-layer`` command to add the layer to the configuration file: diff --git a/poky/documentation/bsp-guide/bsp.rst b/poky/documentation/bsp-guide/bsp.rst index 7e17b42886..efdaf80f63 100644 --- a/poky/documentation/bsp-guide/bsp.rst +++ b/poky/documentation/bsp-guide/bsp.rst @@ -109,8 +109,7 @@ them to the "Dependencies" section. Some layers function as a layer to hold other BSP layers. These layers are known as ":term:`container layers <Container Layer>`". An example of -this type of layer is OpenEmbedded's -`meta-openembedded <https://github.com/openembedded/meta-openembedded>`__ +this type of layer is OpenEmbedded's :oe_git:`meta-openbedded </meta-openembedded>` layer. The ``meta-openembedded`` layer contains many ``meta-*`` layers. In cases like this, you need to include the names of the actual layers you want to work with, such as:: diff --git a/poky/documentation/dev-manual/common-tasks.rst b/poky/documentation/dev-manual/common-tasks.rst index 53e7686633..c747c0deac 100644 --- a/poky/documentation/dev-manual/common-tasks.rst +++ b/poky/documentation/dev-manual/common-tasks.rst @@ -418,10 +418,10 @@ Enabling Your Layer Before the OpenEmbedded build system can use your new layer, you need to enable it. To enable your layer, simply add your layer's path to the :term:`BBLAYERS` variable in your ``conf/bblayers.conf`` file, which is -found in the :term:`Build Directory`. -The following example shows how to enable your new -``meta-mylayer`` layer (note how your new layer exists outside of -the official ``poky`` repository which you would have checked out earlier):: +found in the :term:`Build Directory`. The following example shows how to +enable your new ``meta-mylayer`` layer (note how your new layer exists +outside of the official ``poky`` repository which you would have checked +out earlier):: # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly @@ -969,8 +969,7 @@ high-level image features by using the variables. Although the functions for both variables are nearly equivalent, best practices dictate using :term:`IMAGE_FEATURES` from within a recipe and using :term:`EXTRA_IMAGE_FEATURES` from within your -``local.conf`` file, which is found in the -:term:`Build Directory`. +``local.conf`` file, which is found in the :term:`Build Directory`. To understand how these features work, the best reference is :ref:`meta/classes-recipe/image.bbclass <ref-classes-image>`. @@ -1206,11 +1205,10 @@ application that builds using Autotools. Creating the base recipe using ``recipetool`` results in a recipe that has the pre-build dependencies, license requirements, and checksums configured. -To run the tool, you just need to be in your -:term:`Build Directory` and have sourced the -build environment setup script (i.e. -:ref:`structure-core-script`). -To get help on the tool, use the following command:: +To run the tool, you just need to be in your :term:`Build Directory` and +have sourced the build environment setup script (i.e. +:ref:`structure-core-script`). To get help on the tool, use the following +command:: $ recipetool -h NOTE: Starting bitbake server... @@ -1342,8 +1340,7 @@ using BitBake to process the recipe multiple times in order to progressively discover and add information to the recipe file. Assuming you have sourced the build environment setup script (i.e. -:ref:`structure-core-script`) and you are in -the :term:`Build Directory`, use +:ref:`structure-core-script`) and you are in the :term:`Build Directory`, use BitBake to process your recipe. All you need to provide is the ``basename`` of the recipe as described in the previous section:: @@ -1362,7 +1359,7 @@ is to have BitBake return it by running the following:: $ bitbake -e basename | grep ^WORKDIR= As an example, assume a Source Directory -top-level folder named ``poky``, a default Build Directory at +top-level folder named ``poky``, a default :term:`Build Directory` at ``poky/build``, and a ``qemux86-poky-linux`` machine target system. Furthermore, suppose your recipe is named ``foo_1.3.0.bb``. In this case, the work directory the build system uses to build the package @@ -3017,15 +3014,14 @@ The following steps describe how to set up the AUH utility: AUH is not part of the :term:`OpenEmbedded-Core (OE-Core)` or :term:`Poky` repositories. -4. *Create a Dedicated Build Directory:* Run the - :ref:`structure-core-script` - script to create a fresh build directory that you use exclusively for - running the AUH utility:: +4. *Create a Dedicated Build Directory:* Run the :ref:`structure-core-script` + script to create a fresh :term:`Build Directory` that you use exclusively + for running the AUH utility:: $ cd poky $ source oe-init-build-env your_AUH_build_directory - Re-using an existing build directory and its configurations is not + Re-using an existing :term:`Build Directory` and its configurations is not recommended as existing settings could cause AUH to fail or behave undesirably. @@ -3045,7 +3041,7 @@ The following steps describe how to set up the AUH utility: With this configuration and a successful upgrade, a build history "diff" file appears in the ``upgrade-helper/work/recipe/buildhistory-diff.txt`` file found in - your build directory. + your :term:`Build Directory`. - If you want to enable testing through the :ref:`testimage <ref-classes-testimage>` @@ -3070,7 +3066,7 @@ The following steps describe how to set up the AUH utility: 7. *Create and Edit an AUH Configuration File:* You need to have the ``upgrade-helper/upgrade-helper.conf`` configuration file in your - build directory. You can find a sample configuration file in the + :term:`Build Directory`. You can find a sample configuration file in the :yocto_git:`AUH source repository </auto-upgrade-helper/tree/>`. Read through the sample file and make configurations as needed. For @@ -3118,7 +3114,7 @@ This next set of examples describes how to use the AUH: $ upgrade-helper.py -e all Once you have run the AUH utility, you can find the results in the AUH -build directory:: +:term:`Build Directory`:: ${BUILDDIR}/upgrade-helper/timestamp @@ -3179,8 +3175,7 @@ example, assume that the layer has been cloned into following area:: /home/scottrif/meta-openembedded -The following command from your -:term:`Build Directory` adds the layer to +The following command from your :term:`Build Directory` adds the layer to your build configuration (i.e. ``${BUILDDIR}/conf/bblayers.conf``):: $ bitbake-layers add-layer /home/scottrif/meta-openembedded/meta-oe @@ -3341,16 +3336,14 @@ source code used by recipes to build packages. For example, suppose you are developing a patch and you need to experiment a bit to figure out your solution. After you have initially built the package, you can iteratively tweak the source code, which is located in the -:term:`Build Directory`, and then you can -force a re-compile and quickly test your altered code. Once you settle -on a solution, you can then preserve your changes in the form of -patches. +:term:`Build Directory`, and then you can force a re-compile and quickly +test your altered code. Once you settle on a solution, you can then preserve +your changes in the form of patches. During a build, the unpacked temporary source code used by recipes to -build packages is available in the Build Directory as defined by the -:term:`S` variable. Below is the default -value for the :term:`S` variable as defined in the -``meta/conf/bitbake.conf`` configuration file in the +build packages is available in the :term:`Build Directory` as defined by the +:term:`S` variable. Below is the default value for the :term:`S` variable as +defined in the ``meta/conf/bitbake.conf`` configuration file in the :term:`Source Directory`:: S = "${WORKDIR}/${BP}" @@ -3392,7 +3385,7 @@ The actual directory depends on several things: - :term:`PR`: The recipe revision. As an example, assume a Source Directory top-level folder named -``poky``, a default Build Directory at ``poky/build``, and a +``poky``, a default :term:`Build Directory` at ``poky/build``, and a ``qemux86-poky-linux`` machine target system. Furthermore, suppose your recipe is named ``foo_1.3.0.bb``. In this case, the work directory the build system uses to build the package would be as follows:: @@ -3420,8 +3413,7 @@ form of a patch all using Quilt. Follow these general steps: 1. *Find the Source Code:* Temporary source code used by the - OpenEmbedded build system is kept in the - :term:`Build Directory`. See the + OpenEmbedded build system is kept in the :term:`Build Directory`. See the ":ref:`dev-manual/common-tasks:finding temporary source code`" section to learn how to locate the directory that has the temporary source code for a particular package. @@ -3649,10 +3641,10 @@ build host running Linux. :doc:`/brief-yoctoprojectqs/index` document. The build process creates an entire Linux distribution from source and -places it in your :term:`Build Directory` under -``tmp/deploy/images``. For detailed information on the build process -using BitBake, see the ":ref:`overview-manual/concepts:images`" section in the -Yocto Project Overview and Concepts Manual. +places it in your :term:`Build Directory` under ``tmp/deploy/images``. For +detailed information on the build process using BitBake, see the +":ref:`overview-manual/concepts:images`" section in the Yocto Project Overview +and Concepts Manual. The following figure and list overviews the build process: @@ -3672,25 +3664,23 @@ The following figure and list overviews the build process: When you use the initialization script, the OpenEmbedded build system uses ``build`` as the default :term:`Build Directory` in your current work directory. You can use a `build_dir` argument with the script to - specify a different build directory. + specify a different :term:`Build Directory`. .. note:: - A common practice is to use a different Build Directory for + A common practice is to use a different :term:`Build Directory` for different targets; for example, ``~/build/x86`` for a ``qemux86`` target, and ``~/build/arm`` for a ``qemuarm`` target. In any - event, it's typically cleaner to locate the build directory + event, it's typically cleaner to locate the :term:`Build Directory` somewhere outside of your source directory. 3. *Make Sure Your* ``local.conf`` *File is Correct*: Ensure the - ``conf/local.conf`` configuration file, which is found in the Build - Directory, is set up how you want it. This file defines many aspects - of the build environment including the target machine architecture + ``conf/local.conf`` configuration file, which is found in the + :term:`Build Directory`, is set up how you want it. This file defines many + aspects of the build environment including the target machine architecture through the :term:`MACHINE` variable, the packaging format used during - the build - (:term:`PACKAGE_CLASSES`), - and a centralized tarball download directory through the - :term:`DL_DIR` variable. + the build (:term:`PACKAGE_CLASSES`), and a centralized tarball download + directory through the :term:`DL_DIR` variable. 4. *Build the Image:* Build the image using the ``bitbake`` command:: @@ -3718,7 +3708,7 @@ The following figure and list overviews the build process: Once an image has been built, it often needs to be installed. The images and kernels built by the OpenEmbedded build system are placed in the - Build Directory in ``tmp/deploy/images``. For information on how to + :term:`Build Directory` in ``tmp/deploy/images``. For information on how to run pre-built images such as ``qemux86`` and ``qemuarm``, see the :doc:`/sdk-manual/index` manual. For information about how to install these images, see the documentation @@ -3772,7 +3762,7 @@ Follow these steps to set up and execute multiple configuration builds: TMPDIR = "${TOPDIR}/tmpmultix86" The location for these multiconfig configuration files is specific. - They must reside in the current build directory in a sub-directory of + They must reside in the current :term:`Build Directory` in a sub-directory of ``conf`` named ``multiconfig`` or within a layer's ``conf`` directory under a directory named ``multiconfig``. Following is an example that defines two configuration files for the "x86" and "arm" multiconfigs: @@ -4275,15 +4265,13 @@ If build speed and package feed maintenance are considerations, you should consider the points in this section that can help you optimize your tunings to best consider build times and package feed maintenance. -- *Share the Build Directory:* If at all possible, share the - :term:`TMPDIR` across builds. The - Yocto Project supports switching between different - :term:`MACHINE` values in the same - :term:`TMPDIR`. This practice is well supported and regularly used by - developers when building for multiple machines. When you use the same - :term:`TMPDIR` for multiple machine builds, the OpenEmbedded build system - can reuse the existing native and often cross-recipes for multiple - machines. Thus, build time decreases. +- *Share the :term:`Build Directory`:* If at all possible, share the + :term:`TMPDIR` across builds. The Yocto Project supports switching between + different :term:`MACHINE` values in the same :term:`TMPDIR`. This practice + is well supported and regularly used by developers when building for + multiple machines. When you use the same :term:`TMPDIR` for multiple + machine builds, the OpenEmbedded build system can reuse the existing native + and often cross-recipes for multiple machines. Thus, build time decreases. .. note:: @@ -4399,10 +4387,10 @@ your tunings to best consider build times and package feed maintenance. Building Software from an External Source ----------------------------------------- -By default, the OpenEmbedded build system uses the -:term:`Build Directory` when building source -code. The build process involves fetching the source files, unpacking -them, and then patching them if necessary before the build takes place. +By default, the OpenEmbedded build system uses the :term:`Build Directory` +when building source code. The build process involves fetching the source +files, unpacking them, and then patching them if necessary before the build +takes place. There are situations where you might want to build software from source files that are external to and thus outside of the OpenEmbedded build @@ -4519,9 +4507,8 @@ directory: from your "own-mirror" are used. 2. *Start With a Clean Build:* You can start with a clean build by - removing the - ``${``\ :term:`TMPDIR`\ ``}`` - directory or using a new :term:`Build Directory`. + removing the ``${``\ :term:`TMPDIR`\ ``}`` directory or using a new + :term:`Build Directory`. 3. *Build Your Target:* Use BitBake to build your target:: @@ -4622,8 +4609,7 @@ Following are additional factors that can affect build speed: the benefits are limited due to the compiler using ``-pipe``. The build system goes to some lengths to avoid ``sync()`` calls into the file system on the principle that if there was a significant failure, - the :term:`Build Directory` - contents could easily be rebuilt. + the :term:`Build Directory` contents could easily be rebuilt. - Inheriting the :ref:`rm_work <ref-classes-rm-work>` class: @@ -4820,8 +4806,7 @@ Using Multilib After you have set up the recipes, you need to define the actual combination of multiple libraries you want to build. You accomplish this through your ``local.conf`` configuration file in the -:term:`Build Directory`. An example -configuration would be as follows:: +:term:`Build Directory`. An example configuration would be as follows:: MACHINE = "qemux86-64" require conf/multilib.conf @@ -4871,10 +4856,9 @@ Here are the implementation details for the RPM Package Management System: - A unique architecture is defined for the Multilib packages, along with creating a unique deploy folder under ``tmp/deploy/rpm`` in the - :term:`Build Directory`. For - example, consider ``lib32`` in a ``qemux86-64`` image. The possible - architectures in the system are "all", "qemux86_64", - "lib32:qemux86_64", and "lib32:x86". + :term:`Build Directory`. For example, consider ``lib32`` in a + ``qemux86-64`` image. The possible architectures in the system are "all", + "qemux86_64", "lib32:qemux86_64", and "lib32:x86". - The ``${MLPREFIX}`` variable is stripped from ``${PN}`` during RPM packaging. The naming for a normal RPM package and a Multilib RPM @@ -5460,8 +5444,7 @@ system needs to meet the following requirements: your development host system. - You must have sourced the build environment setup script (i.e. - :ref:`structure-core-script`) found in the - :term:`Build Directory`. + :ref:`structure-core-script`) found in the :term:`Build Directory`. - You need to have the build artifacts already available, which typically means that you must have already created an image using the @@ -5569,11 +5552,10 @@ Raw Mode Running Wic in raw mode allows you to specify all the partitions through the ``wic`` command line. The primary use for raw mode is if you have -built your kernel outside of the Yocto Project -:term:`Build Directory`. In other words, you -can point to arbitrary kernel, root filesystem locations, and so forth. -Contrast this behavior with cooked mode where Wic looks in the Build -Directory (e.g. ``tmp/deploy/images/``\ machine). +built your kernel outside of the Yocto Project :term:`Build Directory`. +In other words, you can point to arbitrary kernel, root filesystem locations, +and so forth. Contrast this behavior with cooked mode where Wic looks in the +:term:`Build Directory` (e.g. ``tmp/deploy/images/``\ machine). The general form of the ``wic`` command in raw mode is:: @@ -5626,11 +5608,11 @@ The general form of the ``wic`` command in raw mode is:: Cooked Mode ~~~~~~~~~~~ -Running Wic in cooked mode leverages off artifacts in the Build -Directory. In other words, you do not have to specify kernel or root -filesystem locations as part of the command. All you need to provide is +Running Wic in cooked mode leverages off artifacts in the +:term:`Build Directory`. In other words, you do not have to specify kernel or +root filesystem locations as part of the command. All you need to provide is a kickstart file and the name of the image from which to use artifacts -by using the "-e" option. Wic looks in the Build Directory (e.g. +by using the "-e" option. Wic looks in the :term:`Build Directory` (e.g. ``tmp/deploy/images/``\ machine) for artifacts. The general form of the ``wic`` command using Cooked Mode is as follows:: @@ -5878,9 +5860,9 @@ and kickstart file information. You should always verify the details provided in the output to make sure that the image was indeed created exactly as expected. -Continuing with the example, you can now write the image from the Build -Directory onto a USB stick, or whatever media for which you built your -image, and boot from the media. You can write the image by using +Continuing with the example, you can now write the image from the +:term:`Build Directory` onto a USB stick, or whatever media for which you +built your image, and boot from the media. You can write the image by using ``bmaptool`` or ``dd``:: $ oe-run-native bmap-tools-native bmaptool copy mkefidisk-201804191017-sda.direct /dev/sdX @@ -6152,7 +6134,7 @@ any type of image. Use these steps to flash an image using Bmaptool: 3. *Flash the Device:* Flash the device with the image by using Bmaptool depending on your particular setup. The following commands assume the - image resides in the Build Directory's ``deploy/images/`` area: + image resides in the :term:`Build Directory`'s ``deploy/images/`` area: - If you have write access to the media, use this command form:: @@ -6231,6 +6213,13 @@ more secure: vulnerabilities discovered in the future. This consideration especially applies when your device is network-enabled. +- Regularly scan and apply fixes for CVE security issues affecting + all software components in the product, see ":ref:`dev-manual/common-tasks:checking for vulnerabilities`". + +- Regularly update your version of Poky and OE-Core from their upstream + developers, e.g. to apply updates and security fixes from stable + and LTS branches. + - Ensure you remove or disable debugging functionality before producing the final image. For information on how to do this, see the ":ref:`dev-manual/common-tasks:considerations specific to the openembedded build system`" @@ -6392,11 +6381,9 @@ layer. The following steps provide some more detail: variable from the ``local.conf`` file. The variables you use are not limited to the list in the previous bulleted item. -- *Point to Your distribution configuration file:* In your - ``local.conf`` file in the :term:`Build Directory`, - set your - :term:`DISTRO` variable to point to - your distribution's configuration file. For example, if your +- *Point to Your distribution configuration file:* In your ``local.conf`` + file in the :term:`Build Directory`, set your :term:`DISTRO` variable to + point to your distribution's configuration file. For example, if your distribution's configuration file is named ``mydistro.conf``, then you point to it as follows:: @@ -6431,7 +6418,7 @@ Creating a Custom Template Configuration Directory If you are producing your own customized version of the build system for use by other users, you might want to provide a custom build configuration that includes all the necessary settings and layers (i.e. ``local.conf`` and -``bblayers.conf`` that are created in a new build directory) and a custom +``bblayers.conf`` that are created in a new :term:`Build Directory`) and a custom message that is shown when setting up the build. This can be done by creating one or more template configuration directories in your custom distribution layer. @@ -6445,7 +6432,7 @@ This can be done by using ``bitbake-layers save-build-conf``:: You can try out the configuration with TEMPLATECONF=/srv/work/alex/meta-alex/conf/templates/test-1 . /srv/work/alex/poky/oe-init-build-env build-try-test-1 -The above command takes the config files from the currently active build directory under ``conf``, +The above command takes the config files from the currently active :term:`Build Directory` under ``conf``, replaces site-specific paths in ``bblayers.conf`` with ``##OECORE##``-relative paths, and copies the config files into a specified layer under a specified template name. @@ -6677,10 +6664,9 @@ generated are just "self consistent". The build system adds and removes packages and there are no guarantees about upgrade paths but images will be consistent and correct with the latest changes. -The simplest form for a PR Service is for a single host -development system that builds the package feed (building system). For -this scenario, you can enable a local PR Service by setting -:term:`PRSERV_HOST` in your +The simplest form for a PR Service is for a single host development system +that builds the package feed (building system). For this scenario, you can +enable a local PR Service by setting :term:`PRSERV_HOST` in your ``local.conf`` file in the :term:`Build Directory`:: PRSERV_HOST = "localhost:0" @@ -7036,7 +7022,7 @@ machine does not necessarily have to be the package server. The build machine could push its artifacts to another machine that acts as the server (e.g. Internet-facing). In fact, doing so is advantageous for a production environment as getting the packages away from the development -system's build directory prevents accidental overwrites. +system's :term:`Build Directory` prevents accidental overwrites. A simple build that targets just one device produces more than one package database. In other words, the packages produced by a build are @@ -7068,8 +7054,7 @@ to use. In your configuration, you use the :term:`PACKAGE_CLASSES` variable to specify the format: -1. Open the ``local.conf`` file inside your - :term:`Build Directory` (e.g. +1. Open the ``local.conf`` file inside your :term:`Build Directory` (e.g. ``poky/build/conf/local.conf``). 2. Select the desired package format as follows:: @@ -7155,12 +7140,10 @@ environment, the setup is simple and straight forward. Should you want to use a different server more suited for production (e.g. Apache 2, Lighttpd, or Nginx), take the appropriate steps to do so. -From within the build directory where you have built an image based on -your packaging choice (i.e. the -:term:`PACKAGE_CLASSES` -setting), simply start the server. The following example assumes a build -directory of ``poky/build/tmp/deploy/rpm`` and a :term:`PACKAGE_CLASSES` -setting of "package_rpm":: +From within the :term:`Build Directory` where you have built an image based on +your packaging choice (i.e. the :term:`PACKAGE_CLASSES` setting), simply start +the server. The following example assumes a :term:`Build Directory` of ``poky/build`` +and a :term:`PACKAGE_CLASSES` setting of "package_rpm":: $ cd poky/build/tmp/deploy/rpm $ python3 -m http.server @@ -7432,11 +7415,9 @@ see the :yocto_wiki:`Ptest </Ptest>` wiki page. Adding ptest to Your Build ~~~~~~~~~~~~~~~~~~~~~~~~~~ -To add package testing to your build, add the -:term:`DISTRO_FEATURES` and -:term:`EXTRA_IMAGE_FEATURES` -variables to your ``local.conf`` file, which is found in the -:term:`Build Directory`:: +To add package testing to your build, add the :term:`DISTRO_FEATURES` and +:term:`EXTRA_IMAGE_FEATURES` variables to your ``local.conf`` file, which +is found in the :term:`Build Directory`:: DISTRO_FEATURES:append = " ptest" EXTRA_IMAGE_FEATURES += "ptest-pkgs" @@ -7547,17 +7528,16 @@ NPM packages: - Of the two methods that you can use ``devtool`` to create NPM packages, the registry approach is slightly simpler. However, you might consider the project approach because you do not have to - publish your module in the NPM registry - (`npm-registry <https://docs.npmjs.com/misc/registry>`_), which - is NPM's public registry. + publish your module in the `NPM registry <https://docs.npmjs.com/misc/registry>`__, + which is NPM's public registry. - Be familiar with :doc:`devtool </ref-manual/devtool-reference>`. - The NPM host tools need the native ``nodejs-npm`` package, which is part of the OpenEmbedded environment. You need to get the package by - cloning the https://github.com/openembedded/meta-openembedded - repository out of GitHub. Be sure to add the path to your local copy + cloning the :oe_git:`meta-openembedded </meta-openembedded>` + repository. Be sure to add the path to your local copy to your ``bblayers.conf`` file. - ``devtool`` cannot detect native libraries in module dependencies. @@ -8087,7 +8067,7 @@ image's recipe file via the :term:`IMAGE_FEATURES` variable:: IMAGE_FEATURES += "read-only-rootfs" As an alternative, you can add the same feature -from within your build directory's ``local.conf`` file with the +from within your :term:`Build Directory`'s ``local.conf`` file with the associated :term:`EXTRA_IMAGE_FEATURES` variable, as in:: EXTRA_IMAGE_FEATURES = "read-only-rootfs" @@ -8182,9 +8162,8 @@ Enabling and Disabling Build History ------------------------------------ Build history is disabled by default. To enable it, add the following -:term:`INHERIT` statement and set the -:term:`BUILDHISTORY_COMMIT` -variable to "1" at the end of your ``conf/local.conf`` file found in the +:term:`INHERIT` statement and set the :term:`BUILDHISTORY_COMMIT` variable to +"1" at the end of your ``conf/local.conf`` file found in the :term:`Build Directory`:: INHERIT += "buildhistory" @@ -8207,10 +8186,8 @@ your ``conf/local.conf`` file. Understanding What the Build History Contains --------------------------------------------- -Build history information is kept in -``${``\ :term:`TOPDIR`\ ``}/buildhistory`` -in the Build Directory as defined by the -:term:`BUILDHISTORY_DIR` +Build history information is kept in ``${``\ :term:`TOPDIR`\ ``}/buildhistory`` +in the :term:`Build Directory` as defined by the :term:`BUILDHISTORY_DIR` variable. Here is an example abbreviated listing: .. image:: figures/buildhistory.png @@ -8877,11 +8854,9 @@ Running Tests You can start the tests automatically or manually: -- *Automatically running tests:* To run the tests automatically after - the OpenEmbedded build system successfully creates an image, first - set the - :term:`TESTIMAGE_AUTO` - variable to "1" in your ``local.conf`` file in the +- *Automatically running tests:* To run the tests automatically after the + OpenEmbedded build system successfully creates an image, first set the + :term:`TESTIMAGE_AUTO` variable to "1" in your ``local.conf`` file in the :term:`Build Directory`:: TESTIMAGE_AUTO = "1" @@ -8976,10 +8951,9 @@ following BitBake command form:: $ bitbake image -c testexport -Exporting the tests places them in the -:term:`Build Directory` in -``tmp/testexport/``\ image, which is controlled by the -:term:`TEST_EXPORT_DIR` variable. +Exporting the tests places them in the :term:`Build Directory` in +``tmp/testexport/``\ image, which is controlled by the :term:`TEST_EXPORT_DIR` +variable. You can now run the tests outside of the build environment:: @@ -9206,9 +9180,8 @@ section: - ":ref:`dev-manual/common-tasks:viewing task variable dependencies`" describes how to use the ``bitbake-dumpsig`` command in conjunction with key - subdirectories in the - :term:`Build Directory` to determine - variable dependencies. + subdirectories in the :term:`Build Directory` to determine variable + dependencies. - ":ref:`dev-manual/common-tasks:running specific tasks`" describes how to use several BitBake options (e.g. ``-c``, ``-C``, and ``-f``) @@ -10357,13 +10330,11 @@ Here are some other tips that you might find useful: is also possible to switch out of the splashscreen by switching the virtual console (e.g. Fn+Left or Fn+Right on a Zaurus). -- Removing :term:`TMPDIR` (usually - ``tmp/``, within the - :term:`Build Directory`) can often fix - temporary build issues. Removing :term:`TMPDIR` is usually a relatively - cheap operation, because task output will be cached in - :term:`SSTATE_DIR` (usually - ``sstate-cache/``, which is also in the Build Directory). +- Removing :term:`TMPDIR` (usually ``tmp/``, within the + :term:`Build Directory`) can often fix temporary build issues. Removing + :term:`TMPDIR` is usually a relatively cheap operation, because task output + will be cached in :term:`SSTATE_DIR` (usually ``sstate-cache/``, which is + also in the :term:`Build Directory`). .. note:: @@ -10377,8 +10348,8 @@ Here are some other tips that you might find useful: Using GNU Grep, you can use the following shell function to recursively search through common recipe-related files, skipping - binary files, ``.git`` directories, and the Build Directory (assuming - its name starts with "build"):: + binary files, ``.git`` directories, and the :term:`Build Directory` + (assuming its name starts with "build"):: g() { grep -Ir \ @@ -11276,8 +11247,7 @@ of compliance in mind. One way of doing this (but certainly not the only way) is to release just the source as a tarball. You can do this by adding the following to -the ``local.conf`` file found in the -:term:`Build Directory`:: +the ``local.conf`` file found in the :term:`Build Directory`:: INHERIT += "archiver" ARCHIVER_MODE[src] = "original" @@ -11436,9 +11406,9 @@ this function, you have to follow the following steps: 3. Meta-spdxscanner provides several methods within the bbclass to create spdx files. Please choose one that you want to use and enable the spdx task. You have to - add some config options in ``local.conf`` file in your :term:`Build - Directory`. Here is an example showing how to generate spdx files - during BitBake using the fossology-python.bbclass:: + add some config options in ``local.conf`` file in your :term:`Build Directory`. + Here is an example showing how to generate spdx files during BitBake using the + fossology-python.bbclass:: # Select fossology-python.bbclass. INHERIT += "fossology-python" @@ -11495,8 +11465,8 @@ the license from the fetched source:: Checking for Vulnerabilities ============================ -Vulnerabilities in images -------------------------- +Vulnerabilities in Poky and OE-Core +----------------------------------- The Yocto Project has an infrastructure to track and address unfixed known security vulnerabilities, as tracked by the public @@ -11509,14 +11479,78 @@ for packages in Poky and OE-Core, tracking the evolution of the number of unpatched CVEs and the status of patches. Such information is available for the current development version and for each supported release. -To know which packages are vulnerable to known security vulnerabilities -in the specific image you are building, add the following setting to your -configuration:: +Security is a process, not a product, and thus at any time, a number of security +issues may be impacting Poky and OE-Core. It is up to the maintainers, users, +contributors and anyone interested in the issues to investigate and possibly fix them by +updating software components to newer versions or by applying patches to address them. +It is recommended to work with Poky and OE-Core upstream maintainers and submit +patches to fix them, see ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" for details. + +Vulnerability check at build time +--------------------------------- + +To enable a check for CVE security vulnerabilities using :ref:`cve-check <ref-classes-cve-check>` in the specific image +or target you are building, add the following setting to your configuration:: INHERIT += "cve-check" -This way, at build time, BitBake will warn you about known CVEs -as in the example below:: +The CVE database contains some old incomplete entries which have been +deemed not to impact Poky or OE-Core. These CVE entries can be excluded from the +check using build configuration:: + + include conf/distro/include/cve-extra-exclusions.inc + +With this CVE check enabled, BitBake build will try to map each compiled software component +recipe name and version information to the CVE database and generate recipe and +image specific reports. These reports will contain: + +- metadata about the software component like names and versions + +- metadata about the CVE issue such as description and NVD link + +- for each software component, a list of CVEs which are possibly impacting this version + +- status of each CVE: ``Patched``, ``Unpatched`` or ``Ignored`` + +The status ``Patched`` means that a patch file to address the security issue has been +applied. ``Unpatched`` status means that no patches to address the issue have been +applied and that the issue needs to be investigated. ``Ignored`` means that after +analysis, it has been deemed to ignore the issue as it for example affects +the software component on a different operating system platform. + +After build with CVE check enabled, reports for each compiled source recipe will be +found in ``build/tmp/deploy/cve``. + +For example the CVE check report for the ``flex-native`` recipe looks like:: + + $ cat poky/build/tmp/deploy/cve/flex-native + LAYER: meta + PACKAGE NAME: flex-native + PACKAGE VERSION: 2.6.4 + CVE: CVE-2016-6354 + CVE STATUS: Patched + CVE SUMMARY: Heap-based buffer overflow in the yy_get_next_buffer function in Flex before 2.6.1 might allow context-dependent attackers to cause a denial of service or possibly execute arbitrary code via vectors involving num_to_read. + CVSS v2 BASE SCORE: 7.5 + CVSS v3 BASE SCORE: 9.8 + VECTOR: NETWORK + MORE INFORMATION: https://nvd.nist.gov/vuln/detail/CVE-2016-6354 + + LAYER: meta + PACKAGE NAME: flex-native + PACKAGE VERSION: 2.6.4 + CVE: CVE-2019-6293 + CVE STATUS: Ignored + CVE SUMMARY: An issue was discovered in the function mark_beginning_as_normal in nfa.c in flex 2.6.4. There is a stack exhaustion problem caused by the mark_beginning_as_normal function making recursive calls to itself in certain scenarios involving lots of '*' characters. Remote attackers could leverage this vulnerability to cause a denial-of-service. + CVSS v2 BASE SCORE: 4.3 + CVSS v3 BASE SCORE: 5.5 + VECTOR: NETWORK + MORE INFORMATION: https://nvd.nist.gov/vuln/detail/CVE-2019-6293 + +For images, a summary of all recipes included in the image and their CVEs is also +generated in textual and JSON formats. These ``.cve`` and ``.json`` reports can be found +in the ``tmp/deploy/images`` directory for each compiled image. + +At build time CVE check will also throw warnings about ``Unpatched`` CVEs:: WARNING: flex-2.6.4-r0 do_cve_check: Found unpatched CVE (CVE-2019-6293), for more information check /poky/build/tmp/work/core2-64-poky-linux/flex/2.6.4-r0/temp/cve.log WARNING: libarchive-3.5.1-r0 do_cve_check: Found unpatched CVE (CVE-2021-36976), for more information check /poky/build/tmp/work/core2-64-poky-linux/libarchive/3.5.1-r0/temp/cve.log @@ -11525,21 +11559,46 @@ It is also possible to check the CVE status of individual packages as follows:: bitbake -c cve_check flex libarchive -Note that OpenEmbedded-Core keeps a list of known unfixed CVE issues which can -be ignored. You can pass this list to the check as follows:: +Fixing CVE product name and version mappings +-------------------------------------------- - bitbake -c cve_check libarchive -R conf/distro/include/cve-extra-exclusions.inc +By default, :ref:`cve-check <ref-classes-cve-check>` uses the recipe name :term:`BPN` as CVE +product name when querying the CVE database. If this mapping contains false positives, e.g. +some reported CVEs are not for the software component in question, or false negatives like +some CVEs are not found to impact the recipe when they should, then the problems can be +in the recipe name to CVE product mapping. These mapping issues can be fixed by setting +the :term:`CVE_PRODUCT` variable inside the recipe. This defines the name of software component in the +upstream `NIST CVE database <https://nvd.nist.gov/>`__. -Enabling vulnerabily tracking in recipes ----------------------------------------- +The variable supports using vendor and product names like this:: -The :term:`CVE_PRODUCT` variable defines the name used to match the recipe name -against the name in the upstream `NIST CVE database <https://nvd.nist.gov/>`__. + CVE_PRODUCT = "flex_project:flex" -Editing recipes to fix vulnerabilities --------------------------------------- +In this example from the vendor name used in CVE database is ``flex_project`` and +product is ``flex``. With this setting the ``flex`` recipe only maps to this specific +product and not products from other vendors with same name ``flex``. + +Similary, when the recipe version :term:`PV` is not compatible with software versions used by +the upstream software component releases and the CVE database, these can be fixed using +:term:`CVE_VERSION` variable. + +Note that if the CVE entries in NVD databse contain bugs or have missing or incomplete +information, it is recommended to fix the information there directly instead of working +around the issues for a possibly long time in Poky and OE-Core side recipes. Feedback to +NVD about CVEs entries can be provided through the `NVD contact form <https://nvd.nist.gov/info/contact-form>`__. + +Fixing vulnerabilities in recipes +--------------------------------- + +If a CVE security issue impacts a software component, it can be fixed by updating to a newer +version of the software component or by applying a patch. For Poky and OE-Core master branches, updating +to newer software component release with fixes is the best option, but patches can be applied +if releases are not yet available. -To fix a given known vulnerability, you need to add a patch file to your recipe. Here's +For stable branches, it is preferred to apply patches for the issues. For some software +components minor version updates can also applied if they are backwards compatible. + +Here is an example of fixing CVE security issues with patch files, an example from the :oe_layerindex:`ffmpeg recipe</layerindex/recipe/47350>`:: SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \ @@ -11551,31 +11610,21 @@ an example from the :oe_layerindex:`ffmpeg recipe</layerindex/recipe/47350>`:: file://fix-CVE-2020-22033-CVE-2020-22019.patch \ file://fix-CVE-2021-33815.patch \ -The :ref:`cve-check <ref-classes-cve-check>` class defines two ways of -supplying a patch for a given CVE. The first -way is to use a patch filename that matches the below pattern:: - - cve_file_name_match = re.compile(".*([Cc][Vv][Ee]\-\d{4}\-\d+)") - -As shown in the example above, multiple CVE IDs can appear in a patch filename, -but the :ref:`cve-check <ref-classes-cve-check>` class will only consider -the last CVE ID in the filename as patched. +A good practice is to include the CVE identifier in both patch file name +and inside the patch file commit message use the format:: -The second way to recognize a patched CVE ID is when a line matching the -below pattern is found in any patch file provided by the recipe:: + CVE: CVE-2020-22033 - cve_match = re.compile("CVE:( CVE\-\d{4}\-\d+)+") +CVE checker will then capture this information and change the CVE status to ``Patched`` +in the generated reports. -This allows a single patch file to address multiple CVE IDs at the same time. +If analysis shows that the CVE issue does not impact the recipe due to configuration, platform, +version or other reasons, the CVE can be marked as ``Ignored`` using :term:`CVE_CHECK_IGNORE` variable. +As mentioned previously, if data in the CVE database is wrong, it is recommend to fix those +issues in the CVE database directly. -Of course, another way to fix vulnerabilities is to upgrade to a version -of the package which is not impacted, typically a more recent one. -The NIST database knows which versions are vulnerable and which ones -are not. - -Last but not least, you can choose to ignore vulnerabilities through -the :term:`CVE_CHECK_SKIP_RECIPE` and :term:`CVE_CHECK_IGNORE` -variables. +Recipes can be completely skipped by CVE check by including the recipe name in +the :term:`CVE_CHECK_SKIP_RECIPE` variable. Implementation details ---------------------- @@ -11592,24 +11641,39 @@ file. The found CVE IDs are also considered as patched. Then, the code looks up all the CVE IDs in the NIST database for all the products defined in :term:`CVE_PRODUCT`. Then, for each found CVE: - - If the package name (:term:`PN`) is part of - :term:`CVE_CHECK_SKIP_RECIPE`, it is considered as patched. +- If the package name (:term:`PN`) is part of + :term:`CVE_CHECK_SKIP_RECIPE`, it is considered as ``Patched``. - - If the CVE ID is part of :term:`CVE_CHECK_IGNORE`, it is - considered as patched too. +- If the CVE ID is part of :term:`CVE_CHECK_IGNORE`, it is + set as ``Ignored``. - - If the CVE ID is part of the patched CVE for the recipe, it is - already considered as patched. +- If the CVE ID is part of the patched CVE for the recipe, it is + already considered as ``Patched``. - - Otherwise, the code checks whether the recipe version (:term:`PV`) +- Otherwise, the code checks whether the recipe version (:term:`PV`) is within the range of versions impacted by the CVE. If so, the CVE - is considered as unpatched. + is considered as ``Unpatched``. The CVE database is stored in :term:`DL_DIR` and can be inspected using ``sqlite3`` command as follows:: sqlite3 downloads/CVE_CHECK/nvdcve_1.1.db .dump | grep CVE-2021-37462 +When analyzing CVEs, it is recommended to: + +- study the latest information in `CVE database <https://nvd.nist.gov/vuln/search>`__. + +- check how upstream developers of the software component addressed the issue, e.g. + what patch was applied, which upstream release contains the fix. + +- check what other Linux distributions like `Debian <https://security-tracker.debian.org/tracker/>`__ + did to analyze and address the issue. + +- follow security notices from other Linux distributions. + +- follow public `open source security mailing lists <https://oss-security.openwall.org/wiki/mailing-lists>`__ for + discussions and advance notifications of CVE bugs and software releases with fixes. + Using the Error Reporting Tool ============================== @@ -11637,12 +11701,9 @@ Enabling and Using the Tool --------------------------- By default, the error reporting tool is disabled. You can enable it by -inheriting the -:ref:`report-error <ref-classes-report-error>` +inheriting the :ref:`report-error <ref-classes-report-error>` class by adding the following statement to the end of your -``local.conf`` file in your -:term:`Build Directory`. -:: +``local.conf`` file in your :term:`Build Directory`:: INHERIT += "report-error" diff --git a/poky/documentation/dev-manual/qemu.rst b/poky/documentation/dev-manual/qemu.rst index 9f4bc264a3..5a4a82ce6f 100644 --- a/poky/documentation/dev-manual/qemu.rst +++ b/poky/documentation/dev-manual/qemu.rst @@ -99,8 +99,7 @@ available. Follow these general steps to run QEMU: Here are some additional examples to help illustrate further QEMU: - This example starts QEMU with MACHINE set to "qemux86-64". - Assuming a standard - :term:`Build Directory`, ``runqemu`` + Assuming a standard :term:`Build Directory`, ``runqemu`` automatically finds the ``bzImage-qemux86-64.bin`` image file and the ``core-image-minimal-qemux86-64-20200218002850.rootfs.ext4`` (assuming the current build created a ``core-image-minimal`` @@ -246,11 +245,10 @@ be a problem when QEMU is running with KVM enabled. Specifically, software compiled with a certain CPU feature crashes when run on a CPU under KVM that does not support that feature. To work around this problem, you can override QEMU's runtime CPU setting by changing the -``QB_CPU_KVM`` variable in ``qemuboot.conf`` in the -:term:`Build Directory` ``deploy/image`` -directory. This setting specifies a ``-cpu`` option passed into QEMU in -the ``runqemu`` script. Running ``qemu -cpu help`` returns a list of -available supported CPU types. +``QB_CPU_KVM`` variable in ``qemuboot.conf`` in the :term:`Build Directory` +``deploy/image`` directory. This setting specifies a ``-cpu`` option passed +into QEMU in the ``runqemu`` script. Running ``qemu -cpu help`` returns a +list of available supported CPU types. QEMU Performance ================ diff --git a/poky/documentation/dev-manual/start.rst b/poky/documentation/dev-manual/start.rst index 6816ce5846..f90375471f 100644 --- a/poky/documentation/dev-manual/start.rst +++ b/poky/documentation/dev-manual/start.rst @@ -267,16 +267,16 @@ development using the Yocto Project. Your build host can be a native Linux machine (recommended), it can be a machine (Linux, Mac, or Windows) that uses `CROPS <https://github.com/crops/poky-container>`__, which leverages `Docker Containers <https://www.docker.com/>`__ or it -can be a Windows machine capable of running Windows Subsystem For Linux -v2 (WSL). +can be a Windows machine capable of running version 2 of Windows Subsystem +For Linux (WSL 2). .. note:: - The Yocto Project is not compatible with - `Windows Subsystem for Linux v1 <https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux>`__. - It is compatible but not officially supported nor validated with - WSLv2. If you still decide to use WSL please upgrade to - `WSLv2 <https://docs.microsoft.com/en-us/windows/wsl/install-win10>`__. + The Yocto Project is not compatible with version 1 of + `Windows Subsystem for Linux <https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux>`__. + It is compatible but neither officially supported nor validated with + WSL 2. If you still decide to use WSL please upgrade to + `WSL 2 <https://learn.microsoft.com/en-us/windows/wsl/install>`__. Once your build host is set up to use the Yocto Project, further steps are necessary depending on what you want to accomplish. See the @@ -441,35 +441,36 @@ Kit (eSDK) manual. If you are going to use the Toaster container, see the ":doc:`/toaster-manual/setup-and-use`" section in the Toaster User Manual. -Setting Up to Use Windows Subsystem For Linux (WSLv2) +Setting Up to Use Windows Subsystem For Linux (WSL 2) ----------------------------------------------------- -With `Windows Subsystem for Linux -(WSLv2) <https://docs.microsoft.com/en-us/windows/wsl/wsl2-about>`__, +With `Windows Subsystem for Linux (WSL 2) +<https://learn.microsoft.com/en-us/windows/wsl/>`__, you can create a Yocto Project development environment that allows you to build on Windows. You can set up a Linux distribution inside Windows in which you can develop using the Yocto Project. -Follow these general steps to prepare a Windows machine using WSLv2 as +Follow these general steps to prepare a Windows machine using WSL 2 as your Yocto Project build host: -1. *Make sure your Windows 10 machine is capable of running WSLv2:* - WSLv2 is only available for Windows 10 builds > 18917. To check which - build version you are running, you may open a command prompt on - Windows and execute the command "ver". - :: +1. *Make sure your Windows machine is capable of running WSL 2:* + + While all Windows 11 and Windows Server 2022 builds support WSL 2, + the first versions of Windows 10 and Windows Server 2019 didn't. + Check the minimum build numbers for `Windows 10 + <https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-2---check-requirements-for-running-wsl-2>`__ + and for `Windows Server 2019 + <https://learn.microsoft.com/en-us/windows/wsl/install-on-server>`__. + + To check which build version you are running, you may open a command + prompt on Windows and execute the command "ver":: C:\Users\myuser> ver Microsoft Windows [Version 10.0.19041.153] - If your build is capable of running - WSLv2 you may continue, for more information on this subject or - instructions on how to upgrade to WSLv2 visit `Windows 10 - WSLv2 <https://docs.microsoft.com/en-us/windows/wsl/wsl2-install>`__ - -2. *Install the Linux distribution of your choice inside Windows 10:* - Once you know your version of Windows 10 supports WSLv2, you can +2. *Install the Linux distribution of your choice inside WSL 2:* + Once you know your version of Windows supports WSL 2, you can install the distribution of your choice from the Microsoft Store. Open the Microsoft Store and search for Linux. While there are several Linux distributions available, the assumption is that your @@ -478,31 +479,28 @@ your Yocto Project build host: making your selection, simply click "Get" to download and install the distribution. -3. *Check your Linux distribution is using WSLv2:* Open a Windows +3. *Check which Linux distribution WSL 2 is using:* Open a Windows PowerShell and run:: C:\WINDOWS\system32> wsl -l -v NAME STATE VERSION *Ubuntu Running 2 - Note the version column which says the WSL version - being used by your distribution, on compatible systems, this can be - changed back at any point in time. + Note that WSL 2 supports running as many different Linux distributions + as you want to install. -4. *Optionally Orient Yourself on WSL:* If you are unfamiliar with WSL, - you can learn more here - +4. *Optionally Get Familiar with WSL:* You can learn more on https://docs.microsoft.com/en-us/windows/wsl/wsl2-about. 5. *Launch your WSL Distibution:* From the Windows start menu simply launch your WSL distribution just like any other application. -6. *Optimize your WSLv2 storage often:* Due to the way storage is - handled on WSLv2, the storage space used by the underlying Linux +6. *Optimize your WSL 2 storage often:* Due to the way storage is + handled on WSL 2, the storage space used by the underlying Linux distribution is not reflected immediately, and since BitBake heavily uses storage, after several builds, you may be unaware you are - running out of space. WSLv2 uses a VHDX file for storage, this issue - can be easily avoided by manually optimizing this file often, this - can be done in the following way: + running out of space. As WSL 2 uses a VHDX file for storage, this issue + can be easily avoided by regularly optimizing this file in a manual way: 1. *Find the location of your VHDX file:* @@ -556,14 +554,14 @@ your Yocto Project build host: .. note:: - The current implementation of WSLv2 does not have out-of-the-box + The current implementation of WSL 2 does not have out-of-the-box access to external devices such as those connected through a USB port, but it automatically mounts your ``C:`` drive on ``/mnt/c/`` (and others), which you can use to share deploy artifacts to be later - flashed on hardware through Windows, but your build directory should - not reside inside this mountpoint. + flashed on hardware through Windows, but your :term:`Build Directory` + should not reside inside this mountpoint. -Once you have WSLv2 set up, everything is in place to develop just as if +Once you have WSL 2 set up, everything is in place to develop just as if you were running on a native Linux machine. If you are going to use the Extensible SDK container, see the ":doc:`/sdk-manual/extensible`" Chapter in the Yocto Project Application Development and the Extensible Software Development diff --git a/poky/documentation/kernel-dev/common.rst b/poky/documentation/kernel-dev/common.rst index 0a1819ceae..690f61110b 100644 --- a/poky/documentation/kernel-dev/common.rst +++ b/poky/documentation/kernel-dev/common.rst @@ -66,19 +66,15 @@ section: (i.e. ``poky``) have been cloned using Git and the local repository is named "poky". -2. *Prepare Your local.conf File:* By default, the - :term:`MACHINE` variable is set to - "qemux86-64", which is fine if you are building for the QEMU emulator - in 64-bit mode. However, if you are not, you need to set the +2. *Prepare Your local.conf File:* By default, the :term:`MACHINE` variable + is set to "qemux86-64", which is fine if you are building for the QEMU + emulator in 64-bit mode. However, if you are not, you need to set the :term:`MACHINE` variable appropriately in your ``conf/local.conf`` file - found in the - :term:`Build Directory` (i.e. - ``poky/build`` in this example). + found in the :term:`Build Directory` (i.e. ``poky/build`` in this example). Also, since you are preparing to work on the kernel image, you need - to set the - :term:`MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS` - variable to include kernel modules. + to set the :term:`MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS` variable to include + kernel modules. In this example we wish to build for qemux86 so we must set the :term:`MACHINE` variable to "qemux86" and also add the "kernel-modules". @@ -186,14 +182,11 @@ section: (i.e. ``poky``) have been cloned using Git and the local repository is named "poky". -2. *Prepare Your local.conf File:* By default, the - :term:`MACHINE` variable is set to - "qemux86-64", which is fine if you are building for the QEMU emulator - in 64-bit mode. However, if you are not, you need to set the - :term:`MACHINE` variable appropriately in your ``conf/local.conf`` file - found in the - :term:`Build Directory` (i.e. - ``poky/build`` in this example). +2. *Prepare Your local.conf File:* By default, the :term:`MACHINE` variable is + set to "qemux86-64", which is fine if you are building for the QEMU emulator + in 64-bit mode. However, if you are not, you need to set the :term:`MACHINE` + variable appropriately in your ``conf/local.conf`` file found in the + :term:`Build Directory` (i.e. ``poky/build`` in this example). Also, since you are preparing to work on the kernel image, you need to set the @@ -836,8 +829,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se 8. *Build the Image With Your Modified Kernel:* You can now build an image that includes your kernel patches. Execute the following - command from your - :term:`Build Directory` in the terminal + command from your :term:`Build Directory` in the terminal set up to run BitBake:: $ cd poky/build @@ -1057,9 +1049,8 @@ To use the ``menuconfig`` tool in the Yocto Project development environment, you must do the following: - Because you launch ``menuconfig`` using BitBake, you must be sure to - set up your environment by running the - :ref:`structure-core-script` script found in - the :term:`Build Directory`. + set up your environment by running the :ref:`structure-core-script` script + found in the :term:`Build Directory`. - You must be sure of the state of your build's configuration in the :term:`Source Directory`. @@ -1111,10 +1102,10 @@ can find the option under "Processor Type and Features". To deselect Multi-Processing Support" and enter "N" to clear the asterisk. When you are finished, exit out and save the change. -Saving the selections updates the ``.config`` configuration file. This -is the file that the OpenEmbedded build system uses to configure the -kernel during the build. You can find and examine this file in the Build -Directory in ``tmp/work/``. The actual ``.config`` is located in the +Saving the selections updates the ``.config`` configuration file. This is the +file that the OpenEmbedded build system uses to configure the kernel during +the build. You can find and examine this file in the :term:`Build Directory` +in ``tmp/work/``. The actual ``.config`` is located in the area where the specific kernel is built. For example, if you were building a Linux Yocto kernel based on the ``linux-yocto-4.12`` kernel and you were building a QEMU image targeted for ``x86`` architecture, diff --git a/poky/documentation/kernel-dev/concepts-appx.rst b/poky/documentation/kernel-dev/concepts-appx.rst index 63c5124a57..6a2fe4bb0b 100644 --- a/poky/documentation/kernel-dev/concepts-appx.rst +++ b/poky/documentation/kernel-dev/concepts-appx.rst @@ -319,8 +319,7 @@ image. The following figure shows the temporary file structure created on your host system when you build the kernel using BitBake. This -:term:`Build Directory` contains all the -source files used during the build. +:term:`Build Directory` contains all the source files used during the build. .. image:: figures/kernel-overview-2-generic.png :align: center diff --git a/poky/documentation/kernel-dev/intro.rst b/poky/documentation/kernel-dev/intro.rst index 4ff4dc7d35..267b7e7797 100644 --- a/poky/documentation/kernel-dev/intro.rst +++ b/poky/documentation/kernel-dev/intro.rst @@ -134,7 +134,7 @@ general information and references for further information. 3. *Make Changes to the Kernel Source Code if applicable:* Modifying the kernel does not always mean directly changing source files. However, if you have to do this, you make the changes to the files in the - Yocto's Build Directory if you are using ``devtool``. For more + Yocto's :term:`Build Directory` if you are using ``devtool``. For more information, see the ":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`" section. @@ -155,7 +155,7 @@ general information and references for further information. .. note:: Try to resist the temptation to directly edit an existing ``.config`` - file, which is found in the Build Directory among the source code + file, which is found in the :term:`Build Directory` among the source code used for the build. Doing so, can produce unexpected results when the OpenEmbedded build system regenerates the configuration file. diff --git a/poky/documentation/kernel-dev/maint-appx.rst b/poky/documentation/kernel-dev/maint-appx.rst index d968c856f6..6aa2fb7cf1 100644 --- a/poky/documentation/kernel-dev/maint-appx.rst +++ b/poky/documentation/kernel-dev/maint-appx.rst @@ -229,6 +229,5 @@ This behavior means that all the generated files for a particular machine or BSP are now in the build tree directory. The files include the final ``.config`` file, all the ``.o`` files, the ``.a`` files, and so forth. Since each machine or BSP has its own separate -:term:`Build Directory` in its own separate -branch of the Git repository, you can easily switch between different -builds. +:term:`Build Directory` in its own separate branch of the Git repository, +you can easily switch between different builds. diff --git a/poky/documentation/migration-guides/migration-1.5.rst b/poky/documentation/migration-guides/migration-1.5.rst index 1b78e99809..70a087ff1a 100644 --- a/poky/documentation/migration-guides/migration-1.5.rst +++ b/poky/documentation/migration-guides/migration-1.5.rst @@ -126,10 +126,9 @@ The following directory changes exist: :term:`DEPLOY_DIR_IMAGE` variable in the external environment. - When buildhistory is enabled, its output is now written under the - :term:`Build Directory` rather than - :term:`TMPDIR`. Doing so makes it easier to delete - :term:`TMPDIR` and preserve the build history. Additionally, data for - produced SDKs is now split by :term:`IMAGE_NAME`. + :term:`Build Directory` rather than :term:`TMPDIR`. Doing so makes + it easier to delete :term:`TMPDIR` and preserve the build history. + Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`. - The ``pkgdata`` directory produced as part of the packaging process has been collapsed into a single machine-specific directory. This diff --git a/poky/documentation/migration-guides/migration-1.6.rst b/poky/documentation/migration-guides/migration-1.6.rst index f54d4ba729..d3de264650 100644 --- a/poky/documentation/migration-guides/migration-1.6.rst +++ b/poky/documentation/migration-guides/migration-1.6.rst @@ -233,9 +233,9 @@ Separate build and source directories have been enabled by default for selected recipes where it is known to work and for all recipes that inherit the :ref:`cmake <ref-classes-cmake>` class. In future releases the :ref:`autotools <ref-classes-autotools>` class -will enable a separate build directory by default as well. Recipes +will enable a separate :term:`Build Directory` by default as well. Recipes building Autotools-based software that fails to build with a separate -build directory should be changed to inherit from the +:term:`Build Directory` should be changed to inherit from the :ref:`autotools-brokensep <ref-classes-autotools>` class instead of the ``autotools`` or ``autotools_stage``\ classes. diff --git a/poky/documentation/migration-guides/migration-1.7.rst b/poky/documentation/migration-guides/migration-1.7.rst index 7b179f2aa1..e1a7594fb1 100644 --- a/poky/documentation/migration-guides/migration-1.7.rst +++ b/poky/documentation/migration-guides/migration-1.7.rst @@ -42,7 +42,7 @@ Autotools Class Changes The following :ref:`autotools <ref-classes-autotools>` class changes occurred: -- *A separate build directory is now used by default:* The +- *A separate :term:`Build Directory` is now used by default:* The :ref:`autotools <ref-classes-autotools>` class has been changed to use a directory for building (:term:`B`), which is separate from the source directory diff --git a/poky/documentation/migration-guides/migration-2.6.rst b/poky/documentation/migration-guides/migration-2.6.rst index b36eb194b3..eedede2457 100644 --- a/poky/documentation/migration-guides/migration-2.6.rst +++ b/poky/documentation/migration-guides/migration-2.6.rst @@ -343,8 +343,7 @@ BitBake Changes --------------- The server logfile ``bitbake-cookerdaemon.log`` is now always placed in -the :term:`Build Directory` instead of the current -directory. +the :term:`Build Directory` instead of the current directory. .. _migration-2.6-security-changes: diff --git a/poky/documentation/migration-guides/migration-general.rst b/poky/documentation/migration-guides/migration-general.rst index 0f0408e51f..847bdad739 100644 --- a/poky/documentation/migration-guides/migration-general.rst +++ b/poky/documentation/migration-guides/migration-general.rst @@ -86,7 +86,7 @@ any new Yocto Project release. 3. Capture the buildhistory output (as specified by :term:`BUILDHISTORY_DIR`) and ensure it is preserved for subsequent builds. How you would do this depends on how you are running your builds - if you are doing this all on - one workstation in the same build directory you may not need to do + one workstation in the same :term:`Build Directory` you may not need to do anything other than not deleting the buildhistory output directory. For builds in a pipeline it may be more complicated. diff --git a/poky/documentation/migration-guides/release-notes-4.1.rst b/poky/documentation/migration-guides/release-notes-4.1.rst index a2d4b3d6cb..d4ed23f63d 100644 --- a/poky/documentation/migration-guides/release-notes-4.1.rst +++ b/poky/documentation/migration-guides/release-notes-4.1.rst @@ -699,7 +699,60 @@ Thanks to the following people who contributed to this release: - Zheng Ruoqin - Zoltán Böszörményi - - Repositories / Downloads for 4.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +poky + +- Repository Location: https://git.yoctoproject.org/git/poky +- Branch: :yocto_git:`langdale </poky/log/?h=langdale>` +- Tag: :yocto_git:`yocto-4.1 </poky/log/?h=yocto-4.1>` +- Git Revision: :yocto_git:`5200799866b92259e855051112520006e1aaaac0 </poky/commit/?id=5200799866b92259e855051112520006e1aaaac0>` +- Release Artefact: poky-5200799866b92259e855051112520006e1aaaac0 +- sha: 9d9a2f7ecf2502f89f43bf45d63e6b61cdcb95ed1d75c8281372f550d809c823 +- Download Locations: + http://downloads.yoctoproject.org/releases/yocto/yocto-4.1/poky-5200799866b92259e855051112520006e1aaaac0.tar.bz2 + http://mirrors.kernel.org/yocto/yocto/yocto-4.1/poky-5200799866b92259e855051112520006e1aaaac0.tar.bz2 + +openembedded-core + +- Repository Location: https://git.openembedded.org/openembedded-core +- Branch: :oe_git:`langdale </openembedded-core/log/?h=langdale>` +- Tag: :oe_git:`yocto-4.1 </openembedded-core/log/?h=yocto-4.1>` +- Git Revision: :oe_git:`744a2277844ec9a384a9ca7dae2a634d5a0d3590 </openembedded-core/commit/?id=744a2277844ec9a384a9ca7dae2a634d5a0d3590>` +- Release Artefact: oecore-744a2277844ec9a384a9ca7dae2a634d5a0d3590 +- sha: 34f1fd5bb83514bf0ec8ad7f8cce088a8e28677e1338db94c188283da704c663 +- Download Locations: + http://downloads.yoctoproject.org/releases/yocto/yocto-4.1/oecore-744a2277844ec9a384a9ca7dae2a634d5a0d3590.tar.bz2 + http://mirrors.kernel.org/yocto/yocto/yocto-4.1/oecore-744a2277844ec9a384a9ca7dae2a634d5a0d3590.tar.bz2 + +meta-mingw + +- Repository Location: https://git.yoctoproject.org/git/meta-mingw +- Branch: :yocto_git:`langdale </meta-mingw/log/?h=langdale>` +- Tag: :yocto_git:`yocto-4.1 </meta-mingw/log/?h=yocto-4.1>` +- Git Revision: :yocto_git:`b0067202db8573df3d23d199f82987cebe1bee2c </meta-mingw/commit/?id=b0067202db8573df3d23d199f82987cebe1bee2c>` +- Release Artefact: meta-mingw-b0067202db8573df3d23d199f82987cebe1bee2c +- sha: 704f2940322b81ce774e9cbd27c3cfa843111d497dc7b1eeaa39cd694d9a2366 +- Download Locations: + http://downloads.yoctoproject.org/releases/yocto/yocto-4.1/meta-mingw-b0067202db8573df3d23d199f82987cebe1bee2c.tar.bz2 + http://mirrors.kernel.org/yocto/yocto/yocto-4.1/meta-mingw-b0067202db8573df3d23d199f82987cebe1bee2c.tar.bz2 + +bitbake + +- Repository Location: https://git.openembedded.org/bitbake +- Branch: :oe_git:`2.2 </bitbake/log/?h=2.2>` +- Tag: :oe_git:`yocto-4.1 </bitbake/log/?h=yocto-4.1>` +- Git Revision: :oe_git:`074da4c469d1f4177a1c5be72b9f3ccdfd379d67 </bitbake/commit/?id=074da4c469d1f4177a1c5be72b9f3ccdfd379d67>` +- Release Artefact: bitbake-074da4c469d1f4177a1c5be72b9f3ccdfd379d67 +- sha: e32c300e0c8522d8d49ef10aae473bd5f293202672eb9d38e90ed92594ed1fe8 +- Download Locations: + http://downloads.yoctoproject.org/releases/yocto/yocto-4.1/bitbake-074da4c469d1f4177a1c5be72b9f3ccdfd379d67.tar.bz2 + http://mirrors.kernel.org/yocto/yocto/yocto-4.1/bitbake-074da4c469d1f4177a1c5be72b9f3ccdfd379d67.tar.bz2 + +yocto-docs + +- Repository Location: https://git.yoctoproject.org/git/yocto-docs +- Branch: :yocto_git:`langdale </yocto-docs/log/?h=langdale>` +- Tag: :yocto_git:`yocto-4.1 </yocto-docs/log/?h=yocto-4.1>` +- Git Revision: :yocto_git:`42d3e26a0d04bc5951e640b471686f347dc9b74a </yocto-docs/commit/?id=42d3e26a0d04bc5951e640b471686f347dc9b74a>` diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst index 75eb872b32..b323a6fdf4 100644 --- a/poky/documentation/overview-manual/concepts.rst +++ b/poky/documentation/overview-manual/concepts.rst @@ -233,13 +233,12 @@ for creating actual configuration files when you source :ref:`structure-core-script`, which is the build environment script. -Sourcing the build environment script creates a -:term:`Build Directory` if one does not -already exist. BitBake uses the Build Directory for all its work during -builds. The Build Directory has a ``conf`` directory that contains -default versions of your ``local.conf`` and ``bblayers.conf`` +Sourcing the build environment script creates a :term:`Build Directory` +if one does not already exist. BitBake uses the :term:`Build Directory` +for all its work during builds. The Build Directory has a ``conf`` directory +that contains default versions of your ``local.conf`` and ``bblayers.conf`` configuration files. These default configuration files are created only -if versions do not already exist in the Build Directory at the time you +if versions do not already exist in the :term:`Build Directory` at the time you source the build environment setup script. Because the Poky repository is fundamentally an aggregation of existing @@ -251,9 +250,9 @@ assumes the script is executed from within a cloned or unpacked version of Poky. Depending on where the script is sourced, different sub-scripts are -called to set up the Build Directory (Yocto or OpenEmbedded). +called to set up the :term:`Build Directory` (Yocto or OpenEmbedded). Specifically, the script ``scripts/oe-setup-builddir`` inside the poky -directory sets up the Build Directory and seeds the directory (if +directory sets up the :term:`Build Directory` and seeds the directory (if necessary) with configuration files appropriate for the Yocto Project development environment. @@ -428,7 +427,7 @@ The distribution layer provides policy configurations for your distribution. Best practices dictate that you isolate these types of configurations into their own layer. Settings you provide in ``conf/distro/distro.conf`` override similar settings that BitBake finds -in your ``conf/local.conf`` file in the Build Directory. +in your ``conf/local.conf`` file in the :term:`Build Directory`. The following list provides some explanation and references for what you typically find in the distribution layer: @@ -531,10 +530,11 @@ repositories, which is not the default behavior, and store them in the variable. Judicious use of a :term:`DL_DIR` directory can save the build system a trip -across the Internet when looking for files. A good method for using a -download directory is to have :term:`DL_DIR` point to an area outside of -your Build Directory. Doing so allows you to safely delete the Build -Directory if needed without fear of removing any downloaded source file. +across the Internet when looking for files. A good method for using a download +directory is to have :term:`DL_DIR` point to an area outside of your +:term:`Build Directory`. Doing so allows you to safely delete the +:term:`Build Directory` if needed without fear of removing any downloaded +source file. The remainder of this section provides a deeper look into the source files and the mirrors. Here is a more detailed look at the source file @@ -632,15 +632,14 @@ process validates them with generated output quality assurance checks through the :ref:`insane <ref-classes-insane>` class. -The package feed area resides in the Build Directory. The directory the +The package feed area resides in the :term:`Build Directory`. The directory the build system uses to temporarily store packages is determined by a combination of variables and the particular package manager in use. See the "Package Feeds" box in the illustration and note the information to the right of that area. In particular, the following defines where package files are kept: -- :term:`DEPLOY_DIR`: Defined as - ``tmp/deploy`` in the Build Directory. +- :term:`DEPLOY_DIR`: Defined as ``tmp/deploy`` in the :term:`Build Directory`. - ``DEPLOY_DIR_*``: Depending on the package manager used, the package type sub-folder. Given RPM, IPK, or DEB packaging and tarball @@ -696,10 +695,8 @@ code: .. image:: figures/source-fetching.png :width: 100% -The :ref:`ref-tasks-fetch` and -:ref:`ref-tasks-unpack` tasks fetch -the source files and unpack them into the -:term:`Build Directory`. +The :ref:`ref-tasks-fetch` and :ref:`ref-tasks-unpack` tasks fetch +the source files and unpack them into the :term:`Build Directory`. .. note:: @@ -710,17 +707,16 @@ the source files and unpack them into the file has been modified, the :ref:`ref-tasks-fetch` task and all tasks that depend on it are re-executed. -By default, everything is accomplished in the Build Directory, which has -a defined structure. For additional general information on the Build -Directory, see the ":ref:`structure-core-build`" section in +By default, everything is accomplished in the :term:`Build Directory`, which has +a defined structure. For additional general information on the +:term:`Build Directory`, see the ":ref:`structure-core-build`" section in the Yocto Project Reference Manual. -Each recipe has an area in the Build Directory where the unpacked source -code resides. The :term:`S` variable points -to this area for a recipe's unpacked source code. The name of that -directory for any given recipe is defined from several different -variables. The preceding figure and the following list describe the -Build Directory's hierarchy: +Each recipe has an area in the :term:`Build Directory` where the unpacked +source code resides. The :term:`S` variable points to this area for a recipe's +unpacked source code. The name of that directory for any given recipe is +defined from several different variables. The preceding figure and the +following list describe the :term:`Build Directory`'s hierarchy: - :term:`TMPDIR`: The base directory where the OpenEmbedded build system performs all its work during the @@ -1258,15 +1254,12 @@ this output: ":doc:`/ref-manual/images`" chapter in the Yocto Project Reference Manual. -The build process writes images out to the :term:`Build Directory` -inside the -``tmp/deploy/images/machine/`` folder as shown in the figure. This +The build process writes images out to the :term:`Build Directory` inside +the ``tmp/deploy/images/machine/`` folder as shown in the figure. This folder contains any files expected to be loaded on the target device. -The :term:`DEPLOY_DIR` variable -points to the ``deploy`` directory, while the -:term:`DEPLOY_DIR_IMAGE` -variable points to the appropriate directory containing images for the -current configuration. +The :term:`DEPLOY_DIR` variable points to the ``deploy`` directory, while the +:term:`DEPLOY_DIR_IMAGE` variable points to the appropriate directory +containing images for the current configuration. - kernel-image: A kernel binary file. The :term:`KERNEL_IMAGETYPE` @@ -1340,10 +1333,9 @@ can initialize the environment before using the tools. the :doc:`/sdk-manual/index` manual. All the output files for an SDK are written to the ``deploy/sdk`` folder -inside the :term:`Build Directory` as -shown in the previous figure. Depending on the type of SDK, there are -several variables to configure these files. Here are the variables -associated with an extensible SDK: +inside the :term:`Build Directory` as shown in the previous figure. Depending +on the type of SDK, there are several variables to configure these files. +Here are the variables associated with an extensible SDK: - :term:`DEPLOY_DIR`: Points to the ``deploy`` directory. @@ -1482,12 +1474,11 @@ relocatable SDK used to develop applications. When you run the installer, it installs the toolchain, which contains the development tools (e.g., ``gcc-cross-canadian``, ``binutils-cross-canadian``, and other ``nativesdk-*`` tools), which are tools native to the SDK (i.e. -native to :term:`SDK_ARCH`), you -need to cross-compile and test your software. The figure shows the -commands you use to easily build out this toolchain. This -cross-development toolchain is built to execute on the -:term:`SDKMACHINE`, which might or -might not be the same machine as the Build Host. +native to :term:`SDK_ARCH`), you need to cross-compile and test your +software. The figure shows the commands you use to easily build out +this toolchain. This cross-development toolchain is built to execute on the +:term:`SDKMACHINE`, which might or might not be the same machine as +the Build Host. .. note:: diff --git a/poky/documentation/overview-manual/development-environment.rst b/poky/documentation/overview-manual/development-environment.rst index 43a6f1b480..04aea1373c 100644 --- a/poky/documentation/overview-manual/development-environment.rst +++ b/poky/documentation/overview-manual/development-environment.rst @@ -623,11 +623,9 @@ MIT license `here <https://en.wikipedia.org/wiki/MIT_License>`__. When you build an image using the Yocto Project, the build process uses a known list of licenses to ensure compliance. You can find this list in -the :term:`Source Directory` at -``meta/files/common-licenses``. Once the build completes, the list of -all licenses found and used during that build are kept in the -:term:`Build Directory` at -``tmp/deploy/licenses``. +the :term:`Source Directory` at ``meta/files/common-licenses``. Once the +build completes, the list of all licenses found and used during that build +are kept in the :term:`Build Directory` at ``tmp/deploy/licenses``. If a module requires a license that is not in the base list, the build process generates a warning during the build. These tools make it easier diff --git a/poky/documentation/overview-manual/yp-intro.rst b/poky/documentation/overview-manual/yp-intro.rst index 4e3b7c3250..8b476f43c4 100644 --- a/poky/documentation/overview-manual/yp-intro.rst +++ b/poky/documentation/overview-manual/yp-intro.rst @@ -584,20 +584,15 @@ Build Host runs, you have several choices. ":ref:`dev-manual/start:setting up to use cross platforms (crops)`" section in the Yocto Project Development Tasks Manual. -- *Windows Subsystem For Linux (WSLv2):* You may use Windows Subsystem - For Linux v2 to set up a Build Host using Windows 10. +- *Windows Subsystem For Linux (WSL 2):* You may use Windows Subsystem + For Linux version 2 to set up a Build Host using Windows 10 or later, + or Windows Server 2019 or later. - .. note:: - - The Yocto Project is not compatible with WSLv1, it is compatible - but not officially supported nor validated with WSLv2, if you - still decide to use WSL please upgrade to WSLv2. - - The Windows Subsystem For Linux allows Windows 10 to run a real Linux + The Windows Subsystem For Linux allows Windows to run a real Linux kernel inside of a lightweight virtual machine (VM). - For information on how to set up a Build Host with WSLv2, see the - ":ref:`dev-manual/start:setting up to use windows subsystem for linux (wslv2)`" + For information on how to set up a Build Host with WSL 2, see the + ":ref:`dev-manual/start:setting up to use windows subsystem for linux (wsl 2)`" section in the Yocto Project Development Tasks Manual. - *Toaster:* Regardless of what your Build Host is running, you can use diff --git a/poky/documentation/poky.yaml.in b/poky/documentation/poky.yaml.in index 6b942f0959..5639f3ca7a 100644 --- a/poky/documentation/poky.yaml.in +++ b/poky/documentation/poky.yaml.in @@ -1,10 +1,10 @@ -DISTRO : "4.0" -DISTRO_NAME_NO_CAP : "kirkstone" -DISTRO_NAME : "Kirkstone" -DISTRO_NAME_NO_CAP_MINUS_ONE : "honister" -DISTRO_NAME_NO_CAP_LTS : "dunfell" -YOCTO_DOC_VERSION : "4.0" -DISTRO_REL_TAG : "yocto-4.0" +DISTRO : "4.1" +DISTRO_NAME_NO_CAP : "langdale" +DISTRO_NAME : "Langdale" +DISTRO_NAME_NO_CAP_MINUS_ONE : "kirkstone" +DISTRO_NAME_NO_CAP_LTS : "kirkstone" +YOCTO_DOC_VERSION : "4.1" +DISTRO_REL_TAG : "yocto-4.1" DOCCONF_VERSION : "dev" BITBAKE_SERIES : "" YOCTO_DL_URL : "https://downloads.yoctoproject.org" diff --git a/poky/documentation/profile-manual/usage.rst b/poky/documentation/profile-manual/usage.rst index 49f8af4a74..01fbde1411 100644 --- a/poky/documentation/profile-manual/usage.rst +++ b/poky/documentation/profile-manual/usage.rst @@ -1895,9 +1895,9 @@ manual, and boot the resulting target image. .. note:: - If you have a build directory containing multiple machines, you need + If you have a :term:`Build Directory` containing multiple machines, you need to have the MACHINE you're connecting to selected in local.conf, and - the kernel in that machine's build directory must match the kernel on + the kernel in that machine's :term:`Build Directory` must match the kernel on the booted system exactly, or you'll get the above 'crosstap' message when you try to invoke a script. diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst index cd5a51695b..3b33783c58 100644 --- a/poky/documentation/ref-manual/classes.rst +++ b/poky/documentation/ref-manual/classes.rst @@ -37,7 +37,7 @@ information. ``allarch.bbclass`` =================== -The ``allarch`` class is inherited by recipes that do not produce +The :ref:`allarch <ref-classes-allarch>` class is inherited by recipes that do not produce architecture-specific output. The class disables functionality that is normally needed for recipes that produce executable binaries (such as building the cross-compiler and a C library as pre-requisites, and @@ -49,7 +49,7 @@ splitting out of debug symbols during packaging). produce packages that depend on tunings through use of the :term:`RDEPENDS` and :term:`TUNE_PKGARCH` variables, should never be - configured for all architectures using ``allarch``. This is the case + configured for all architectures using :ref:`allarch <ref-classes-allarch>`. This is the case even if the recipes do not produce architecture-specific output. Configuring such recipes for all architectures causes the @@ -63,17 +63,17 @@ By default, all recipes inherit the :ref:`base <ref-classes-base>` and functionality needed for recipes that produce executable output. If your recipe, for example, only produces packages that contain configuration files, media files, or scripts (e.g. Python and Perl), then it should -inherit the ``allarch`` class. +inherit the :ref:`allarch <ref-classes-allarch>` class. .. _ref-classes-archiver: ``archiver.bbclass`` ==================== -The ``archiver`` class supports releasing source code and other +The :ref:`archiver <ref-classes-archiver>` class supports releasing source code and other materials with the binaries. -For more details on the source archiver, see the +For more details on the source :ref:`archiver <ref-classes-archiver>`, see the ":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`" section in the Yocto Project Development Tasks Manual. You can also see the :term:`ARCHIVER_MODE` variable for information @@ -84,7 +84,7 @@ about the variable flags (varflags) that help control archive creation. ``autotools*.bbclass`` ====================== -The ``autotools*`` classes support packages built with the +The :ref:`autotools* <ref-classes-autotools>` classes support packages built with the `GNU Autotools <https://en.wikipedia.org/wiki/GNU_Autotools>`__. The ``autoconf``, ``automake``, and ``libtool`` packages bring @@ -96,13 +96,13 @@ that emulates Autotools. For more information, see the ":ref:`dev-manual/common-tasks:autotooled package`" section in the Yocto Project Development Tasks Manual. -By default, the ``autotools*`` classes use out-of-tree builds (i.e. +By default, the :ref:`autotools* <ref-classes-autotools>` classes use out-of-tree builds (i.e. ``autotools.bbclass`` building with ``B != S``). If the software being built by a recipe does not support using out-of-tree builds, you should have the recipe inherit the -``autotools-brokensep`` class. The ``autotools-brokensep`` class behaves -the same as the ``autotools`` class but builds with :term:`B` +:ref:`autotools-brokensep <ref-classes-autotools>` class. The :ref:`autotools-brokensep <ref-classes-autotools>` class behaves +the same as the :ref:`autotools <ref-classes-autotools>` class but builds with :term:`B` == :term:`S`. This method is useful when out-of-tree build support is either not present or is broken. @@ -112,7 +112,7 @@ support is either not present or is broken. all possible. It's useful to have some idea of how the tasks defined by the -``autotools*`` classes work and what they do behind the scenes. +:ref:`autotools* <ref-classes-autotools>` classes work and what they do behind the scenes. - :ref:`ref-tasks-configure` --- regenerates the configure script (using ``autoreconf``) and then launches it with a @@ -133,7 +133,7 @@ It's useful to have some idea of how the tasks defined by the ``base.bbclass`` ================ -The ``base`` class is special in that every ``.bb`` file implicitly +The :ref:`base <ref-classes-base>` class is special in that every ``.bb`` file implicitly inherits the class. This class contains definitions for standard basic tasks such as fetching, unpacking, configuring (empty by default), compiling (runs any ``Makefile`` present), installing (empty by default) @@ -160,7 +160,7 @@ software that includes bash-completion data. ``bin_package.bbclass`` ======================= -The ``bin_package`` class is a helper class for recipes that extract the +The :ref:`bin_package <ref-classes-bin-package>` class is a helper class for recipes that extract the contents of a binary package (e.g. an RPM) and install those contents rather than building the binary from source. The binary package is extracted and new packages in the configured output package format are @@ -187,7 +187,7 @@ example use for this class. ``binconfig.bbclass`` ===================== -The ``binconfig`` class helps to correct paths in shell scripts. +The :ref:`binconfig <ref-classes-binconfig>` class helps to correct paths in shell scripts. Before ``pkg-config`` had become widespread, libraries shipped shell scripts to give information about the libraries and include paths needed @@ -219,7 +219,7 @@ the class. ``buildhistory.bbclass`` ======================== -The ``buildhistory`` class records a history of build output metadata, +The :ref:`buildhistory <ref-classes-buildhistory>` class records a history of build output metadata, which can be used to detect possible regressions as well as used for analysis of the build output. For more information on using Build History, see the @@ -231,7 +231,7 @@ section in the Yocto Project Development Tasks Manual. ``buildstats.bbclass`` ====================== -The ``buildstats`` class records performance statistics about each task +The :ref:`buildstats <ref-classes-buildstats>` class records performance statistics about each task executed during the build (e.g. elapsed time, CPU usage, and I/O usage). When you use this class, the output goes into the @@ -245,7 +245,7 @@ Collecting build statistics is enabled by default through the :term:`USER_CLASSES` variable from your ``local.conf`` file. Consequently, you do not have to do anything to enable the class. However, if you want to disable the class, simply -remove "buildstats" from the :term:`USER_CLASSES` list. +remove ":ref:`buildstats <ref-classes-buildstats>`" from the :term:`USER_CLASSES` list. .. _ref-classes-buildstats-summary: @@ -261,7 +261,7 @@ sstate re-use. In order to function, this class requires the ``ccache.bbclass`` ================== -The ``ccache`` class enables the C/C++ Compiler Cache for the build. +The :ref:`ccache <ref-classes-ccache>` class enables the C/C++ Compiler Cache for the build. This class is used to give a minor performance boost during the build. See https://ccache.samba.org/ for information on the C/C++ Compiler @@ -278,9 +278,9 @@ this class is not recommended. ``chrpath.bbclass`` =================== -The ``chrpath`` class is a wrapper around the "chrpath" utility, which -is used during the build process for ``nativesdk``, ``cross``, and -``cross-canadian`` recipes to change ``RPATH`` records within binaries +The :ref:`chrpath <ref-classes-chrpath>` class is a wrapper around the "chrpath" utility, which +is used during the build process for :ref:`nativesdk <ref-classes-nativesdk>`, :ref:`cross <ref-classes-cross>`, and +:ref:`cross-canadian <ref-classes-cross-canadian>` recipes to change ``RPATH`` records within binaries in order to make them relocatable. .. _ref-classes-cmake: @@ -288,7 +288,7 @@ in order to make them relocatable. ``cmake.bbclass`` ================= -The ``cmake`` class allows for recipes that need to build software using +The ref:`cmake <ref-classes-cmake>` class allows for recipes that need to build software using the `CMake <https://cmake.org/overview/>`__ build system. You can use the :term:`EXTRA_OECMAKE` variable to specify additional configuration options to be passed using the ``cmake`` @@ -305,7 +305,7 @@ Modules during ``cml1.bbclass`` ================ -The ``cml1`` class provides basic support for the Linux kernel style +The :ref:`cml1 <ref-classes-cml1>` class provides basic support for the Linux kernel style build configuration system. .. _ref-classes-compress_doc: @@ -323,8 +323,8 @@ but you can select an alternative mechanism by setting the ``copyleft_compliance.bbclass`` =============================== -The ``copyleft_compliance`` class preserves source code for the purposes -of license compliance. This class is an alternative to the ``archiver`` +The :ref:`copyleft_compliance <ref-classes-copyleft_compliance>` class preserves source code for the purposes +of license compliance. This class is an alternative to the :ref:`archiver <ref-classes-archiver>` class and is still used by some users even though it has been deprecated in favor of the :ref:`archiver <ref-classes-archiver>` class. @@ -343,7 +343,7 @@ class and is not intended to be used directly. ``core-image.bbclass`` ====================== -The ``core-image`` class provides common definitions for the +The :ref:`core-image <ref-classes-core-image>` class provides common definitions for the ``core-image-*`` image recipes, such as support for additional :term:`IMAGE_FEATURES`. @@ -352,7 +352,7 @@ The ``core-image`` class provides common definitions for the ``cpan*.bbclass`` ================= -The ``cpan*`` classes support Perl modules. +The :ref:`cpan* <ref-classes-cpan>` classes support Perl modules. Recipes for Perl modules are simple. These recipes usually only need to point to the source's archive and then inherit the proper class file. @@ -365,7 +365,7 @@ authors used. - Modules that use ``Build.PL``-based build system require using ``cpan_build.bbclass`` in their recipes. -Both build methods inherit the ``cpan-base`` class for basic Perl +Both build methods inherit the :ref:`cpan-base <ref-classes-cpan>` class for basic Perl support. .. _ref-classes-create-spdx: @@ -373,7 +373,7 @@ support. ``create-spdx.bbclass`` ======================= -The ``create-spdx`` class provides support for automatically creating +The :ref:`create-spdx <ref-classes-create-spdx>` class provides support for automatically creating SPDX SBoM documents based upon image and SDK contents. .. _ref-classes-cross: @@ -381,7 +381,7 @@ SPDX SBoM documents based upon image and SDK contents. ``cross.bbclass`` ================= -The ``cross`` class provides support for the recipes that build the +The :ref:`cross <ref-classes-cross>` class provides support for the recipes that build the cross-compilation tools. .. _ref-classes-cross-canadian: @@ -389,7 +389,7 @@ cross-compilation tools. ``cross-canadian.bbclass`` ========================== -The ``cross-canadian`` class provides support for the recipes that build +The :ref:`cross-canadian <ref-classes-cross-canadian>` class provides support for the recipes that build the Canadian Cross-compilation tools for SDKs. See the ":ref:`overview-manual/concepts:cross-development toolchain generation`" section in the Yocto Project Overview and Concepts Manual for more @@ -400,7 +400,7 @@ discussion on these cross-compilation tools. ``crosssdk.bbclass`` ==================== -The ``crosssdk`` class provides support for the recipes that build the +The :ref:`crosssdk <ref-classes-crosssdk>` class provides support for the recipes that build the cross-compilation tools used for building SDKs. See the ":ref:`overview-manual/concepts:cross-development toolchain generation`" section in the Yocto Project Overview and Concepts Manual for more @@ -411,14 +411,62 @@ discussion on these cross-compilation tools. ``cve-check.bbclass`` ===================== -The ``cve-check`` class looks for known CVEs (Common Vulnerabilities -and Exposures) while building an image. This class is meant to be +The :ref:`cve-check <ref-classes-cve-check>` class looks for known CVEs (Common Vulnerabilities +and Exposures) while building with BitBake. This class is meant to be inherited globally from a configuration file:: INHERIT += "cve-check" +To filter out obsolete CVE database entries which are known not to impact software from Poky and OE-Core, +add following line to the build configuration file:: + + include cve-extra-exclusions.inc + You can also look for vulnerabilities in specific packages by passing -``-c cve_check`` to BitBake. You will find details in the +``-c cve_check`` to BitBake. + +After building the software with Bitbake, CVE check output reports are available in ``tmp/deploy/cve`` +and image specific summaries in ``tmp/deploy/images/*.cve`` or ``tmp/deploy/images/*.json`` files. + +When building, the CVE checker will emit build time warnings for any detected +issues which are in the state ``Unpatched``, meaning that CVE issue seems to affect the software component +and version being compiled and no patches to address the issue are applied. Other states +for detected CVE issues are: ``Patched`` meaning that a patch to address the issue is already +applied, and ``Ignored`` meaning that the issue can be ignored. + +The ``Patched`` state of a CVE issue is detected from patch files with the format +``CVE-ID.patch``, e.g. ``CVE-2019-20633.patch``, in the :term:`SRC_URI` and using +CVE metadata of format ``CVE: CVE-ID`` in the commit message of the patch file. + +If the recipe lists the ``CVE-ID`` in :term:`CVE_CHECK_IGNORE` variable, then the CVE state is reported +as ``Ignored``. Multiple CVEs can be listed separated by spaces. Example:: + + CVE_CHECK_IGNORE += "CVE-2020-29509 CVE-2020-29511" + +If CVE check reports that a recipe contains false positives or false negatives, these may be +fixed in recipes by adjusting the CVE product name using :term:`CVE_PRODUCT` and :term:`CVE_VERSION` variables. +:term:`CVE_PRODUCT` defaults to the plain recipe name :term:`BPN` which can be adjusted to one or more CVE +database vendor and product pairs using the syntax:: + + CVE_PRODUCT = "flex_project:flex" + +where ``flex_project`` is the CVE database vendor name and ``flex`` is the product name. Similarly +if the default recipe version :term:`PV` does not match the version numbers of the software component +in upstream releases or the CVE database, then the :term:`CVE_VERSION` variable can be used to set the +CVE database compatible version number, for example:: + + CVE_VERSION = "2.39" + +Any bugs or missing or incomplete information in the CVE database entries should be fixed in the CVE database +via the `NVD feedback form <https://nvd.nist.gov/info/contact-form>`__. + +Users should note that security is a process, not a product, and thus also CVE checking, analyzing results, +patching and updating the software should be done as a regular process. The data and assumptions +required for CVE checker to reliably detect issues are frequently broken in various ways. +These can only be detected by reviewing the details of the issues and iterating over the generated reports, +and following what happens in other Linux distributions and in the greater open source community. + +You will find some more details in the ":ref:`dev-manual/common-tasks:checking for vulnerabilities`" section in the Development Tasks Manual. @@ -427,7 +475,7 @@ section in the Development Tasks Manual. ``debian.bbclass`` ================== -The ``debian`` class renames output packages so that they follow the +The :ref:`debian <ref-classes-debian>` class renames output packages so that they follow the Debian naming policy (i.e. ``glibc`` becomes ``libc6`` and ``glibc-devel`` becomes ``libc6-dev``.) Renaming includes the library name and version as part of the package name. @@ -442,7 +490,7 @@ naming scheme. ``deploy.bbclass`` ================== -The ``deploy`` class handles deploying files to the +The :ref:`deploy <ref-classes-deploy>` class handles deploying files to the :term:`DEPLOY_DIR_IMAGE` directory. The main function of this class is to allow the deploy step to be accelerated by shared state. Recipes that inherit this class should define their own @@ -458,17 +506,17 @@ staging the files from :term:`DEPLOYDIR` to :term:`DEPLOY_DIR_IMAGE`. ``devshell.bbclass`` ==================== -The ``devshell`` class adds the :ref:`ref-tasks-devshell` task. Distribution +The :ref:`devshell <ref-classes-devshell>` class adds the :ref:`ref-tasks-devshell` task. Distribution policy dictates whether to include this class. See the ":ref:`dev-manual/common-tasks:using a development shell`" section in the Yocto Project Development Tasks Manual for more -information about using ``devshell``. +information about using :ref:`devshell <ref-classes-devshell>`. .. _ref-classes-devupstream: ``devupstream.bbclass`` ======================= -The ``devupstream`` class uses +The :ref:`devupstream <ref-classes-devupstream>` class uses :term:`BBCLASSEXTEND` to add a variant of the recipe that fetches from an alternative URI (e.g. Git) instead of a tarball. Following is an example:: @@ -490,10 +538,10 @@ Any development-specific adjustments can be done by using the The class currently only supports creating a development variant of the target -recipe, not ``native`` or ``nativesdk`` variants. +recipe, not :ref:`native <ref-classes-native>` or :ref:`nativesdk <ref-classes-nativesdk>` variants. The :term:`BBCLASSEXTEND` syntax (i.e. ``devupstream:target``) provides -support for ``native`` and ``nativesdk`` variants. Consequently, this +support for :ref:`native <ref-classes-native>` and :ref:`nativesdk <ref-classes-nativesdk>` variants. Consequently, this functionality can be added in a future release. Support for other version control systems such as Subversion is limited @@ -505,7 +553,7 @@ due to BitBake's automatic fetch dependencies (e.g. ``externalsrc.bbclass`` ======================= -The ``externalsrc`` class supports building software from source code +The :ref:`externalsrc <ref-classes-externalsrc>` class supports building software from source code that is external to the OpenEmbedded build system. Building software from an external source tree means that the build system's normal fetch, unpack, and patch process is not used. @@ -513,7 +561,7 @@ unpack, and patch process is not used. By default, the OpenEmbedded build system uses the :term:`S` and :term:`B` variables to locate unpacked recipe source code and to build it, respectively. When your recipe inherits the -``externalsrc`` class, you use the +:ref:`externalsrc <ref-classes-externalsrc>` class, you use the :term:`EXTERNALSRC` and :term:`EXTERNALSRC_BUILD` variables to ultimately define :term:`S` and :term:`B`. @@ -530,10 +578,10 @@ See these variables for more information: :term:`WORKDIR`, :term:`BPN`, and :term:`PV`, -For more information on the ``externalsrc`` class, see the comments in +For more information on the :ref:`externalsrc <ref-classes-externalsrc>` class, see the comments in ``meta/classes/externalsrc.bbclass`` in the :term:`Source Directory`. For information on how to use the -``externalsrc`` class, see the +:ref:`externalsrc <ref-classes-externalsrc>` class, see the ":ref:`dev-manual/common-tasks:building software from an external source`" section in the Yocto Project Development Tasks Manual. @@ -542,7 +590,7 @@ section in the Yocto Project Development Tasks Manual. ``extrausers.bbclass`` ====================== -The ``extrausers`` class allows additional user and group configuration +The :ref:`extrausers <ref-classes-extrausers>` class allows additional user and group configuration to be applied at the image level. Inheriting this class either globally or from an image recipe allows additional user and group operations to be performed using the @@ -604,7 +652,7 @@ Finally, here is an example that sets the root password:: ``features_check.bbclass`` ================================= -The ``features_check`` class allows individual recipes to check +The :ref:`features_check <ref-classes-features_check>` class allows individual recipes to check for required and conflicting :term:`DISTRO_FEATURES`, :term:`MACHINE_FEATURES` or :term:`COMBINED_FEATURES`. @@ -630,7 +678,7 @@ triggered. ``fontcache.bbclass`` ===================== -The ``fontcache`` class generates the proper post-install and +The :ref:`fontcache <ref-classes-fontcache>` class generates the proper post-install and post-remove (postinst and postrm) scriptlets for font packages. These scriptlets call ``fc-cache`` (part of ``Fontconfig``) to add the fonts to the font information cache. Since the cache files are @@ -646,9 +694,9 @@ packages containing the fonts. ``fs-uuid.bbclass`` =================== -The ``fs-uuid`` class extracts UUID from +The :ref:`fs-uuid <ref-classes-fs-uuid>` class extracts UUID from ``${``\ :term:`ROOTFS`\ ``}``, which must have been built -by the time that this function gets called. The ``fs-uuid`` class only +by the time that this function gets called. The :ref:`fs-uuid <ref-classes-fs-uuid>` class only works on ``ext`` file systems and depends on ``tune2fs``. .. _ref-classes-gconf: @@ -656,7 +704,7 @@ works on ``ext`` file systems and depends on ``tune2fs``. ``gconf.bbclass`` ================= -The ``gconf`` class provides common functionality for recipes that need +The :ref:`gconf <ref-classes-gconf>` class provides common functionality for recipes that need to install GConf schemas. The schemas will be put into a separate package (``${``\ :term:`PN`\ ``}-gconf``) that is created automatically when this class is inherited. This package uses the @@ -668,7 +716,7 @@ register and unregister the schemas in the target image. ``gettext.bbclass`` =================== -The ``gettext`` class provides support for building software that uses +The :ref:`gettext <ref-classes-gettext>` class provides support for building software that uses the GNU ``gettext`` internationalization and localization system. All recipes building software that use ``gettext`` should inherit this class. @@ -678,11 +726,11 @@ class. ``github-releases`` =================== -For recipes that fetch release tarballs from github, the ``github-releases`` +For recipes that fetch release tarballs from github, the :ref:`github-releases <ref-classes-github-releases>` class sets up a standard way for checking available upstream versions (to support ``devtool upgrade`` and the Automated Upgrade Helper (AUH)). -To use it, add ``github-releases`` to the inherit line in the recipe, +To use it, add ":ref:`github-releases <ref-classes-github-releases>`" to the inherit line in the recipe, and if the default value of :term:`GITHUB_BASE_URI` is not suitable, then set your own value in the recipe. You should then use ``${GITHUB_BASE_URI}`` in the value you set for :term:`SRC_URI` within the recipe. @@ -692,7 +740,7 @@ in the value you set for :term:`SRC_URI` within the recipe. ``gnomebase.bbclass`` ===================== -The ``gnomebase`` class is the base class for recipes that build +The :ref:`gnomebase <ref-classes-gnomebase>` class is the base class for recipes that build software from the GNOME stack. This class sets :term:`SRC_URI` to download the source from the GNOME mirrors as well as extending :term:`FILES` with the typical @@ -721,7 +769,7 @@ introspection. This functionality is only enabled if the ``grub-efi.bbclass`` ==================== -The ``grub-efi`` class provides ``grub-efi``-specific functions for +The :ref:`grub-efi <ref-classes-grub-efi>` class provides ``grub-efi``-specific functions for building bootable images. This class supports several variables: @@ -753,7 +801,7 @@ This class supports several variables: ``gsettings.bbclass`` ===================== -The ``gsettings`` class provides common functionality for recipes that +The :ref:`gsettings <ref-classes-gsettings>` class provides common functionality for recipes that need to install GSettings (glib) schemas. The schemas are assumed to be part of the main package. Appropriate post-install and post-remove (postinst/postrm) scriptlets are added to register and unregister the @@ -764,7 +812,7 @@ schemas in the target image. ``gtk-doc.bbclass`` =================== -The ``gtk-doc`` class is a helper class to pull in the appropriate +The :ref:`gtk-doc <ref-classes-gtk-doc>` class is a helper class to pull in the appropriate ``gtk-doc`` dependencies and disable ``gtk-doc``. .. _ref-classes-gtk-icon-cache: @@ -772,7 +820,7 @@ The ``gtk-doc`` class is a helper class to pull in the appropriate ``gtk-icon-cache.bbclass`` ========================== -The ``gtk-icon-cache`` class generates the proper post-install and +The :ref:`gtk-icon-cache <ref-classes-gtk-icon-cache>` class generates the proper post-install and post-remove (postinst/postrm) scriptlets for packages that use GTK+ and install icons. These scriptlets call ``gtk-update-icon-cache`` to add the fonts to GTK+'s icon cache. Since the cache files are @@ -785,7 +833,7 @@ creation. ``gtk-immodules-cache.bbclass`` =============================== -The ``gtk-immodules-cache`` class generates the proper post-install and +The :ref:`gtk-immodules-cache <ref-classes-gtk-immodules-cache>` class generates the proper post-install and post-remove (postinst/postrm) scriptlets for packages that install GTK+ input method modules for virtual keyboards. These scriptlets call ``gtk-update-icon-cache`` to add the input method modules to the cache. @@ -803,7 +851,7 @@ the packages containing the modules. ``gzipnative.bbclass`` ====================== -The ``gzipnative`` class enables the use of different native versions of +The :ref:`gzipnative <ref-classes-gzipnative>` class enables the use of different native versions of ``gzip`` and ``pigz`` rather than the versions of these tools from the build host. @@ -812,7 +860,7 @@ build host. ``icecc.bbclass`` ================= -The ``icecc`` class supports +The :ref:`icecc <ref-classes-icecc>` class supports `Icecream <https://github.com/icecc/icecream>`__, which facilitates taking compile jobs and distributing them among remote machines. @@ -860,13 +908,13 @@ Additionally, you can list recipes using the your ``local.conf`` file to force ``icecc`` to be enabled for recipes using an empty :term:`PARALLEL_MAKE` variable. -Inheriting the ``icecc`` class changes all sstate signatures. +Inheriting the :ref:`icecc <ref-classes-icecc>` class changes all sstate signatures. Consequently, if a development team has a dedicated build system that populates :term:`SSTATE_MIRRORS` and they want to reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build -system need to either inherit the ``icecc`` class or nobody should. +system need to either inherit the :ref:`icecc <ref-classes-icecc>` class or nobody should. -At the distribution level, you can inherit the ``icecc`` class to be +At the distribution level, you can inherit the :ref:`icecc <ref-classes-icecc>` class to be sure that all builders start with the same sstate signatures. After inheriting the class, you can then disable the feature by setting the :term:`ICECC_DISABLED` variable to "1" as follows:: @@ -886,7 +934,7 @@ individually as follows in your ``local.conf`` file:: ``image.bbclass`` ================= -The ``image`` class helps support creating images in different formats. +The :ref:`image <ref-classes-image>` class helps support creating images in different formats. First, the root filesystem is created from packages using one of the ``rootfs*.bbclass`` files (depending on the package format used) and then one or more image files are created. @@ -909,7 +957,7 @@ Yocto Project Overview and Concepts Manual. ``image-buildinfo.bbclass`` =========================== -The ``image-buildinfo`` class writes a plain text file containing +The :ref:`image-buildinfo <ref-classes-image-buildinfo>` class writes a plain text file containing build information to the target filesystem at ``${sysconfdir}/buildinfo`` by default (as specified by :term:`IMAGE_BUILDINFO_FILE`. This can be useful for manually determining the origin of any given @@ -931,14 +979,14 @@ to ``/buildinfo`` by default (as specified by ``image_types.bbclass`` ======================= -The ``image_types`` class defines all of the standard image output types +The :ref:`image_types <ref-classes-image_types>` class defines all of the standard image output types that you can enable through the :term:`IMAGE_FSTYPES` variable. You can use this class as a reference on how to add support for custom image output types. By default, the :ref:`image <ref-classes-image>` class automatically -enables the ``image_types`` class. The ``image`` class uses the +enables the :ref:`image_types <ref-classes-image_types>` class. The :ref:`image <ref-classes-image>` class uses the ``IMGCLASSES`` variable as follows:: IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}" @@ -950,7 +998,7 @@ enables the ``image_types`` class. The ``image`` class uses the IMGCLASSES += "image-postinst-intercepts" inherit ${IMGCLASSES} -The ``image_types`` class also handles conversion and compression of images. +The :ref:`image_types <ref-classes-image_types>` class also handles conversion and compression of images. .. note:: @@ -976,7 +1024,7 @@ Normally, you do not use this class directly. Instead, you add "live" to ``insane.bbclass`` ================== -The ``insane`` class adds a step to the package generation process so +The :ref:`insane <ref-classes-insane>` class adds a step to the package generation process so that output quality assurance checks are generated by the OpenEmbedded build system. A range of checks are performed that check the build's output for common problems that show up during runtime. Distribution @@ -1276,7 +1324,7 @@ Here are the tests you can list with the :term:`WARN_QA` and ``insserv.bbclass`` =================== -The ``insserv`` class uses the ``insserv`` utility to update the order +The :ref:`insserv <ref-classes-insserv>` class uses the ``insserv`` utility to update the order of symbolic links in ``/etc/rc?.d/`` within an image based on dependencies specified by LSB headers in the ``init.d`` scripts themselves. @@ -1286,7 +1334,7 @@ themselves. ``kernel.bbclass`` ================== -The ``kernel`` class handles building Linux kernels. The class contains +The :ref:`kernel <ref-classes-kernel>` class handles building Linux kernels. The class contains code to build all kernel trees. All needed headers are staged into the :term:`STAGING_KERNEL_DIR` directory to allow out-of-tree module builds using the :ref:`module <ref-classes-module>` class. @@ -1297,13 +1345,13 @@ If all modules are required, then installing the ``kernel-modules`` package installs all packages with modules and various other kernel packages such as ``kernel-vmlinux``. -The ``kernel`` class contains logic that allows you to embed an initial +The :ref:`kernel <ref-classes-kernel>` class contains logic that allows you to embed an initial RAM filesystem (:term:`Initramfs`) image when you build the kernel image. For information on how to build an :term:`Initramfs`, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (Initramfs) image`" section in the Yocto Project Development Tasks Manual. -Various other classes are used by the ``kernel`` and ``module`` classes +Various other classes are used by the :ref:`kernel <ref-classes-kernel>` and :ref:`module <ref-classes-module>` classes internally including the :ref:`kernel-arch <ref-classes-kernel-arch>`, :ref:`module-base <ref-classes-module-base>`, and :ref:`linux-kernel-base <ref-classes-linux-kernel-base>` classes. @@ -1313,7 +1361,7 @@ internally including the :ref:`kernel-arch <ref-classes-kernel-arch>`, ``kernel-arch.bbclass`` ======================= -The ``kernel-arch`` class sets the ``ARCH`` environment variable for +The :ref:`kernel-arch <ref-classes-kernel-arch>` class sets the ``ARCH`` environment variable for Linux kernel compilation (including modules). .. _ref-classes-kernel-devicetree: @@ -1321,7 +1369,7 @@ Linux kernel compilation (including modules). ``kernel-devicetree.bbclass`` ============================= -The ``kernel-devicetree`` class, which is inherited by the +The :ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class, which is inherited by the :ref:`kernel <ref-classes-kernel>` class, supports device tree generation. @@ -1330,11 +1378,11 @@ generation. ``kernel-fitimage.bbclass`` =========================== -The ``kernel-fitimage`` class provides support to pack a kernel image, +The :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class provides support to pack a kernel image, device trees, a U-boot script, a Initramfs bundle and a RAM disk into a single FIT image. In theory, a FIT image can support any number of kernels, U-boot scripts, Initramfs bundles, RAM disks and device-trees. -However, ``kernel-fitimage`` currently only supports +However, :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` currently only supports limited usecases: just one kernel image, an optional U-boot script, an optional Initramfs bundle, an optional RAM disk, and any number of device tree. @@ -1348,19 +1396,19 @@ when creating the FIT image are specified using the :term:`UBOOT_MKIMAGE_DTCOPTS` variable. Only a single kernel can be added to the FIT image created by -``kernel-fitimage`` and the kernel image in FIT is mandatory. The +:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the kernel image in FIT is mandatory. The address where the kernel image is to be loaded by U-Boot is specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`. Multiple device trees can be added to the FIT image created by -``kernel-fitimage`` and the device tree is optional. +:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the device tree is optional. The address where the device tree is to be loaded by U-Boot is specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries. Only a single RAM disk can be added to the FIT image created by -``kernel-fitimage`` and the RAM disk in FIT is optional. +:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the RAM disk in FIT is optional. The address where the RAM disk image is to be loaded by U-Boot is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by :term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to FIT image when @@ -1368,7 +1416,7 @@ is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by is set to 0. Only a single Initramfs bundle can be added to the FIT image created by -``kernel-fitimage`` and the Initramfs bundle in FIT is optional. +:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the Initramfs bundle in FIT is optional. In case of Initramfs, the kernel is configured to be bundled with the root filesystem in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin). When the kernel is copied to RAM and executed, it unpacks the Initramfs root filesystem. @@ -1378,21 +1426,21 @@ The address where the Initramfs bundle is to be loaded by U-boot is specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`. Only a single U-boot boot script can be added to the FIT image created by -``kernel-fitimage`` and the boot script is optional. +:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the boot script is optional. The boot script is specified in the ITS file as a text file containing U-boot commands. When using a boot script the user should configure the U-boot :ref:`ref-tasks-install` task to copy the script to sysroot. -So the script can be included in the FIT image by the ``kernel-fitimage`` +So the script can be included in the FIT image by the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to load the boot script from the FIT image and executes it. -The FIT image generated by ``kernel-fitimage`` class is signed when the +The FIT image generated by :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class is signed when the variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`, :term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set appropriately. The default values used for :term:`FIT_HASH_ALG` and -:term:`FIT_SIGN_ALG` in ``kernel-fitimage`` are "sha256" and +:term:`FIT_SIGN_ALG` in :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` are "sha256" and "rsa2048" respectively. The keys for signing fitImage can be generated using -the ``kernel-fitimage`` class when both :term:`FIT_GENERATE_KEYS` and +the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class when both :term:`FIT_GENERATE_KEYS` and :term:`UBOOT_SIGN_ENABLE` are set to "1". @@ -1401,7 +1449,7 @@ the ``kernel-fitimage`` class when both :term:`FIT_GENERATE_KEYS` and ``kernel-grub.bbclass`` ======================= -The ``kernel-grub`` class updates the boot area and the boot menu with +The :ref:`kernel-grub <ref-classes-kernel-grub>` class updates the boot area and the boot menu with the kernel as the priority boot mechanism while installing a RPM to update the kernel on a deployed target. @@ -1410,7 +1458,7 @@ update the kernel on a deployed target. ``kernel-module-split.bbclass`` =============================== -The ``kernel-module-split`` class provides common functionality for +The :ref:`kernel-module-split <ref-classes-kernel-module-split>` class provides common functionality for splitting Linux kernel modules into separate packages. .. _ref-classes-kernel-uboot: @@ -1418,7 +1466,7 @@ splitting Linux kernel modules into separate packages. ``kernel-uboot.bbclass`` ======================== -The ``kernel-uboot`` class provides support for building from +The :ref:`kernel-uboot <ref-classes-kernel-uboot>` class provides support for building from vmlinux-style kernel sources. .. _ref-classes-kernel-uimage: @@ -1426,14 +1474,14 @@ vmlinux-style kernel sources. ``kernel-uimage.bbclass`` ========================= -The ``kernel-uimage`` class provides support to pack uImage. +The :ref:`kernel-uimage <ref-classes-kernel-uimage>` class provides support to pack uImage. .. _ref-classes-kernel-yocto: ``kernel-yocto.bbclass`` ======================== -The ``kernel-yocto`` class provides common functionality for building +The :ref:`kernel-yocto <ref-classes-kernel-yocto>` class provides common functionality for building from linux-yocto style kernel source repositories. .. _ref-classes-kernelsrc: @@ -1441,14 +1489,14 @@ from linux-yocto style kernel source repositories. ``kernelsrc.bbclass`` ===================== -The ``kernelsrc`` class sets the Linux kernel source and version. +The :ref:`kernelsrc <ref-classes-kernelsrc>` class sets the Linux kernel source and version. .. _ref-classes-lib_package: ``lib_package.bbclass`` ======================= -The ``lib_package`` class supports recipes that build libraries and +The :ref:`lib_package <ref-classes-lib_package>` class supports recipes that build libraries and produce executable binaries, where those binaries should not be installed by default along with the library. Instead, the binaries are added to a separate ``${``\ :term:`PN`\ ``}-bin`` package to @@ -1459,12 +1507,12 @@ make their installation optional. ``libc*.bbclass`` ================= -The ``libc*`` classes support recipes that build packages with ``libc``: +The :ref:`libc* <ref-classes-libc*>` classes support recipes that build packages with ``libc``: -- The ``libc-common`` class provides common support for building with +- The :ref:`libc-common <ref-classes-libc*>` class provides common support for building with ``libc``. -- The ``libc-package`` class supports packaging up ``glibc`` and +- The :ref:`libc-package <ref-classes-libc*>` class supports packaging up ``glibc`` and ``eglibc``. .. _ref-classes-license: @@ -1472,7 +1520,7 @@ The ``libc*`` classes support recipes that build packages with ``libc``: ``license.bbclass`` =================== -The ``license`` class provides license manifest creation and license +The :ref:`license <ref-classes-license>` class provides license manifest creation and license exclusion. This class is enabled by default using the default value for the :term:`INHERIT_DISTRO` variable. @@ -1481,7 +1529,7 @@ the :term:`INHERIT_DISTRO` variable. ``linux-kernel-base.bbclass`` ============================= -The ``linux-kernel-base`` class provides common functionality for +The :ref:`linux-kernel-base <ref-classes-linux-kernel-base>` class provides common functionality for recipes that build out of the Linux kernel source tree. These builds goes beyond the kernel itself. For example, the Perf recipe also inherits this class. @@ -1500,11 +1548,11 @@ number of other classes. ``logging.bbclass`` =================== -The ``logging`` class provides the standard shell functions used to log +The :ref:`logging <ref-classes-logging>` class provides the standard shell functions used to log messages for various BitBake severity levels (i.e. ``bbplain``, ``bbnote``, ``bbwarn``, ``bberror``, ``bbfatal``, and ``bbdebug``). -This class is enabled by default since it is inherited by the ``base`` +This class is enabled by default since it is inherited by the :ref:`base <ref-classes-base>` class. .. _ref-classes-metadata_scm: @@ -1512,20 +1560,20 @@ class. ``metadata_scm.bbclass`` ======================== -The ``metadata_scm`` class provides functionality for querying the +The :ref:`metadata_scm <ref-classes-metadata_scm>` class provides functionality for querying the branch and revision of a Source Code Manager (SCM) repository. The :ref:`base <ref-classes-base>` class uses this class to print the revisions of each layer before starting every build. The -``metadata_scm`` class is enabled by default because it is inherited by -the ``base`` class. +:ref:`metadata_scm <ref-classes-metadata_scm>` class is enabled by default because it is inherited by +the :ref:`base <ref-classes-base>` class. .. _ref-classes-migrate_localcount: ``migrate_localcount.bbclass`` ============================== -The ``migrate_localcount`` class verifies a recipe's localcount data and +The :ref:`migrate_localcount <ref-classes-migrate_localcount>` class verifies a recipe's localcount data and increments it appropriately. .. _ref-classes-mime: @@ -1533,7 +1581,7 @@ increments it appropriately. ``mime.bbclass`` ================ -The ``mime`` class generates the proper post-install and post-remove +The :ref:`mime <ref-classes-mime>` class generates the proper post-install and post-remove (postinst/postrm) scriptlets for packages that install MIME type files. These scriptlets call ``update-mime-database`` to add the MIME types to the shared database. @@ -1543,7 +1591,7 @@ the shared database. ``mirrors.bbclass`` =================== -The ``mirrors`` class sets up some standard +The :ref:`mirrors <ref-classes-mirrors>` class sets up some standard :term:`MIRRORS` entries for source code mirrors. These mirrors provide a fall-back path in case the upstream source specified in :term:`SRC_URI` within recipes is unavailable. @@ -1556,7 +1604,7 @@ This class is enabled by default since it is inherited by the ``module.bbclass`` ================== -The ``module`` class provides support for building out-of-tree Linux +The :ref:`module <ref-classes-module>` class provides support for building out-of-tree Linux kernel modules. The class inherits the :ref:`module-base <ref-classes-module-base>` and :ref:`kernel-module-split <ref-classes-kernel-module-split>` classes, @@ -1573,7 +1621,7 @@ section in the Yocto Project Linux Kernel Development Manual. ``module-base.bbclass`` ======================= -The ``module-base`` class provides the base functionality for building +The :ref:`module-base <ref-classes-module-base>` class provides the base functionality for building Linux kernel modules. Typically, a recipe that builds software that includes one or more kernel modules and has its own means of building the module inherits this class as opposed to inheriting the @@ -1584,7 +1632,7 @@ the module inherits this class as opposed to inheriting the ``multilib*.bbclass`` ===================== -The ``multilib*`` classes provide support for building libraries with +The :ref:`multilib* <ref-classes-multilib*>` classes provide support for building libraries with different target optimizations or target architectures and installing them side-by-side in the same image. @@ -1597,17 +1645,17 @@ section in the Yocto Project Development Tasks Manual. ``native.bbclass`` ================== -The ``native`` class provides common functionality for recipes that +The :ref:`native <ref-classes-native>` class provides common functionality for recipes that build tools to run on the :term:`Build Host` (i.e. tools that use the compiler or other tools from the build host). You can create a recipe that builds tools that run natively on the host a couple different ways: -- Create a ``myrecipe-native.bb`` recipe that inherits the ``native`` +- Create a ``myrecipe-native.bb`` recipe that inherits the :ref:`native <ref-classes-native>` class. If you use this method, you must order the inherit statement in the recipe after all other inherit statements so that the - ``native`` class is inherited last. + :ref:`native <ref-classes-native>` class is inherited last. .. note:: @@ -1629,7 +1677,7 @@ a couple different ways: specify any functionality specific to the respective native or target case. -Although applied differently, the ``native`` class is used with both +Although applied differently, the :ref:`native <ref-classes-native>` class is used with both methods. The advantage of the second method is that you do not need to have two separate recipes (assuming you need both) for native and target. All common parts of the recipe are automatically shared. @@ -1639,7 +1687,7 @@ target. All common parts of the recipe are automatically shared. ``nativesdk.bbclass`` ===================== -The ``nativesdk`` class provides common functionality for recipes that +The :ref:`nativesdk <ref-classes-nativesdk>` class provides common functionality for recipes that wish to build tools to run as part of an SDK (i.e. tools that run on :term:`SDKMACHINE`). @@ -1647,11 +1695,11 @@ You can create a recipe that builds tools that run on the SDK machine a couple different ways: - Create a ``nativesdk-myrecipe.bb`` recipe that inherits the - ``nativesdk`` class. If you use this method, you must order the + :ref:`nativesdk <ref-classes-nativesdk>` class. If you use this method, you must order the inherit statement in the recipe after all other inherit statements so - that the ``nativesdk`` class is inherited last. + that the :ref:`nativesdk <ref-classes-nativesdk>` class is inherited last. -- Create a ``nativesdk`` variant of any recipe by adding the following:: +- Create a :ref:`nativesdk <ref-classes-nativesdk>` variant of any recipe by adding the following:: BBCLASSEXTEND = "nativesdk" @@ -1670,7 +1718,7 @@ couple different ways: Not doing so can lead to subtle problems because there is code that depends on the naming convention. -Although applied differently, the ``nativesdk`` class is used with both +Although applied differently, the :ref:`nativesdk <ref-classes-nativesdk>` class is used with both methods. The advantage of the second method is that you do not need to have two separate recipes (assuming you need both) for the SDK machine and the target. All common parts of the recipe are automatically shared. @@ -1705,11 +1753,11 @@ section in the Yocto Project Development Tasks Manual. ``oelint.bbclass`` ================== -The ``oelint`` class is an obsolete lint checking tool available in +The :ref:`oelint <ref-classes-oelint>` class is an obsolete lint checking tool available in ``meta/classes`` in the :term:`Source Directory`. There are some classes that could be generally useful in OE-Core but -are never actually used within OE-Core itself. The ``oelint`` class is +are never actually used within OE-Core itself. The :ref:`oelint <ref-classes-oelint>` class is one such example. However, being aware of this class can reduce the proliferation of different versions of similar classes across multiple layers. @@ -1738,7 +1786,7 @@ is supported by ``overlayfs``. This has to be done in your machine configuration * QA checks fail to catch file existence if you redefine this variable in your recipe! * Only the existence of the systemd mount unit file is checked, not its contents. * To get more details on ``overlayfs``, its internals and supported operations, please refer - to the official documentation of the `Linux kernel <https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html>`_. + to the official documentation of the `Linux kernel <https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html>`__. The class assumes you have a ``data.mount`` systemd unit defined elsewhere in your BSP (e.g. in ``systemd-machine-units`` recipe) and it's installed into the image. @@ -1828,7 +1876,7 @@ The class provides two options for ``/sbin/init`` generation: ``own-mirrors.bbclass`` ======================= -The ``own-mirrors`` class makes it easier to set up your own +The :ref:`own-mirrors <ref-classes-own-mirrors>` class makes it easier to set up your own :term:`PREMIRRORS` from which to first fetch source before attempting to fetch it from the upstream specified in :term:`SRC_URI` within each recipe. @@ -1847,7 +1895,7 @@ in :term:`SOURCE_MIRROR_URL`. ``package.bbclass`` =================== -The ``package`` class supports generating packages from a build's +The :ref:`package <ref-classes-package>` class supports generating packages from a build's output. The core generic functionality is in ``package.bbclass``. The code specific to particular package types resides in these package-specific classes: @@ -1858,18 +1906,16 @@ package-specific classes: .. note:: - The - package_tar - class is broken and not supported. It is recommended that you do not - use this class. + The :ref:`package_tar <ref-classes-package_tar>` class is broken and + not supported. It is recommended that you do not use this class. You can control the list of resulting package formats by using the :term:`PACKAGE_CLASSES` variable defined in your ``conf/local.conf`` configuration file, which is located in the :term:`Build Directory`. -When defining the variable, you can -specify one or more package types. Since images are generated from -packages, a packaging class is needed to enable image generation. The -first class listed in this variable is used for image generation. +When defining the variable, you can specify one or more package types. +Since images are generated from packages, a packaging class is needed +to enable image generation. The first class listed in this variable is +used for image generation. If you take the optional step to set up a repository (package feed) on the development host that can be used by DNF, you can install packages @@ -1886,7 +1932,7 @@ complete build of the package with all dependencies previously built. The reason for this discrepancy is because the RPM package manager creates and processes more :term:`Metadata` than the IPK package manager. Consequently, you might consider setting :term:`PACKAGE_CLASSES` to -"package_ipk" if you are building smaller systems. +":ref:`package_ipk <ref-classes-package_ipk>`" if you are building smaller systems. Before making your package manager decision, however, you should consider some further things about using RPM: @@ -1914,7 +1960,7 @@ at these two Yocto Project mailing list links: ``package_deb.bbclass`` ======================= -The ``package_deb`` class provides support for creating packages that +The :ref:`package_deb <ref-classes-package_deb>` class provides support for creating packages that use the Debian (i.e. ``.deb``) file format. The class ensures the packages are written out in a ``.deb`` file format to the ``${``\ :term:`DEPLOY_DIR_DEB`\ ``}`` directory. @@ -1928,7 +1974,7 @@ variable in the ``local.conf`` file. ``package_ipk.bbclass`` ======================= -The ``package_ipk`` class provides support for creating packages that +The :ref:`package_ipk <ref-classes-package_ipk>` class provides support for creating packages that use the IPK (i.e. ``.ipk``) file format. The class ensures the packages are written out in a ``.ipk`` file format to the ``${``\ :term:`DEPLOY_DIR_IPK`\ ``}`` directory. @@ -1942,7 +1988,7 @@ variable in the ``local.conf`` file. ``package_rpm.bbclass`` ======================= -The ``package_rpm`` class provides support for creating packages that +The :ref:`package_rpm <ref-classes-package_rpm>` class provides support for creating packages that use the RPM (i.e. ``.rpm``) file format. The class ensures the packages are written out in a ``.rpm`` file format to the ``${``\ :term:`DEPLOY_DIR_RPM`\ ``}`` directory. @@ -1956,7 +2002,7 @@ variable in the ``local.conf`` file. ``package_tar.bbclass`` ======================= -The ``package_tar`` class provides support for creating tarballs. The +The :ref:`package_tar <ref-classes-package_tar>` class provides support for creating tarballs. The class ensures the packages are written out in a tarball format to the ``${``\ :term:`DEPLOY_DIR_TAR`\ ``}`` directory. @@ -1966,7 +2012,7 @@ variable in the ``local.conf`` file. .. note:: - You cannot specify the ``package_tar`` class first using the + You cannot specify the :ref:`package_tar <ref-classes-package_tar>` class first using the :term:`PACKAGE_CLASSES` variable. You must use ``.deb``, ``.ipk``, or ``.rpm`` file formats for your image or SDK. @@ -1975,7 +2021,7 @@ variable in the ``local.conf`` file. ``packagedata.bbclass`` ======================= -The ``packagedata`` class provides common functionality for reading +The :ref:`packagedata <ref-classes-packagedata>` class provides common functionality for reading ``pkgdata`` files found in :term:`PKGDATA_DIR`. These files contain information about each output package produced by the OpenEmbedded build system. @@ -1988,7 +2034,7 @@ This class is enabled by default because it is inherited by the ``packagegroup.bbclass`` ======================== -The ``packagegroup`` class sets default values appropriate for package +The :ref:`packagegroup <ref-classes-packagegroup>` class sets default values appropriate for package group recipes (e.g. :term:`PACKAGES`, :term:`PACKAGE_ARCH`, :term:`ALLOW_EMPTY`, and so forth). It is highly recommended that all package group recipes inherit this class. @@ -2004,7 +2050,7 @@ Previously, this class was called the ``task`` class. ``patch.bbclass`` ================= -The ``patch`` class provides all functionality for applying patches +The :ref:`patch <ref-classes-patch>` class provides all functionality for applying patches during the :ref:`ref-tasks-patch` task. This class is enabled by default because it is inherited by the @@ -2015,7 +2061,7 @@ This class is enabled by default because it is inherited by the ``perlnative.bbclass`` ====================== -When inherited by a recipe, the ``perlnative`` class supports using the +When inherited by a recipe, the :ref:`perlnative <ref-classes-perlnative>` class supports using the native version of Perl built by the build system rather than using the version provided by the build host. @@ -2024,14 +2070,14 @@ version provided by the build host. ``pypi.bbclass`` ================ -The ``pypi`` class sets variables appropriately for recipes that build +The :ref:`pypi <ref-classes-pypi>` class sets variables appropriately for recipes that build Python modules from `PyPI <https://pypi.org/>`__, the Python Package Index. By default it determines the PyPI package name based upon :term:`BPN` (stripping the "python-" or "python3-" prefix off if present), however in some cases you may need to set it manually in the recipe by setting :term:`PYPI_PACKAGE`. -Variables set by the ``pypi`` class include :term:`SRC_URI`, :term:`SECTION`, +Variables set by the :ref:`pypi <ref-classes-pypi>` class include :term:`SRC_URI`, :term:`SECTION`, :term:`HOMEPAGE`, :term:`UPSTREAM_CHECK_URI`, :term:`UPSTREAM_CHECK_REGEX` and :term:`CVE_PRODUCT`. @@ -2040,7 +2086,7 @@ and :term:`CVE_PRODUCT`. ``python_flit_core.bbclass`` ============================ -The ``python_flit_core`` class enables building Python modules which declare +The :ref:`python_flit_core <ref-classes-python_flit_core>` class enables building Python modules which declare the `PEP-517 <https://www.python.org/dev/peps/pep-0517/>`__ compliant ``flit_core.buildapi`` ``build-backend`` in the ``[build-system]`` section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep-0518/>`__). @@ -2055,7 +2101,7 @@ Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class. ``python_pep517.bbclass`` ========================= -The ``python_pep517`` class builds and installs a Python ``wheel`` binary +The :ref:`python_pep517 <ref-classes-python_pep517>` class builds and installs a Python ``wheel`` binary archive (see `PEP-517 <https://peps.python.org/pep-0517/>`__). Recipes wouldn't inherit this directly, instead typically another class will @@ -2071,7 +2117,7 @@ Examples of classes which do this are :ref:`python_flit_core ``python_poetry_core.bbclass`` ============================== -The ``python_poetry_core`` class enables building Python modules which use the +The :ref:`python_poetry_core <ref-classes-python_poetry_core>` class enables building Python modules which use the `Poetry Core <https://python-poetry.org>`__ build system. Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class. @@ -2081,7 +2127,7 @@ Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class. ``pixbufcache.bbclass`` ======================= -The ``pixbufcache`` class generates the proper post-install and +The :ref:`pixbufcache <ref-classes-pixbufcache>` class generates the proper post-install and post-remove (postinst/postrm) scriptlets for packages that install pixbuf loaders, which are used with ``gdk-pixbuf``. These scriptlets call ``update_pixbuf_cache`` to add the pixbuf loaders to the cache. @@ -2099,13 +2145,13 @@ containing the loaders. ``pkgconfig.bbclass`` ===================== -The ``pkgconfig`` class provides a standard way to get header and +The :ref:`pkgconfig <ref-classes-pkgconfig>` class provides a standard way to get header and library information by using ``pkg-config``. This class aims to smooth integration of ``pkg-config`` into libraries that use it. During staging, BitBake installs ``pkg-config`` data into the ``sysroots/`` directory. By making use of sysroot functionality within -``pkg-config``, the ``pkgconfig`` class no longer has to manipulate the +``pkg-config``, the :ref:`pkgconfig <ref-classes-pkgconfig>` class no longer has to manipulate the files. .. _ref-classes-populate-sdk: @@ -2113,7 +2159,7 @@ files. ``populate_sdk.bbclass`` ======================== -The ``populate_sdk`` class provides support for SDK-only recipes. For +The :ref:`populate_sdk <ref-classes-populate-sdk>` class provides support for SDK-only recipes. For information on advantages gained when building a cross-development toolchain using the :ref:`ref-tasks-populate_sdk` task, see the ":ref:`sdk-manual/appendix-obtain:building an sdk installer`" @@ -2125,31 +2171,31 @@ Software Development Kit (eSDK) manual. ``populate_sdk_*.bbclass`` ========================== -The ``populate_sdk_*`` classes support SDK creation and consist of the +The :ref:`populate_sdk_* <ref-classes-populate-sdk-*>` classes support SDK creation and consist of the following classes: -- ``populate_sdk_base``: The base class supporting SDK creation under +- :ref:`populate_sdk_base <ref-classes-populate-sdk-*>`: The base class supporting SDK creation under all package managers (i.e. DEB, RPM, and opkg). -- ``populate_sdk_deb``: Supports creation of the SDK given the Debian +- :ref:`populate_sdk_deb <ref-classes-populate-sdk-*>`: Supports creation of the SDK given the Debian package manager. -- ``populate_sdk_rpm``: Supports creation of the SDK given the RPM +- :ref:`populate_sdk_rpm <ref-classes-populate-sdk-*>`: Supports creation of the SDK given the RPM package manager. -- ``populate_sdk_ipk``: Supports creation of the SDK given the opkg +- :ref:`populate_sdk_ipk <ref-classes-populate-sdk-*>`: Supports creation of the SDK given the opkg (IPK format) package manager. -- ``populate_sdk_ext``: Supports extensible SDK creation under all +- :ref:`populate_sdk_ext <ref-classes-populate-sdk-*>`: Supports extensible SDK creation under all package managers. -The ``populate_sdk_base`` class inherits the appropriate +The :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class inherits the appropriate ``populate_sdk_*`` (i.e. ``deb``, ``rpm``, and ``ipk``) based on :term:`IMAGE_PKGTYPE`. The base class ensures all source and destination directories are established and then populates the SDK. After populating the SDK, the -``populate_sdk_base`` class constructs two sysroots: +:ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class constructs two sysroots: ``${``\ :term:`SDK_ARCH`\ ``}-nativesdk``, which contains the cross-compiler and associated tooling, and the target, which contains a target root filesystem that is configured for the SDK @@ -2162,9 +2208,9 @@ which consists of the following:: Finally, the base populate SDK class creates the toolchain environment setup script, the tarball of the SDK, and the installer. -The respective ``populate_sdk_deb``, ``populate_sdk_rpm``, and -``populate_sdk_ipk`` classes each support the specific type of SDK. -These classes are inherited by and used with the ``populate_sdk_base`` +The respective :ref:`populate_sdk_deb <ref-classes-populate-sdk-*>`, :ref:`populate_sdk_rpm <ref-classes-populate-sdk-*>`, and +:ref:`populate_sdk_ipk <ref-classes-populate-sdk-*>` classes each support the specific type of SDK. +These classes are inherited by and used with the :ref:`populate_sdk_base <ref-classes-populate-sdk-*>` class. For more information on the cross-development toolchain generation, see @@ -2182,7 +2228,7 @@ Software Development Kit (eSDK) manual. ``prexport.bbclass`` ==================== -The ``prexport`` class provides functionality for exporting +The :ref:`prexport <ref-classes-prexport>` class provides functionality for exporting :term:`PR` values. .. note:: @@ -2195,7 +2241,7 @@ The ``prexport`` class provides functionality for exporting ``primport.bbclass`` ==================== -The ``primport`` class provides functionality for importing +The :ref:`primport <ref-classes-primport>` class provides functionality for importing :term:`PR` values. .. note:: @@ -2208,7 +2254,7 @@ The ``primport`` class provides functionality for importing ``prserv.bbclass`` ================== -The ``prserv`` class provides functionality for using a :ref:`PR +The :ref:`prserv <ref-classes-prserv>` class provides functionality for using a :ref:`PR service <dev-manual/common-tasks:working with a pr service>` in order to automatically manage the incrementing of the :term:`PR` variable for each recipe. @@ -2223,7 +2269,7 @@ build system will not enable the functionality of this class unless ``ptest.bbclass`` ================= -The ``ptest`` class provides functionality for packaging and installing +The :ref:`ptest <ref-classes-ptest>` class provides functionality for packaging and installing runtime tests for recipes that build software that provides these tests. This class is intended to be inherited by individual recipes. However, @@ -2250,7 +2296,7 @@ section in the Yocto Project Development Tasks Manual. ``python3-dir.bbclass`` ======================= -The ``python3-dir`` class provides the base version, location, and site +The :ref:`python3-dir <ref-classes-python3-dir>` class provides the base version, location, and site package location for Python 3. .. _ref-classes-python3native: @@ -2258,7 +2304,7 @@ package location for Python 3. ``python3native.bbclass`` ========================= -The ``python3native`` class supports using the native version of Python +The :ref:`python3native <ref-classes-python3native>` class supports using the native version of Python 3 built by the build system rather than support of the version provided by the build host. @@ -2267,7 +2313,7 @@ by the build host. ``python3targetconfig.bbclass`` =============================== -The ``python3targetconfig`` class supports using the native version of Python +The :ref:`python3targetconfig <ref-classes-python3targetconfig>` class supports using the native version of Python 3 built by the build system rather than support of the version provided by the build host, except that the configuration for the target machine is accessible (such as correct installation directories). This also adds a @@ -2279,7 +2325,7 @@ in order to avoid unnecessarily lengthening builds. ``qemu.bbclass`` ================ -The ``qemu`` class provides functionality for recipes that either need +The :ref:`qemu <ref-classes-qemu>` class provides functionality for recipes that either need QEMU or test for the existence of QEMU. Typically, this class is used to run programs for a target system on the build host using QEMU's application emulation mode. @@ -2289,7 +2335,7 @@ application emulation mode. ``recipe_sanity.bbclass`` ========================= -The ``recipe_sanity`` class checks for the presence of any host system +The :ref:`recipe_sanity <ref-classes-recipe_sanity>` class checks for the presence of any host system recipe prerequisites that might affect the build (e.g. variables that are set or software that is present). @@ -2298,7 +2344,7 @@ are set or software that is present). ``relocatable.bbclass`` ======================= -The ``relocatable`` class enables relocation of binaries when they are +The :ref:`relocatable <ref-classes-relocatable>` class enables relocation of binaries when they are installed into the sysroot. This class makes use of the :ref:`chrpath <ref-classes-chrpath>` class @@ -2310,7 +2356,7 @@ and is used by both the :ref:`cross <ref-classes-cross>` and ``remove-libtool.bbclass`` ========================== -The ``remove-libtool`` class adds a post function to the +The :ref:`remove-libtool <ref-classes-remove-libtool>` class adds a post function to the :ref:`ref-tasks-install` task to remove all ``.la`` files installed by ``libtool``. Removing these files results in them being absent from both the sysroot and target packages. @@ -2322,14 +2368,14 @@ override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows:: .. note:: - The ``remove-libtool`` class is not enabled by default. + The :ref:`remove-libtool <ref-classes-remove-libtool>` class is not enabled by default. .. _ref-classes-report-error: ``report-error.bbclass`` ======================== -The ``report-error`` class supports enabling the :ref:`error reporting +The :ref:`report-error <ref-classes-report-error>` class supports enabling the :ref:`error reporting tool <dev-manual/common-tasks:using the error reporting tool>`", which allows you to submit build error information to a central database. @@ -2344,7 +2390,7 @@ are created and stored in ``rm_work.bbclass`` =================== -The ``rm_work`` class supports deletion of temporary workspace, which +The :ref:`rm_work <ref-classes-rm-work>` class supports deletion of temporary workspace, which can ease your hard drive demands during builds. The OpenEmbedded build system can use a substantial amount of disk space @@ -2354,17 +2400,16 @@ system generates the packages for a recipe, the work files for that recipe are no longer needed. However, by default, the build system preserves these files for inspection and possible debugging purposes. If you would rather have these files deleted to save disk space as the -build progresses, you can enable ``rm_work`` by adding the following to -your ``local.conf`` file, which is found in the :term:`Build Directory`. -:: +build progresses, you can enable :ref:`rm_work <ref-classes-rm-work>` by adding the following to +your ``local.conf`` file, which is found in the :term:`Build Directory`:: INHERIT += "rm_work" If you are modifying and building source code out of the work directory for a -recipe, enabling ``rm_work`` will potentially result in your changes to +recipe, enabling :ref:`rm_work <ref-classes-rm-work>` will potentially result in your changes to the source being lost. To exclude some recipes from having their work -directories deleted by ``rm_work``, you can add the names of the recipe +directories deleted by :ref:`rm_work <ref-classes-rm-work>`, you can add the names of the recipe or recipes you are working on to the :term:`RM_WORK_EXCLUDE` variable, which can also be set in your ``local.conf`` file. Here is an example:: @@ -2375,26 +2420,26 @@ can also be set in your ``local.conf`` file. Here is an example:: ``rootfs*.bbclass`` =================== -The ``rootfs*`` classes support creating the root filesystem for an +The :ref:`rootfs* <ref-classes-rootfs*>` classes support creating the root filesystem for an image and consist of the following classes: -- The ``rootfs-postcommands`` class, which defines filesystem +- The :ref:`rootfs-postcommands <ref-classes-rootfs*>` class, which defines filesystem post-processing functions for image recipes. -- The ``rootfs_deb`` class, which supports creation of root filesystems +- The :ref:`rootfs_deb <ref-classes-rootfs*>` class, which supports creation of root filesystems for images built using ``.deb`` packages. -- The ``rootfs_rpm`` class, which supports creation of root filesystems +- The :ref:`rootfs_rpm <ref-classes-rootfs*>` class, which supports creation of root filesystems for images built using ``.rpm`` packages. -- The ``rootfs_ipk`` class, which supports creation of root filesystems +- The :ref:`rootfs_ipk <ref-classes-rootfs*>` class, which supports creation of root filesystems for images built using ``.ipk`` packages. -- The ``rootfsdebugfiles`` class, which installs additional files found +- The :ref:`rootfsdebugfiles <ref-classes-rootfs*>` class, which installs additional files found on the build host directly into the root filesystem. The root filesystem is created from packages using one of the -``rootfs*.bbclass`` files as determined by the +:ref:`rootfs*.bbclass <ref-classes-rootfs*>` files as determined by the :term:`PACKAGE_CLASSES` variable. For information on how root filesystem images are created, see the @@ -2406,7 +2451,7 @@ section in the Yocto Project Overview and Concepts Manual. ``sanity.bbclass`` ================== -The ``sanity`` class checks to see if prerequisite software is present +The :ref:`sanity <ref-classes-sanity>` class checks to see if prerequisite software is present on the host system so that users can be notified of potential problems that might affect their build. The class also performs basic user configuration checks from the ``local.conf`` configuration file to @@ -2418,7 +2463,7 @@ usually determines whether to include this class. ``scons.bbclass`` ================= -The ``scons`` class supports recipes that need to build software that +The :ref:`scons <ref-classes-scons>` class supports recipes that need to build software that uses the SCons build system. You can use the :term:`EXTRA_OESCONS` variable to specify additional configuration options you want to pass SCons command line. @@ -2428,7 +2473,7 @@ additional configuration options you want to pass SCons command line. ``sdl.bbclass`` =============== -The ``sdl`` class supports recipes that need to build software that uses +The :ref:`sdl <ref-classes-sdl>` class supports recipes that need to build software that uses the Simple DirectMedia Layer (SDL) library. .. _ref-classes-python_setuptools_build_meta: @@ -2436,7 +2481,7 @@ the Simple DirectMedia Layer (SDL) library. ``python_setuptools_build_meta.bbclass`` ======================================== -The ``python_setuptools_build_meta`` class enables building Python modules which +The :ref:`python_setuptools_build_meta <ref-classes-python_setuptools_build_meta>` class enables building Python modules which declare the `PEP-517 <https://www.python.org/dev/peps/pep-0517/>`__ compliant ``setuptools.build_meta`` ``build-backend`` in the ``[build-system]`` @@ -2452,14 +2497,14 @@ Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class. ``setuptools3.bbclass`` ======================= -The ``setuptools3`` class supports Python version 3.x extensions that +The :ref:`setuptools3 <ref-classes-setuptools3>` class supports Python version 3.x extensions that use build systems based on ``setuptools`` (e.g. only have a ``setup.py`` and have not migrated to the official ``pyproject.toml`` format). If your recipe -uses these build systems, the recipe needs to inherit the ``setuptools3`` class. +uses these build systems, the recipe needs to inherit the :ref:`setuptools3 <ref-classes-setuptools3>` class. .. note:: - The ``setuptools3`` class :ref:`ref-tasks-compile` task now calls + The :ref:`setuptools3 <ref-classes-setuptools3>` class :ref:`ref-tasks-compile` task now calls ``setup.py bdist_wheel`` to build the ``wheel`` binary archive format (See `PEP-427 <https://www.python.org/dev/peps/pep-0427/>`__). @@ -2470,7 +2515,7 @@ uses these build systems, the recipe needs to inherit the ``setuptools3`` class. .. note:: - The ``setuptools3`` class :ref:`ref-tasks-install` task now installs the ``wheel`` + The :ref:`setuptools3 <ref-classes-setuptools3>` class :ref:`ref-tasks-install` task now installs the ``wheel`` binary archive. In current versions of ``setuptools`` the legacy ``setup.py install`` method is deprecated. If the ``setup.py`` cannot be used with wheels, for example it creates files outside of the Python module or @@ -2482,12 +2527,12 @@ uses these build systems, the recipe needs to inherit the ``setuptools3`` class. ``setuptools3_legacy.bbclass`` ============================== -The ``setuptools3_legacy`` class supports Python version 3.x extensions that use +The :ref:`setuptools3_legacy <ref-classes-setuptools3_legacy>` class supports Python version 3.x extensions that use build systems based on ``setuptools`` (e.g. only have a ``setup.py`` and have not migrated to the official ``pyproject.toml`` format). Unlike ``setuptools3.bbclass``, this uses the traditional ``setup.py`` ``build`` and ``install`` commands and not wheels. This use of ``setuptools`` like this is -`deprecated <https://github.com/pypa/setuptools/blob/main/CHANGES.rst#v5830>`_ +`deprecated <https://github.com/pypa/setuptools/blob/main/CHANGES.rst#v5830>`__ but still relatively common. .. _ref-classes-setuptools3-base: @@ -2495,7 +2540,7 @@ but still relatively common. ``setuptools3-base.bbclass`` ============================ -The ``setuptools3-base`` class provides a reusable base for other classes +The :ref:`setuptools3-base <ref-classes-setuptools3-base>` class provides a reusable base for other classes that support building Python version 3.x extensions. If you need functionality that is not provided by the :ref:`setuptools3 <ref-classes-setuptools3>` class, you may want to ``inherit setuptools3-base``. Some recipes do not need the tasks @@ -2506,14 +2551,14 @@ in the :ref:`setuptools3 <ref-classes-setuptools3>` class and inherit this class ``sign_rpm.bbclass`` ==================== -The ``sign_rpm`` class supports generating signed RPM packages. +The :ref:`sign_rpm <ref-classes-sign_rpm>` class supports generating signed RPM packages. .. _ref-classes-sip: ``sip.bbclass`` =============== -The ``sip`` class supports recipes that build or package SIP-based +The :ref:`sip <ref-classes-sip>` class supports recipes that build or package SIP-based Python bindings. .. _ref-classes-siteconfig: @@ -2521,7 +2566,7 @@ Python bindings. ``siteconfig.bbclass`` ====================== -The ``siteconfig`` class provides functionality for handling site +The :ref:`siteconfig <ref-classes-siteconfig>` class provides functionality for handling site configuration. The class is used by the :ref:`autotools <ref-classes-autotools>` class to accelerate the :ref:`ref-tasks-configure` task. @@ -2531,7 +2576,7 @@ configuration. The class is used by the ``siteinfo.bbclass`` ==================== -The ``siteinfo`` class provides information about the targets that might +The :ref:`siteinfo <ref-classes-siteinfo>` class provides information about the targets that might be needed by other classes or recipes. As an example, consider Autotools, which can require tests that must @@ -2552,7 +2597,7 @@ The class also provides variables like :term:`SITEINFO_ENDIANNESS` and ``sstate.bbclass`` ================== -The ``sstate`` class provides support for Shared State (sstate). By +The :ref:`sstate <ref-classes-sstate>` class provides support for Shared State (sstate). By default, the class is enabled through the :term:`INHERIT_DISTRO` variable's default value. @@ -2565,7 +2610,7 @@ section in the Yocto Project Overview and Concepts Manual. ``staging.bbclass`` =================== -The ``staging`` class installs files into individual recipe work +The :ref:`staging <ref-classes-staging>` class installs files into individual recipe work directories for sysroots. The class contains the following key tasks: - The :ref:`ref-tasks-populate_sysroot` task, @@ -2578,7 +2623,7 @@ directories for sysroots. The class contains the following key tasks: installs the files into the individual recipe work directories (i.e. :term:`WORKDIR`). -The code in the ``staging`` class is complex and basically works in two +The code in the :ref:`staging <ref-classes-staging>` class is complex and basically works in two stages: - *Stage One:* The first stage addresses recipes that have files they @@ -2665,7 +2710,7 @@ stages: ``syslinux.bbclass`` ==================== -The ``syslinux`` class provides syslinux-specific functions for building +The :ref:`syslinux <ref-classes-syslinux>` class provides syslinux-specific functions for building bootable images. The class supports the following variables: @@ -2708,7 +2753,7 @@ The class supports the following variables: ``systemd.bbclass`` =================== -The ``systemd`` class provides support for recipes that install systemd +The :ref:`systemd <ref-classes-systemd>` class provides support for recipes that install systemd unit files. The functionality for this class is disabled unless you have "systemd" @@ -2734,7 +2779,7 @@ Services are set up to start on boot automatically unless you have set :term:`SYSTEMD_AUTO_ENABLE` to "disable". -For more information on ``systemd``, see the +For more information on :ref:`systemd <ref-classes-systemd>`, see the ":ref:`dev-manual/common-tasks:selecting an initialization manager`" section in the Yocto Project Development Tasks Manual. @@ -2743,17 +2788,17 @@ section in the Yocto Project Development Tasks Manual. ``systemd-boot.bbclass`` ======================== -The ``systemd-boot`` class provides functions specific to the +The :ref:`systemd-boot <ref-classes-systemd-boot>` class provides functions specific to the systemd-boot bootloader for building bootable images. This is an internal class and is not intended to be used directly. .. note:: - The ``systemd-boot`` class is a result from merging the ``gummiboot`` class + The :ref:`systemd-boot <ref-classes-systemd-boot>` class is a result from merging the ``gummiboot`` class used in previous Yocto Project releases with the ``systemd`` project. Set the :term:`EFI_PROVIDER` variable to -"systemd-boot" to use this class. Doing so creates a standalone EFI +":ref:`systemd-boot <ref-classes-systemd-boot>`" to use this class. Doing so creates a standalone EFI bootloader that is not dependent on systemd. For information on more variables used and supported in this class, see @@ -2770,16 +2815,16 @@ for more information. ``terminal.bbclass`` ==================== -The ``terminal`` class provides support for starting a terminal session. +The :ref:`terminal <ref-classes-terminal>` class provides support for starting a terminal session. The :term:`OE_TERMINAL` variable controls which terminal emulator is used for the session. -Other classes use the ``terminal`` class anywhere a separate terminal +Other classes use the :ref:`terminal <ref-classes-terminal>` class anywhere a separate terminal session needs to be started. For example, the :ref:`patch <ref-classes-patch>` class assuming :term:`PATCHRESOLVE` is set to "user", the :ref:`cml1 <ref-classes-cml1>` class, and the -:ref:`devshell <ref-classes-devshell>` class all use the ``terminal`` +:ref:`devshell <ref-classes-devshell>` class all use the :ref:`terminal <ref-classes-terminal>` class. .. _ref-classes-testimage: @@ -2787,7 +2832,7 @@ class. ``testimage.bbclass`` ===================== -The ``testimage`` class supports running automated tests against +The :ref:`testimage <ref-classes-testimage>` class supports running automated tests against images using QEMU and on actual hardware. The classes handle loading the tests and starting the image. To use the classes, you need to perform steps to set up the environment. @@ -2799,7 +2844,7 @@ To enable this class, add the following to your configuration:: The tests are commands that run on the target system over ``ssh``. Each test is written in Python and makes use of the ``unittest`` module. -The ``testimage`` class runs tests on an image when called using the +The :ref:`testimage <ref-classes-testimage>` class runs tests on an image when called using the following:: $ bitbake -c testimage image @@ -2819,7 +2864,7 @@ section in the Yocto Project Development Tasks Manual. =================== This class supports running automated tests against software development -kits (SDKs). The ``testsdk`` class runs tests on an SDK when called +kits (SDKs). The :ref:`testsdk <ref-classes-testsdk>` class runs tests on an SDK when called using the following:: $ bitbake -c testsdk image @@ -2827,7 +2872,7 @@ using the following:: .. note:: Best practices include using :term:`IMAGE_CLASSES` rather than - :term:`INHERIT` to inherit the ``testsdk`` class for automated SDK + :term:`INHERIT` to inherit the :ref:`testsdk <ref-classes-testsdk>` class for automated SDK testing. .. _ref-classes-texinfo: @@ -2853,7 +2898,7 @@ host system. ``toaster.bbclass`` =================== -The ``toaster`` class collects information about packages and images and +The :ref:`toaster <ref-classes-toaster>` class collects information about packages and images and sends them as events that the BitBake user interface can receive. The class is enabled when the Toaster user interface is running. @@ -2864,7 +2909,7 @@ This class is not intended to be used directly. ``toolchain-scripts.bbclass`` ============================= -The ``toolchain-scripts`` class provides the scripts used for setting up +The :ref:`toolchain-scripts <ref-classes-toolchain-scripts>` class provides the scripts used for setting up the environment for installed SDKs. .. _ref-classes-typecheck: @@ -2872,7 +2917,7 @@ the environment for installed SDKs. ``typecheck.bbclass`` ===================== -The ``typecheck`` class provides support for validating the values of +The :ref:`typecheck <ref-classes-typecheck>` class provides support for validating the values of variables set at the configuration level against their defined types. The OpenEmbedded build system allows you to define the type of a variable using the "type" varflag. Here is an example:: @@ -2884,7 +2929,7 @@ variable using the "type" varflag. Here is an example:: ``uboot-config.bbclass`` ======================== -The ``uboot-config`` class provides support for U-Boot configuration for +The :ref:`uboot-config <ref-classes-uboot-config>` class provides support for U-Boot configuration for a machine. Specify the machine in your recipe as follows:: UBOOT_CONFIG ??= <default> @@ -2915,7 +2960,7 @@ yourself, publish the resulting tarball (e.g. via HTTP) and set ``UNINATIVE_URL`` and ``UNINATIVE_CHECKSUM`` appropriately. For an example, see the ``meta/conf/distro/include/yocto-uninative.inc``. -The ``uninative`` class is also used unconditionally by the extensible +The :ref:`uninative <ref-classes-uninative>` class is also used unconditionally by the extensible SDK. When building the extensible SDK, ``uninative-tarball`` is built and the resulting tarball is included within the SDK. @@ -2924,12 +2969,12 @@ and the resulting tarball is included within the SDK. ``update-alternatives.bbclass`` =============================== -The ``update-alternatives`` class helps the alternatives system when +The :ref:`update-alternatives <ref-classes-update-alternatives>` class helps the alternatives system when multiple sources provide the same command. This situation occurs when several programs that have the same or similar function are installed with the same name. For example, the ``ar`` command is available from the ``busybox``, ``binutils`` and ``elfutils`` packages. The -``update-alternatives`` class handles renaming the binaries so that +:ref:`update-alternatives <ref-classes-update-alternatives>` class handles renaming the binaries so that multiple packages can be installed without conflicts. The ``ar`` command still works regardless of which packages are installed or subsequently removed. The class renames the conflicting binary in each package and @@ -2962,7 +3007,7 @@ file. ``update-rc.d.bbclass`` ======================= -The ``update-rc.d`` class uses ``update-rc.d`` to safely install an +The :ref:`update-rc.d <ref-classes-update-rc.d>` class uses ``update-rc.d`` to safely install an initialization script on behalf of the package. The OpenEmbedded build system takes care of details such as making sure the script is stopped before a package is removed and started when the package is installed. @@ -2976,7 +3021,7 @@ for details. ``useradd*.bbclass`` ==================== -The ``useradd*`` classes support the addition of users or groups for +The :ref:`useradd* <ref-classes-useradd>` classes support the addition of users or groups for usage by the package on the target. For example, if you have packages that contain system services that should be run under their own user or group, you can use these classes to enable creation of the user or @@ -2985,16 +3030,16 @@ group. The :oe_git:`meta-skeleton/recipes-skeleton/useradd/useradd-example.bb recipe in the :term:`Source Directory` provides a simple example that shows how to add three users and groups to two packages. -The ``useradd_base`` class provides basic functionality for user or +The :ref:`useradd_base <ref-classes-useradd>` class provides basic functionality for user or groups settings. -The ``useradd*`` classes support the +The :ref:`useradd* <ref-classes-useradd>` classes support the :term:`USERADD_PACKAGES`, :term:`USERADD_PARAM`, :term:`GROUPADD_PARAM`, and :term:`GROUPMEMS_PARAM` variables. -The ``useradd-staticids`` class supports the addition of users or groups +The :ref:`useradd-staticids <ref-classes-useradd>` class supports the addition of users or groups that have static user identification (``uid``) and group identification (``gid``) values. @@ -3020,7 +3065,7 @@ additional information. .. note:: - You do not use the ``useradd-staticids`` class directly. You either enable + You do not use the :ref:`useradd-staticids <ref-classes-useradd>` class directly. You either enable or disable the class by setting the :term:`USERADDEXTENSION` variable. If you enable or disable the class in a configured system, :term:`TMPDIR` might contain incorrect ``uid`` and ``gid`` values. Deleting the :term:`TMPDIR` @@ -3031,7 +3076,7 @@ additional information. ``utility-tasks.bbclass`` ========================= -The ``utility-tasks`` class provides support for various "utility" type +The :ref:`utility-tasks <ref-classes-utility-tasks>` class provides support for various "utility" type tasks that are applicable to all recipes, such as :ref:`ref-tasks-clean` and :ref:`ref-tasks-listtasks`. @@ -3044,7 +3089,7 @@ This class is enabled by default because it is inherited by the ``utils.bbclass`` ================= -The ``utils`` class provides some useful Python functions that are +The :ref:`utils <ref-classes-utils>` class provides some useful Python functions that are typically used in inline Python expressions (e.g. ``${@...}``). One example use is for ``bb.utils.contains()``. @@ -3056,7 +3101,7 @@ This class is enabled by default because it is inherited by the ``vala.bbclass`` ================ -The ``vala`` class supports recipes that need to build software written +The :ref:`vala <ref-classes-vala>` class supports recipes that need to build software written using the Vala programming language. .. _ref-classes-waf: @@ -3064,7 +3109,7 @@ using the Vala programming language. ``waf.bbclass`` =============== -The ``waf`` class supports recipes that need to build software that uses +The :ref:`waf <ref-classes-waf>` class supports recipes that need to build software that uses the Waf build system. You can use the :term:`EXTRA_OECONF` or :term:`PACKAGECONFIG_CONFARGS` variables diff --git a/poky/documentation/ref-manual/faq.rst b/poky/documentation/ref-manual/faq.rst index a570c40e7d..d35ab78bff 100644 --- a/poky/documentation/ref-manual/faq.rst +++ b/poky/documentation/ref-manual/faq.rst @@ -270,7 +270,7 @@ the build environment setup script (i.e. :ref:`structure-core-script`). By default, this :term:`Build Directory` is named ``build`` but can be named anything you want. -Within the Build Directory, is the ``tmp`` directory. To remove all the +Within the :term:`Build Directory`, is the ``tmp`` directory. To remove all the build output yet preserve any source code or downloaded files from previous builds, simply remove the ``tmp`` directory. @@ -381,14 +381,13 @@ system of that image. Thus, the build system provides a value of forth. Meanwhile, ``DESTDIR`` is a path within the :term:`Build Directory`. -However, when the recipe builds a -native program (i.e. one that is intended to run on the build machine), -that program is never installed directly to the build machine's root -file system. Consequently, the build system uses paths within the Build -Directory for ``DESTDIR``, ``bindir`` and related variables. To better -understand this, consider the following two paths (artificially broken -across lines for readability) where the first is relatively normal and -the second is not:: +However, when the recipe builds a native program (i.e. one that is +intended to run on the build machine), that program is never installed +directly to the build machine's root file system. Consequently, the build +system uses paths within the Build Directory for ``DESTDIR``, ``bindir`` +and related variables. To better understand this, consider the following +two paths (artificially broken across lines for readability) where the +first is relatively normal and the second is not:: /home/maxtothemax/poky-bootchart2/build/tmp/work/i586-poky-linux/zlib/ 1.2.8-r0/sysroot-destdir/usr/bin diff --git a/poky/documentation/ref-manual/kickstart.rst b/poky/documentation/ref-manual/kickstart.rst index d82da0ee75..48bba58995 100644 --- a/poky/documentation/ref-manual/kickstart.rst +++ b/poky/documentation/ref-manual/kickstart.rst @@ -211,15 +211,10 @@ supports the following options: .. note:: Bootloader functionality and boot partitions are implemented by the - various - --source - plugins that implement bootloader functionality. The bootloader + various source plugins that implement bootloader functionality. The bootloader command essentially provides a means of modifying bootloader configuration. -- ``--timeout``: Specifies the number of seconds before the - bootloader times out and boots the default option. - - ``--append``: Specifies kernel parameters. These parameters will be added to the syslinux :term:`APPEND` or ``grub`` kernel command line. @@ -227,3 +222,13 @@ supports the following options: the bootloader. You can provide a full pathname for the file or a file located in the ``canned-wks`` folder. This option overrides all other bootloader options. + +- ``--ptable``: Specifies the partition table format. Valid values are: + + - ``msdos`` + + - ``gpt`` + +- ``--timeout``: Specifies the number of seconds before the + bootloader times out and boots the default option. + diff --git a/poky/documentation/ref-manual/structure.rst b/poky/documentation/ref-manual/structure.rst index fe27d17caa..8b08f88969 100644 --- a/poky/documentation/ref-manual/structure.rst +++ b/poky/documentation/ref-manual/structure.rst @@ -57,9 +57,8 @@ For more information on BitBake, see the :doc:`BitBake User Manual This directory contains user configuration files and the output generated by the OpenEmbedded build system in its standard configuration where the source tree is combined with the output. The :term:`Build Directory` -is created initially when you ``source`` -the OpenEmbedded build environment setup script (i.e. -:ref:`structure-core-script`). +is created initially when you ``source`` the OpenEmbedded build environment +setup script (i.e. :ref:`structure-core-script`). It is also possible to place output and configuration files in a directory separate from the :term:`Source Directory` by @@ -153,10 +152,10 @@ BitBake commands. The script uses other scripts within the ``scripts`` directory to do the bulk of the work. When you run this script, your Yocto Project environment is set up, a -:term:`Build Directory` is created, your working -directory becomes the Build Directory, and you are presented with some -simple suggestions as to what to do next, including a list of some -possible targets to build. Here is an example:: +:term:`Build Directory` is created, your working directory becomes the +:term:`Build Directory`, and you are presented with some simple +suggestions as to what to do next, including a list of some possible +targets to build. Here is an example:: $ source oe-init-build-env @@ -182,12 +181,13 @@ See the section in the Yocto Project Development Tasks Manual for more information. -By default, running this script without a Build Directory argument +By default, running this script without a :term:`Build Directory` argument creates the ``build/`` directory in your current working directory. If -you provide a Build Directory argument when you ``source`` the script, -you direct the OpenEmbedded build system to create a Build Directory of -your choice. For example, the following command creates a Build -Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`:: +you provide a :term:`Build Directory` argument when you ``source`` the script, +you direct the OpenEmbedded build system to create a :term:`Build Directory` of +your choice. For example, the following command creates a +:term:`Build Directory` named ``mybuilds/`` that is outside of the +:term:`Source Directory`:: $ source oe-init-build-env ~/mybuilds @@ -219,11 +219,10 @@ These files are standard top-level files. The Build Directory --- ``build/`` ================================== -The OpenEmbedded build system creates the :term:`Build Directory` -when you run the build environment setup -script :ref:`structure-core-script`. If you do not give the Build -Directory a specific name when you run the setup script, the name -defaults to ``build/``. +The OpenEmbedded build system creates the :term:`Build Directory` when you run +the build environment setup script :ref:`structure-core-script`. If you do not +give the :term:`Build Directory` a specific name when you run the setup script, +the name defaults to ``build/``. For subsequent parsing and processing, the name of the Build directory is available via the :term:`TOPDIR` variable. diff --git a/poky/documentation/ref-manual/system-requirements.rst b/poky/documentation/ref-manual/system-requirements.rst index acc97c9d08..1502633816 100644 --- a/poky/documentation/ref-manual/system-requirements.rst +++ b/poky/documentation/ref-manual/system-requirements.rst @@ -74,12 +74,12 @@ distributions: the supported platforms listed below. - You may use Windows Subsystem For Linux v2 to set up a build host - using Windows 10, but validation is not performed against build - hosts using WSLv2. + using Windows 10 or later, or Windows Server 2019 or later, but validation + is not performed against build hosts using WSL 2. - - The Yocto Project is not compatible with WSLv1, it is - compatible but not officially supported nor validated with - WSLv2, if you still decide to use WSL please upgrade to WSLv2. + See the + :ref:`dev-manual/start:setting up to use windows subsystem for linux (wsl 2)` + section in the Yocto Project Development Tasks Manual for more information. - If you encounter problems, please go to :yocto_bugs:`Yocto Project Bugzilla <>` and submit a bug. We are @@ -220,8 +220,13 @@ resolve this by installing a ``buildtools-extended`` tarball that contains additional tools, the equivalent of the Debian/Ubuntu ``build-essential`` package. +For systems with a broken make version (e.g. make 4.2.1 without patches) but +where the rest of the host tools are usable, you can use the ``buildtools-make`` +tarball instead. + In the sections that follow, three different methods will be described for -installing the ``buildtools`` or ``buildtools-extended`` toolset. +installing the ``buildtools``, ``buildtools-extended`` or ``buildtools-make`` +toolset. Installing a Pre-Built ``buildtools`` Tarball with ``install-buildtools`` script -------------------------------------------------------------------------------- @@ -256,6 +261,13 @@ installer and automatically installs the tools for you: $ cd poky $ scripts/install-buildtools + Alternatively if your host development system has a broken ``make`` + version such that you only need a known good version of ``make``, + you can use the ``--make-only`` option: + + $ cd poky + $ scripts/install-buildtools --make-only + 2. Source the tools environment setup script by using a command like the following:: @@ -290,6 +302,10 @@ steps: $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh + An example for the make-only installer:: + + $ sh ~/Downloads/x86_64-buildtools-make-nativesdk-standalone-&DISTRO;.sh + During execution, a prompt appears that allows you to choose the installation directory. For example, you could choose the following: ``/home/your-username/buildtools`` @@ -335,6 +351,10 @@ installer: $ bitbake buildtools-extended-tarball + or to build the make-only tarball:: + + $ bitbake buildtools-make-tarball + .. note:: The :term:`SDKMACHINE` variable in your ``local.conf`` file determines @@ -358,6 +378,10 @@ installer: $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh + or for the make-only installer:: + + $ sh ~/Downloads/x86_64-buildtools-make-nativesdk-standalone-&DISTRO;.sh + During execution, a prompt appears that allows you to choose the installation directory. For example, you could choose the following: ``/home/your_username/buildtools`` diff --git a/poky/documentation/ref-manual/terms.rst b/poky/documentation/ref-manual/terms.rst index 1e3f718a8f..40209528ba 100644 --- a/poky/documentation/ref-manual/terms.rst +++ b/poky/documentation/ref-manual/terms.rst @@ -64,31 +64,31 @@ universal, the list includes them just in case: builds. The area is created when you ``source`` the setup environment script that is found in the Source Directory (i.e. :ref:`ref-manual/structure:\`\`oe-init-build-env\`\``). The - :term:`TOPDIR` variable points to the Build Directory. + :term:`TOPDIR` variable points to the :term:`Build Directory`. - You have a lot of flexibility when creating the Build Directory. + You have a lot of flexibility when creating the :term:`Build Directory`. Following are some examples that show how to create the directory. The examples assume your :term:`Source Directory` is named ``poky``: - - Create the Build Directory inside your Source Directory and let - the name of the Build Directory default to ``build``: + - Create the :term:`Build Directory` inside your Source Directory and let + the name of the :term:`Build Directory` default to ``build``: .. code-block:: shell $ cd poky $ source oe-init-build-env - - Create the Build Directory inside your home directory and + - Create the :term:`Build Directory` inside your home directory and specifically name it ``test-builds``: .. code-block:: shell $ source poky/oe-init-build-env test-builds - - Provide a directory path and specifically name the Build - Directory. Any intermediate folders in the pathname must exist. - This next example creates a Build Directory named - ``YP-&DISTRO;`` within the existing directory ``mybuilds``: + - Provide a directory path and specifically name the + :term:`Build Directory`. Any intermediate folders in the pathname + must exist. This next example creates a :term:`Build Directory` + named ``YP-&DISTRO;`` within the existing directory ``mybuilds``: .. code-block:: shell @@ -96,13 +96,13 @@ universal, the list includes them just in case: .. note:: - By default, the Build Directory contains :term:`TMPDIR`, which is a + By default, the :term:`Build Directory` contains :term:`TMPDIR`, which is a temporary directory the build system uses for its work. :term:`TMPDIR` cannot - be under NFS. Thus, by default, the Build Directory cannot be under - NFS. However, if you need the Build Directory to be under NFS, you can + be under NFS. Thus, by default, the :term:`Build Directory` cannot be under + NFS. However, if you need the :term:`Build Directory` to be under NFS, you can set this up by setting :term:`TMPDIR` in your ``local.conf`` file to use a local drive. Doing so effectively separates :term:`TMPDIR` from :term:`TOPDIR`, which is the - Build Directory. + :term:`Build Directory`. :term:`Build Host` The system used to build images in a Yocto Project Development @@ -138,14 +138,12 @@ universal, the list includes them just in case: which contains multiple (and typically related) sub-layers which can be included independently in your project's ``bblayers.conf`` file. - In some cases, such as with OpenEmbedded's - `meta-openembedded <https://github.com/openembedded/meta-openembedded>`_ + In some cases, such as with OpenEmbedded's :oe_git:`meta-openembedded </meta-openembedded>` layer, the top level ``meta-openembedded/`` directory is not itself an actual layer, so you would never explicitly include it in a ``bblayers.conf`` file; rather, you would include any number of its layer subdirectories, such as - `meta-openembedded/meta-oe <https://github.com/openembedded/meta-openembedded/tree/master/meta-oe>`_, - `meta-openembedded/meta-python <https://github.com/openembedded/meta-openembedded/tree/master/meta-python>`_ - and so on. + :oe_git:`meta-oe </meta-openembedded/tree/meta-oe>`, :oe_git:`meta-python + </meta-openembedded/tree/meta-python>` and so on. On the other hand, some container layers (such as :yocto_git:`meta-security </meta-security>`) diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst index 71e8c272a7..dc6eccb314 100644 --- a/poky/documentation/ref-manual/variables.rst +++ b/poky/documentation/ref-manual/variables.rst @@ -260,9 +260,9 @@ system and gives an overview of their function and contents. https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview :term:`B` - The directory within the :term:`Build Directory` in - which the OpenEmbedded build system places generated objects during a - recipe's build process. By default, this directory is the same as the + The directory within the :term:`Build Directory` in which the + OpenEmbedded build system places generated objects during a recipe's + build process. By default, this directory is the same as the :term:`S` directory, which is defined as:: S = "${WORKDIR}/${BP}" @@ -615,7 +615,7 @@ system and gives an overview of their function and contents. software. When specifying recipe files, you can pattern match using Python's - `glob <https://docs.python.org/3/library/glob.html>`_ syntax. + `glob <https://docs.python.org/3/library/glob.html>`__ syntax. For details on the syntax, see the documentation by following the previous link. @@ -903,12 +903,11 @@ system and gives an overview of their function and contents. The default value is an empty string (""). :term:`BUILDDIR` - Points to the location of the :term:`Build Directory`. - You can define this directory indirectly through the - :ref:`structure-core-script` script by passing in a Build - Directory path when you run the script. If you run the script and do - not provide a Build Directory path, the :term:`BUILDDIR` defaults to - ``build`` in the current directory. + Points to the location of the :term:`Build Directory`. You can define + this directory indirectly through the :ref:`structure-core-script` script + by passing in a :term:`Build Directory` path when you run the script. If + you run the script and do not provide a :term:`Build Directory` path, the + :term:`BUILDDIR` defaults to ``build`` in the current directory. :term:`BUILDHISTORY_COMMIT` When inheriting the :ref:`buildhistory <ref-classes-buildhistory>` @@ -1508,6 +1507,18 @@ system and gives an overview of their function and contents. CVE_PRODUCT = "vendor:package" + :term:`CVE_VERSION` + In a recipe, defines the version used to match the recipe version + against the version in the `NIST CVE database <https://nvd.nist.gov/>`__ + when usign :ref:`cve-check <ref-classes-cve-check>`. + + The default is ${:term:`PV`} but if recipes use custom version numbers + which do not map to upstream software component release versions and the versions + used in the CVE database, then this variable can be used to set the + version number for :ref:`cve-check <ref-classes-cve-check>`. Example:: + + CVE_VERSION = "2.39" + :term:`CVSDIR` The directory in which files checked out under the CVS system are stored. @@ -1700,8 +1711,7 @@ system and gives an overview of their function and contents. Points to the general area that the OpenEmbedded build system uses to place images, packages, SDKs, and other output files that are ready to be used outside of the build system. By default, this directory - resides within the :term:`Build Directory` as - ``${TMPDIR}/deploy``. + resides within the :term:`Build Directory` as ``${TMPDIR}/deploy``. For more information on the structure of the Build Directory, see ":ref:`ref-manual/structure:the build directory --- \`\`build/\`\``" section. @@ -1747,7 +1757,7 @@ system and gives an overview of their function and contents. with the contents of :term:`IMGDEPLOYDIR` by the :ref:`image <ref-classes-image>` class. - For more information on the structure of the Build Directory, see + For more information on the structure of the :term:`Build Directory`, see ":ref:`ref-manual/structure:the build directory --- \`\`build/\`\``" section. For more detail on the contents of the ``deploy`` directory, see the ":ref:`overview-manual/concepts:images`" and @@ -2030,8 +2040,7 @@ system and gives an overview of their function and contents. You can set this directory by defining the :term:`DL_DIR` variable in the ``conf/local.conf`` file. This directory is self-maintaining and you should not have to touch it. By default, the directory is - ``downloads`` in the :term:`Build Directory`. - :: + ``downloads`` in the :term:`Build Directory`:: #DL_DIR ?= "${TOPDIR}/downloads" @@ -2252,8 +2261,8 @@ system and gives an overview of their function and contents. class, this variable points to the directory in which the recipe's source code is built, which is outside of the OpenEmbedded build system. When set, this variable sets the :term:`B` variable, - which is what the OpenEmbedded build system uses to locate the Build - Directory. + which is what the OpenEmbedded build system uses to locate the + :term:`Build Directory`. See the ":ref:`ref-classes-externalsrc`" section for details. You can also find information on how to use this variable in the @@ -2273,9 +2282,8 @@ system and gives an overview of their function and contents. more than one feature, separate them with a space. Typically, you configure this variable in your ``local.conf`` file, - which is found in the :term:`Build Directory`. - Although you can use this variable from within a recipe, best - practices dictate that you do not. + which is found in the :term:`Build Directory`. Although you can use this + variable from within a recipe, best practices dictate that you do not. .. note:: @@ -2481,7 +2489,7 @@ system and gives an overview of their function and contents. - When specifying files or paths, you can pattern match using Python's - `glob <https://docs.python.org/3/library/glob.html>`_ + `glob <https://docs.python.org/3/library/glob.html>`__ syntax. For details on the syntax, see the documentation by following the previous link. @@ -2672,10 +2680,9 @@ system and gives an overview of their function and contents. You define the :term:`FILESYSTEM_PERMS_TABLES` variable in the ``conf/local.conf`` file, which is found in the :term:`Build Directory`, - to point to your custom - ``fs-perms.txt``. You can specify more than a single file permissions - setting table. The paths you specify to these files must be defined - within the :term:`BBPATH` variable. + to point to your custom ``fs-perms.txt``. You can specify more than a + single file permissions setting table. The paths you specify to these + files must be defined within the :term:`BBPATH` variable. For guidance on how to create your own file permissions settings table file, examine the existing ``fs-perms.txt``. @@ -4943,7 +4950,7 @@ system and gives an overview of their function and contents. See the :term:`KERNEL_MODULE_AUTOLOAD` variable for more information. :term:`module_conf` - Specifies `modprobe.d <https://linux.die.net/man/5/modprobe.d>`_ + Specifies `modprobe.d <https://linux.die.net/man/5/modprobe.d>`__ syntax lines for inclusion in the ``/etc/modprobe.d/modname.conf`` file. @@ -6735,7 +6742,7 @@ system and gives an overview of their function and contents. to find the unpacked source. As an example, assume a :term:`Source Directory` - top-level folder named ``poky`` and a default Build Directory at + top-level folder named ``poky`` and a default :term:`Build Directory` at ``poky/build``. In this case, the work directory the build system uses to keep the unpacked recipe for ``db`` is the following:: @@ -6780,7 +6787,7 @@ system and gives an overview of their function and contents. :term:`SDK_CUSTOM_TEMPLATECONF` When building the extensible SDK, if :term:`SDK_CUSTOM_TEMPLATECONF` is set to - "1" and a ``conf/templateconf.cfg`` file exists in the build directory + "1" and a ``conf/templateconf.cfg`` file exists in the :term:`Build Directory` (:term:`TOPDIR`) then this will be copied into the SDK. :term:`SDK_DEPLOY` @@ -7183,8 +7190,7 @@ system and gives an overview of their function and contents. To enable file removal, set the variable to "1" in your ``conf/local.conf`` configuration file in your: - :term:`Build Directory`. - :: + :term:`Build Directory`:: SKIP_FILEDEPS = "1" @@ -7896,9 +7902,8 @@ system and gives an overview of their function and contents. <https://www.freedesktop.org/software/systemd/man/systemd.special.html>`__ for details. - For example, this variable is used in the - `core-image-minimal-xfce.bb - <https://git.openembedded.org/meta-openembedded/tree/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb>`__ + For example, this variable is used in the :oe_git:`core-image-minimal-xfce.bb + </meta-openembedded/tree/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb>` recipe:: SYSTEMD_DEFAULT_TARGET = "graphical.target" @@ -8115,12 +8120,11 @@ system and gives an overview of their function and contents. You can select "glibc", "musl", "newlib", or "baremetal". :term:`TCLIBCAPPEND` - Specifies a suffix to be appended onto the - :term:`TMPDIR` value. The suffix identifies the - ``libc`` variant for building. When you are building for multiple - variants with the same :term:`Build Directory`, this - mechanism ensures that output for different ``libc`` variants is kept - separate to avoid potential conflicts. + Specifies a suffix to be appended onto the :term:`TMPDIR` value. The + suffix identifies the ``libc`` variant for building. When you are + building for multiple variants with the same :term:`Build Directory`, + this mechanism ensures that output for different ``libc`` variants is + kept separate to avoid potential conflicts. In the ``defaultsetup.conf`` file, the default value of :term:`TCLIBCAPPEND` is "-${TCLIBC}". However, distros such as poky, @@ -8408,7 +8412,7 @@ system and gives an overview of their function and contents. #TMPDIR = "${TOPDIR}/tmp" An example use for this scenario is to set :term:`TMPDIR` to a local disk, - which does not use NFS, while having the Build Directory use NFS. + which does not use NFS, while having the :term:`Build Directory` use NFS. The filesystem used by :term:`TMPDIR` must have standard filesystem semantics (i.e. mixed-case files are unique, POSIX file locking, and @@ -9094,7 +9098,7 @@ system and gives an overview of their function and contents. - :term:`PR`: The recipe revision As an example, assume a Source Directory top-level folder name - ``poky``, a default Build Directory at ``poky/build``, and a + ``poky``, a default :term:`Build Directory` at ``poky/build``, and a ``qemux86-poky-linux`` machine target system. Furthermore, suppose your recipe is named ``foo_1.3.0-r0.bb``. In this case, the work directory the build system uses to build the package would be as diff --git a/poky/documentation/sdk-manual/appendix-customizing.rst b/poky/documentation/sdk-manual/appendix-customizing.rst index 23a437eb9d..d6bca44947 100644 --- a/poky/documentation/sdk-manual/appendix-customizing.rst +++ b/poky/documentation/sdk-manual/appendix-customizing.rst @@ -286,9 +286,8 @@ source, you need to do a number of things: ESDK_LOCALCONF_ALLOW = "SSTATE_MIRRORS" - Alternatively, if you just want to set the :term:`SSTATE_MIRRORS` - variable's value for the SDK alone, create a - ``conf/sdk-extra.conf`` file either in your - :term:`Build Directory` or within any + variable's value for the SDK alone, create a ``conf/sdk-extra.conf`` + file either in your :term:`Build Directory` or within any layer and put your :term:`SSTATE_MIRRORS` setting within that file. .. note:: diff --git a/poky/documentation/sdk-manual/appendix-obtain.rst b/poky/documentation/sdk-manual/appendix-obtain.rst index 7a09a83af8..b90247d2e0 100644 --- a/poky/documentation/sdk-manual/appendix-obtain.rst +++ b/poky/documentation/sdk-manual/appendix-obtain.rst @@ -116,38 +116,34 @@ build the SDK installer. Follow these steps: $ source oe-init-build-env - Among other things, the script - creates the :term:`Build Directory`, - which is - ``build`` in this case and is located in the Source Directory. After - the script runs, your current working directory is set to the - ``build`` directory. + Among other things, the script creates the :term:`Build Directory`, which + is ``build`` in this case and is located in the Source Directory. After + the script runs, your current working directory is set to the ``build`` + directory. 4. *Make Sure You Are Building an Installer for the Correct Machine:* - Check to be sure that your - :term:`MACHINE` variable in the - ``local.conf`` file in your Build Directory matches the architecture + Check to be sure that your :term:`MACHINE` variable in the ``local.conf`` + file in your :term:`Build Directory` matches the architecture for which you are building. 5. *Make Sure Your SDK Machine is Correctly Set:* If you are building a toolchain designed to run on an architecture that differs from your current development host machine (i.e. the build host), be sure that - the :term:`SDKMACHINE` variable - in the ``local.conf`` file in your Build Directory is correctly set. + the :term:`SDKMACHINE` variable in the ``local.conf`` file in your + :term:`Build Directory` is correctly set. .. note:: If you are building an SDK installer for the Extensible SDK, the - SDKMACHINE - value must be set for the architecture of the machine you are - using to build the installer. If - SDKMACHINE + :term:`SDKMACHINE` value must be set for the architecture of the + machine you are using to build the installer. If :term:`SDKMACHINE` is not set appropriately, the build fails and provides an error message similar to the following:: - The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is - set to i686 (likely via setting SDKMACHINE) which is different from the architecture of the build machine (x86_64). - Unable to continue. + The extensible SDK can currently only be built for the same + architecture as the machine being built on --- :term:`SDK_ARCH` + is set to ``i686`` (likely via setting :term:`SDKMACHINE`) which is + different from the architecture of the build machine (``x86_64``). 6. *Build the SDK Installer:* To build the SDK installer for a standard @@ -164,7 +160,7 @@ build the SDK installer. Follow these steps: that matches your target root filesystem. When the ``bitbake`` command completes, the SDK installer will be in - ``tmp/deploy/sdk`` in the Build Directory. + ``tmp/deploy/sdk`` in the :term:`Build Directory`. .. note:: @@ -181,7 +177,7 @@ build the SDK installer. Follow these steps: libc-staticdev" 7. *Run the Installer:* You can now run the SDK installer from - ``tmp/deploy/sdk`` in the Build Directory. Following is an example:: + ``tmp/deploy/sdk`` in the :term:`Build Directory`. Following is an example:: $ cd poky/build/tmp/deploy/sdk $ ./poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh diff --git a/poky/documentation/sdk-manual/extensible.rst b/poky/documentation/sdk-manual/extensible.rst index 3e3fa6c05a..ed38ac3f3f 100644 --- a/poky/documentation/sdk-manual/extensible.rst +++ b/poky/documentation/sdk-manual/extensible.rst @@ -64,7 +64,7 @@ binary artefact cache over the network for developers with underpowered laptops. Setting up the Extensible SDK environment directly in a Yocto build ------------------------------------------------------------------- -1. Set up all the needed layers and a Yocto build directory, e.g. a regular Yocto +1. Set up all the needed layers and a Yocto :term:`Build Directory`, e.g. a regular Yocto build where ``bitbake`` can be executed. 2. Run: @@ -175,7 +175,7 @@ Once you have the SDK installed, you must run the SDK environment setup script before you can actually use the SDK. When using a SDK directly in a Yocto build, you will find the script in -``tmp/deploy/images/qemux86-64/`` in your build directory. +``tmp/deploy/images/qemux86-64/`` in your :term:`Build Directory`. When using a standalone SDK installer, this setup script resides in the directory you chose when you installed the SDK, which is either the diff --git a/poky/documentation/set_versions.py b/poky/documentation/set_versions.py index ddf70851cb..efaebe43b5 100755 --- a/poky/documentation/set_versions.py +++ b/poky/documentation/set_versions.py @@ -26,8 +26,8 @@ ourversion = None if len(sys.argv) == 2: ourversion = sys.argv[1] -activereleases = ["kirkstone", "dunfell"] -devbranch = "langdale" +activereleases = ["langdale", "kirkstone", "dunfell"] +devbranch = "mickledore" ltsseries = ["kirkstone", "dunfell"] # used by run-docs-builds to get the default page @@ -36,6 +36,7 @@ if ourversion == "getlatest": sys.exit(0) release_series = collections.OrderedDict() +release_series["mickledore"] = "4.2" release_series["langdale"] = "4.1" release_series["kirkstone"] = "4.0" release_series["honister"] = "3.4" @@ -65,6 +66,7 @@ release_series["laverne"] = "0.9" bitbake_mapping = { + "mickledore" : "2.4", "langdale" : "2.2", "kirkstone" : "2.0", "honister" : "1.52", diff --git a/poky/documentation/test-manual/reproducible-builds.rst b/poky/documentation/test-manual/reproducible-builds.rst index 5977366c9e..61127de23c 100644 --- a/poky/documentation/test-manual/reproducible-builds.rst +++ b/poky/documentation/test-manual/reproducible-builds.rst @@ -19,7 +19,7 @@ Why it matters ============== The project aligns with the `Reproducible Builds project -<https://reproducible-builds.org/>`_, which shares information about why +<https://reproducible-builds.org/>`__, which shares information about why reproducibility matters. The primary focus of the project is the ability to detect security issues being introduced. However, from a Yocto Project perspective, it is also hugely important that our builds are deterministic. When diff --git a/poky/documentation/test-manual/understand-autobuilder.rst b/poky/documentation/test-manual/understand-autobuilder.rst index c5e32cfe09..66471972de 100644 --- a/poky/documentation/test-manual/understand-autobuilder.rst +++ b/poky/documentation/test-manual/understand-autobuilder.rst @@ -56,7 +56,7 @@ the "templates" section, which looks like:: Combining these two entries you can see that "qemux86-64" is a three step build where the ``bitbake BBTARGETS`` would be run, then ``bitbake SANITYTARGETS`` for each step; all for -``MACHINE="qemux86-64"`` but with differing SDKMACHINE settings. In step +``MACHINE="qemux86-64"`` but with differing :term:`SDKMACHINE` settings. In step 1 an extra variable is added to the ``auto.conf`` file to enable wic image generation. @@ -242,7 +242,7 @@ of post-build steps, including: #. Call ``scripts/upload-error-reports`` to send any error reports generated to the remote server. -#. Cleanup the build directory using +#. Cleanup the :term:`Build Directory` using :ref:`test-manual/understand-autobuilder:clobberdir` if the build was successful, else rename it to "build-renamed" for potential future debugging. diff --git a/poky/documentation/toaster-manual/reference.rst b/poky/documentation/toaster-manual/reference.rst index 1bb9f98cca..b181d12d86 100644 --- a/poky/documentation/toaster-manual/reference.rst +++ b/poky/documentation/toaster-manual/reference.rst @@ -522,14 +522,13 @@ tasks. You can locate these commands in the - 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. + :term:`Build Directory`. Using ``manage.py`` commands from the + :term:`Build Directory` allows Toaster to find the ``toaster.sqlite`` + file, which is located in the :term:`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 + :term:`Build Directory`. To do so, the ``toastermain/settings.py`` file must be configured to point to the correct database backend. ``buildslist`` @@ -549,7 +548,7 @@ database. You need to run the ``buildslist`` command first to identify existing builds in the database before using the :ref:`toaster-manual/reference:\`\`builddelete\`\`` command. Here is an -example that assumes default repository and build directory names: +example that assumes default repository and :term:`Build Directory` names: .. code-block:: shell diff --git a/poky/documentation/toaster-manual/setup-and-use.rst b/poky/documentation/toaster-manual/setup-and-use.rst index 72a15b5f2d..c5521edda1 100644 --- a/poky/documentation/toaster-manual/setup-and-use.rst +++ b/poky/documentation/toaster-manual/setup-and-use.rst @@ -23,8 +23,8 @@ 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:: +Next, from the :term:`Build Directory` (e.g. ``poky/build``), start Toaster +using this command:: $ source toaster start @@ -124,14 +124,14 @@ causes Toaster to create and use ``$TOASTER_DIR./_toaster_clones``. The Build Directory =================== -Toaster creates a build directory within your Source Directory (e.g. +Toaster creates a :term:`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 to use ``$TOASTER_DIR/build`` as the :term:`Build Directory`. Creating a Django Superuser =========================== @@ -152,8 +152,8 @@ superuser by following these steps: $ 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``:: + is the :term:`Build Directory`, invoke the ``createsuperuser`` command from + ``manage.py``:: $ cd poky/build $ ../bitbake/lib/toaster/manage.py createsuperuser @@ -179,7 +179,7 @@ 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 +parameters such as the :term:`Build Directory`, layer sources, default variable values, and BitBake versions. Setting Up a Production Instance of Toaster @@ -317,8 +317,7 @@ Perform the following steps to install Toaster: the ":ref:`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 + 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:: @@ -326,7 +325,7 @@ Perform the following steps to install Toaster: /var/www/toaster/poky - This setting causes the Toaster build directory to be:: + This setting causes the Toaster :term:`Build Directory` to be:: /var/www/toaster/poky/build |