Lines Matching +full:sstate +full:- +full:cache
1 .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
29 .. _ref-classes-allarch:
35 architecture-specific output. The class disables functionality that is
37 building the cross-compiler and a C library as pre-requisites, and
47 even if the recipes do not produce architecture-specific output.
55 By default, all recipes inherit the :ref:`base <ref-classes-base>` and
56 :ref:`package <ref-classes-package>` classes, which enable
62 .. _ref-classes-archiver:
71 ":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lif…
76 .. _ref-classes-autotools:
89 ":ref:`dev-manual/common-tasks:autotooled package`" section
92 By default, the ``autotools*`` classes use out-of-tree builds (i.e.
96 out-of-tree builds, you should have the recipe inherit the
97 ``autotools-brokensep`` class. The ``autotools-brokensep`` class behaves
99 == :term:`S`. This method is useful when out-of-tree build
104 It is recommended that out-of-tree support be fixed and used if at
110 - :ref:`ref-tasks-configure` - Regenerates the
112 standard set of arguments used during cross-compilation. You can pass
117 - :ref:`ref-tasks-compile` - Runs ``make`` with
121 - :ref:`ref-tasks-install` - Runs ``make install`` and
124 .. _ref-classes-base:
135 :ref:`autotools <ref-classes-autotools>` class or the
136 :ref:`package <ref-classes-package>` class.
143 .. _ref-classes-bash-completion:
145 ``bash-completion.bbclass``
149 software that includes bash-completion data.
151 .. _ref-classes-bin-package:
175 …See the ":ref:`bitbake-user-manual/bitbake-user-manual-fetching:fetchers`" section in the BitBake …
178 .. _ref-classes-binconfig:
185 Before ``pkg-config`` had become widespread, libraries shipped shell
187 to build software (usually named ``LIBNAME-config``). This class assists
198 .. _ref-classes-binconfig-disabled:
200 ``binconfig-disabled.bbclass``
203 An alternative version of the :ref:`binconfig <ref-classes-binconfig>`
205 an error in favor of using ``pkg-config`` to query the information. The
210 .. _ref-classes-buildhistory:
219 ":ref:`dev-manual/common-tasks:maintaining build output quality`"
222 .. _ref-classes-buildstats:
243 .. _ref-classes-buildstats-summary:
245 ``buildstats-summary.bbclass``
249 sstate re-use. In order to function, this class requires the
250 :ref:`buildstats <ref-classes-buildstats>` class be enabled.
252 .. _ref-classes-ccache:
257 The ``ccache`` class enables the C/C++ Compiler Cache for the build.
261 Cache, and the :oe_git:`ccache.bbclass </openembedded-core/tree/meta/classes/ccache.bbclass>`
266 However, using the class can lead to unexpected side-effects. Thus, using
269 .. _ref-classes-chrpath:
276 ``cross-canadian`` recipes to change ``RPATH`` records within binaries
279 .. _ref-classes-cmake:
294 :ref:`ref-tasks-install`.
296 .. _ref-classes-cml1:
304 .. _ref-classes-compress_doc:
314 .. _ref-classes-copyleft_compliance:
322 in favor of the :ref:`archiver <ref-classes-archiver>` class.
324 .. _ref-classes-copyleft_filter:
329 A class used by the :ref:`archiver <ref-classes-archiver>` and
330 :ref:`copyleft_compliance <ref-classes-copyleft_compliance>` classes
334 .. _ref-classes-core-image:
336 ``core-image.bbclass``
339 The ``core-image`` class provides common definitions for the
340 ``core-image-*`` image recipes, such as support for additional
343 .. _ref-classes-cpan:
355 - Modules that use old ``Makefile.PL``-based build system require
358 - Modules that use ``Build.PL``-based build system require using
361 Both build methods inherit the ``cpan-base`` class for basic Perl
364 .. _ref-classes-create-spdx:
366 ``create-spdx.bbclass``
369 The :ref:`create-spdx <ref-classes-create-spdx>` class provides support for
375 INHERIT += "create-spdx"
378 ``IMAGE-MACHINE.spdx.json`` file in ``tmp/deploy/images/MACHINE/`` inside the
387 ":ref:`dev-manual/common-tasks:creating a software bill of materials`"
390 .. _ref-classes-cross:
396 cross-compilation tools.
398 .. _ref-classes-cross-canadian:
400 ``cross-canadian.bbclass``
403 The ``cross-canadian`` class provides support for the recipes that build
404 the Canadian Cross-compilation tools for SDKs. See the
405 ":ref:`overview-manual/concepts:cross-development toolchain generation`"
407 discussion on these cross-compilation tools.
409 .. _ref-classes-crosssdk:
415 cross-compilation tools used for building SDKs. See the
416 ":ref:`overview-manual/concepts:cross-development toolchain generation`"
418 discussion on these cross-compilation tools.
420 .. _ref-classes-cve-check:
422 ``cve-check.bbclass``
425 The :ref:`cve-check <ref-classes-cve-check>` class looks for known CVEs (Common Vulnerabilities
429 INHERIT += "cve-check"
431 …ter out obsolete CVE database entries which are known not to impact software from Poky and OE-Core,
434 include cve-extra-exclusions.inc
437 ``-c cve_check`` to BitBake.
449 ``CVE-ID.patch``, e.g. ``CVE-2019-20633.patch``, in the :term:`SRC_URI` and using
450 CVE metadata of format ``CVE: CVE-ID`` in the commit message of the patch file.
452 If the recipe lists the ``CVE-ID`` in :term:`CVE_CHECK_IGNORE` variable, then the CVE state is repo…
455 CVE_CHECK_IGNORE += "CVE-2020-29509 CVE-2020-29511"
472 via the `NVD feedback form <https://nvd.nist.gov/info/contact-form>`__.
481 ":ref:`dev-manual/common-tasks:checking for vulnerabilities`"
484 .. _ref-classes-debian:
491 ``glibc-devel`` becomes ``libc6-dev``.) Renaming includes the library
499 .. _ref-classes-deploy:
508 :ref:`ref-tasks-deploy` function to copy the files to be
511 :ref:`ref-tasks-compile` or
512 :ref:`ref-tasks-install`. The class then takes care of
515 .. _ref-classes-devshell:
521 policy dictates whether to include this class. See the ":ref:`dev-manual/common-tasks:using a devel…
525 .. _ref-classes-devupstream:
536 SRC_URI:class-devupstream = "git://git.example.com/example;branch=main"
537 SRCREV:class-devupstream = "abcd1234"
540 :term:`DEFAULT_PREFERENCE` set to "-1".
542 Any development-specific adjustments can be done by using the
543 ``class-devupstream`` override. Here is an example::
545 DEPENDS:append:class-devupstream = " gperf-native"
546 do_configure:prepend:class-devupstream() {
560 ``subversion-native``).
562 .. _ref-classes-externalsrc:
586 ${WORKDIR}/${BPN}-{PV}/
596 ":ref:`dev-manual/common-tasks:building software from an external source`"
599 .. _ref-classes-extrausers:
613 :ref:`extrausers <ref-classes-extrausers>`
617 :ref:`useradd <ref-classes-useradd>`
624 useradd -p '' tester; \
627 groupdel -g video; \
628 groupmod -g 1020 developers; \
629 usermod -s /bin/sh tester; \
632 Here is an example that adds two users named "tester-jim" and "tester-sue" and assigns
635 printf "%q" $(mkpasswd -m sha256crypt tester01)
640 PASSWD = "\$X\$ABC123\$A-Long-Hash"
642 useradd -p '${PASSWD}' tester-jim; \
643 useradd -p '${PASSWD}' tester-sue; \
650 usermod -p '${PASSWD}' root; \
661 .. _ref-classes-features_check:
672 - :term:`REQUIRED_DISTRO_FEATURES`
673 - :term:`CONFLICT_DISTRO_FEATURES`
674 - :term:`ANY_OF_DISTRO_FEATURES`
675 - ``REQUIRED_MACHINE_FEATURES``
676 - ``CONFLICT_MACHINE_FEATURES``
677 - ``ANY_OF_MACHINE_FEATURES``
678 - ``REQUIRED_COMBINED_FEATURES``
679 - ``CONFLICT_COMBINED_FEATURES``
680 - ``ANY_OF_COMBINED_FEATURES``
687 .. _ref-classes-fontcache:
692 The ``fontcache`` class generates the proper post-install and
693 post-remove (postinst and postrm) scriptlets for font packages. These
694 scriptlets call ``fc-cache`` (part of ``Fontconfig``) to add the fonts
695 to the font information cache. Since the cache files are
696 architecture-specific, ``fc-cache`` runs using QEMU if the postinst
703 .. _ref-classes-fs-uuid:
705 ``fs-uuid.bbclass``
708 The ``fs-uuid`` class extracts UUID from
710 by the time that this function gets called. The ``fs-uuid`` class only
713 .. _ref-classes-gconf:
720 package (``${``\ :term:`PN`\ ``}-gconf``) that is created
722 appropriate post-install and post-remove (postinst/postrm) scriptlets to
725 .. _ref-classes-gettext:
735 .. _ref-classes-gnomebase:
746 .. _ref-classes-gobject-introspection:
748 ``gobject-introspection.bbclass``
753 "gobject-introspection-data" feature is in
755 "qemu-usermode" being in
764 .. _ref-classes-grub-efi:
766 ``grub-efi.bbclass``
769 The ``grub-efi`` class provides ``grub-efi``-specific functions for
774 - :term:`INITRD`: Indicates list of filesystem images to
777 - :term:`ROOTFS`: Indicates a filesystem image to include
780 - :term:`GRUB_GFXSERIAL`: Set this to "1" to have
783 - :term:`LABELS`: A list of targets for the automatic
786 - :term:`APPEND`: An override list of append strings for
789 - :term:`GRUB_OPTS`: Additional options to add to the
790 configuration (optional). Options are delimited using semi-colon
793 - :term:`GRUB_TIMEOUT`: Timeout before executing
796 .. _ref-classes-gsettings:
803 part of the main package. Appropriate post-install and post-remove
807 .. _ref-classes-gtk-doc:
809 ``gtk-doc.bbclass``
812 The ``gtk-doc`` class is a helper class to pull in the appropriate
813 ``gtk-doc`` dependencies and disable ``gtk-doc``.
815 .. _ref-classes-gtk-icon-cache:
817 ``gtk-icon-cache.bbclass``
820 The ``gtk-icon-cache`` class generates the proper post-install and
821 post-remove (postinst/postrm) scriptlets for packages that use GTK+ and
822 install icons. These scriptlets call ``gtk-update-icon-cache`` to add
823 the fonts to GTK+'s icon cache. Since the cache files are
824 architecture-specific, ``gtk-update-icon-cache`` is run using QEMU if
828 .. _ref-classes-gtk-immodules-cache:
830 ``gtk-immodules-cache.bbclass``
833 The ``gtk-immodules-cache`` class generates the proper post-install and
834 post-remove (postinst/postrm) scriptlets for packages that install GTK+
836 ``gtk-update-icon-cache`` to add the input method modules to the cache.
837 Since the cache files are architecture-specific,
838 ``gtk-update-icon-cache`` is run using QEMU if the postinst scriptlets
846 .. _ref-classes-gzipnative:
855 .. _ref-classes-icecc:
873 is the version of the cross-compiler used in the cross-development
877 ,cross-kernel and target) and creates the necessary environment
885 ``icecc-create-env`` script provided by the user. If you do not point to
886 a user-provided script, the build system uses the default script
887 provided by the recipe ``icecc-create-env-native.bb``.
907 Inheriting the ``icecc`` class changes all sstate signatures.
910 reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build
914 sure that all builders start with the same sstate signatures. After
928 .. _ref-classes-image:
938 - The :term:`IMAGE_FSTYPES` variable controls the types of images to
941 - The :term:`IMAGE_INSTALL` variable controls the list of packages to
945 ":ref:`dev-manual/common-tasks:customizing images`" section
948 ":ref:`overview-manual/concepts:images`" section in the
951 .. _ref-classes-image-buildinfo:
953 ``image-buildinfo.bbclass``
956 The ``image-buildinfo`` class writes information to the target
959 .. _ref-classes-image_types:
970 By default, the :ref:`image <ref-classes-image>` class automatically
976 … IMGCLASSES += "${@bb.utils.contains_any('IMAGE_FSTYPES', 'live iso hddimg', 'image-live', '', d)}"
977 IMGCLASSES += "${@bb.utils.contains('IMAGE_FSTYPES', 'container', 'image-container', '', d)}"
979 IMGCLASSES += "rootfs-postcommands"
980 IMGCLASSES += "image-postinst-intercepts"
991 .. _ref-classes-image-live:
993 ``image-live.bbclass``
1004 .. _ref-classes-insane:
1019 condition. See the ":doc:`/ref-manual/qa-checks`" Chapter for a list of all the warning
1031 INSANE_SKIP:${PN} += "dev-so"
1040 - ``already-stripped:`` Checks that produced binaries have not
1044 to work on the target using ``-dbg`` packages, this stripping must be
1047 - ``arch:`` Checks the Executable and Linkable Format (ELF) type, bit
1054 - ``buildpaths:`` Checks for paths to locations on the build host
1058 - ``build-deps:`` Determines if a build-time dependency that is
1060 :term:`RDEPENDS`, or task-level dependencies exists
1067 :ref:`ref-tasks-rootfs` task because the auto-detected
1069 :ref:`update-rc.d <ref-classes-update-rc.d>` class automatically
1070 adds a dependency on the ``initscripts-functions`` package to
1073 :term:`RDEPENDS` for the package in question on ``initscripts-functions``
1076 ``initscripts-functions`` package is made available.
1078 - ``compile-host-path:`` Checks the
1079 :ref:`ref-tasks-compile` log for indications that
1083 - ``debug-deps:`` Checks that all packages except ``-dbg`` packages
1084 do not depend on ``-dbg`` packages, which would cause a packaging
1087 - ``debug-files:`` Checks for ``.debug`` directories in anything but
1088 the ``-dbg`` package. The debug files should all be in the ``-dbg``
1091 - ``dep-cmp:`` Checks for invalid version comparison statements in
1102 - ``desktop:`` Runs the ``desktop-file-validate`` program against any
1106 - ``dev-deps:`` Checks that all packages except ``-dev`` or
1107 ``-staticdev`` packages do not depend on ``-dev`` packages, which
1110 - ``dev-so:`` Checks that the ``.so`` symbolic links are in the
1111 ``-dev`` package and not in any of the other packages. In general,
1113 ``-dev`` package is the correct location for them. In very rare
1117 - ``empty-dirs:`` Checks that packages are not installing files to
1122 - ``file-rdeps:`` Checks that file-level dependencies identified by
1127 supports, only RPM directly handles file-level dependencies,
1132 :term:`RDEPENDS` exist to handle any file-level
1135 - ``files-invalid:`` Checks for :term:`FILES` variable
1138 - ``host-user-contaminated:`` Checks that no package produced by the
1144 :ref:`ref-tasks-install` task.
1146 - ``incompatible-license:`` Report when packages are excluded from
1150 - ``install-host-path:`` Checks the
1151 :ref:`ref-tasks-install` log for indications that
1155 - ``installed-vs-shipped:`` Reports when files have been installed
1163 - ``invalid-chars:`` Checks that the recipe metadata variables
1166 :term:`SECTION` do not contain non-UTF-8 characters.
1169 - ``invalid-packageconfig:`` Checks that no undefined features are
1175 - ``la:`` Checks ``.la`` files for any :term:`TMPDIR` paths. Any ``.la``
1179 - ``ldflags:`` Ensures that the binaries were linked with the
1184 - ``libdir:`` Checks for libraries being installed into incorrect
1190 - ``libexec:`` Checks if a package contains files in
1194 - ``packages-list:`` Checks for the same package being listed
1199 - ``perm-config:`` Reports lines in ``fs-perms.txt`` that have an
1202 - ``perm-line:`` Reports lines in ``fs-perms.txt`` that have an
1205 - ``perm-link:`` Reports lines in ``fs-perms.txt`` that specify
1208 - ``perms:`` Currently, this check is unused but reserved.
1210 - ``pkgconfig:`` Checks ``.pc`` files for any
1213 ``pkg-config`` itself adds the correct sysroot prefix when the files
1216 - ``pkgname:`` Checks that all packages in
1218 invalid characters (i.e. characters other than 0-9, a-z, ., +, and
1219 -).
1221 - ``pkgv-undefined:`` Checks to see if the :term:`PKGV` variable is
1222 undefined during :ref:`ref-tasks-package`.
1224 - ``pkgvarcheck:`` Checks through the variables
1233 there are variable sets that are not package-specific. Using these
1238 - ``pn-overrides:`` Checks that a recipe does not have a name
1247 - ``rpaths:`` Checks for rpaths in the binaries that contain build
1248 system paths such as :term:`TMPDIR`. If this test fails, bad ``-rpath``
1252 - ``split-strip:`` Reports that splitting or stripping debug symbols
1255 - ``staticdev:`` Checks for static library files (``*.a``) in
1256 non-``staticdev`` packages.
1258 - ``symlink-to-sysroot:`` Checks for symlinks in packages that point
1262 - ``textrel:`` Checks for ELF binaries that contain relocations in
1265 ":doc:`/ref-manual/qa-checks`" for more information regarding runtime performance
1268 - ``unlisted-pkg-lics:`` Checks that all declared licenses applying
1272 - ``useless-rpaths:`` Checks for dynamic library load paths (rpaths)
1277 - ``var-undefined:`` Reports when variables fundamental to packaging
1281 during :ref:`ref-tasks-package`.
1283 - ``version-going-backwards:`` If Build History is enabled, reports
1296 - ``xorg-driver-abi:`` Checks that all packages containing Xorg
1297 drivers have ABI dependencies. The ``xserver-xorg`` recipe provides
1300 ``xorg-driver-input.inc`` or ``xorg-driver-video.inc`` will
1304 .. _ref-classes-insserv:
1314 .. _ref-classes-kernel:
1321 :term:`STAGING_KERNEL_DIR` directory to allow out-of-tree module builds
1322 using the :ref:`module <ref-classes-module>` class.
1325 inter-module dependencies are created by parsing the ``modinfo`` output.
1326 If all modules are required, then installing the ``kernel-modules``
1328 packages such as ``kernel-vmlinux``.
1333 ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section in
1337 internally including the :ref:`kernel-arch <ref-classes-kernel-arch>`,
1338 :ref:`module-base <ref-classes-module-base>`, and
1339 :ref:`linux-kernel-base <ref-classes-linux-kernel-base>` classes.
1341 .. _ref-classes-kernel-arch:
1343 ``kernel-arch.bbclass``
1346 The ``kernel-arch`` class sets the ``ARCH`` environment variable for
1349 .. _ref-classes-kernel-devicetree:
1351 ``kernel-devicetree.bbclass``
1354 The ``kernel-devicetree`` class, which is inherited by the
1355 :ref:`kernel <ref-classes-kernel>` class, supports device tree
1358 .. _ref-classes-kernel-fitimage:
1360 ``kernel-fitimage.bbclass``
1363 The ``kernel-fitimage`` class provides support to pack a kernel image,
1364 device trees, a U-boot script, a Initramfs bundle and a RAM disk
1366 of kernels, U-boot scripts, Initramfs bundles, RAM disks and device-trees.
1367 However, ``kernel-fitimage`` currently only supports
1368 limited usescases: just one kernel image, an optional U-boot script,
1373 is set to include "kernel-fitimage" and :term:`KERNEL_IMAGETYPE`
1376 The options for the device tree compiler passed to ``mkimage -D``
1381 ``kernel-fitimage`` and the kernel image in FIT is mandatory. The
1382 address where the kernel image is to be loaded by U-Boot is
1387 ``kernel-fitimage`` and the device tree is optional.
1388 The address where the device tree is to be loaded by U-Boot is
1393 ``kernel-fitimage`` and the RAM disk in FIT is optional.
1394 The address where the RAM disk image is to be loaded by U-Boot
1401 ``kernel-fitimage`` and the Initramfs bundle in FIT is optional.
1403 in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin).
1407 The address where the Initramfs bundle is to be loaded by U-boot is specified
1410 Only a single U-boot boot script can be added to the FIT image created by
1411 ``kernel-fitimage`` and the boot script is optional.
1413 U-boot commands. When using a boot script the user should configure the
1414 U-boot ``do_install`` task to copy the script to sysroot.
1415 So the script can be included in the FIT image by the ``kernel-fitimage``
1416 class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to
1419 The FIT image generated by ``kernel-fitimage`` class is signed when the
1423 :term:`FIT_SIGN_ALG` in ``kernel-fitimage`` are "sha256" and
1425 the ``kernel-fitimage`` class when both :term:`FIT_GENERATE_KEYS` and
1429 .. _ref-classes-kernel-grub:
1431 ``kernel-grub.bbclass``
1434 The ``kernel-grub`` class updates the boot area and the boot menu with
1438 .. _ref-classes-kernel-module-split:
1440 ``kernel-module-split.bbclass``
1443 The ``kernel-module-split`` class provides common functionality for
1446 .. _ref-classes-kernel-uboot:
1448 ``kernel-uboot.bbclass``
1451 The ``kernel-uboot`` class provides support for building from
1452 vmlinux-style kernel sources.
1454 .. _ref-classes-kernel-uimage:
1456 ``kernel-uimage.bbclass``
1459 The ``kernel-uimage`` class provides support to pack uImage.
1461 .. _ref-classes-kernel-yocto:
1463 ``kernel-yocto.bbclass``
1466 The ``kernel-yocto`` class provides common functionality for building
1467 from linux-yocto style kernel source repositories.
1469 .. _ref-classes-kernelsrc:
1476 .. _ref-classes-lib_package:
1484 added to a separate ``${``\ :term:`PN`\ ``}-bin`` package to
1487 .. _ref-classes-libc*:
1494 - The ``libc-common`` class provides common support for building with
1497 - The ``libc-package`` class supports packaging up ``glibc`` and
1500 .. _ref-classes-license:
1509 .. _ref-classes-linux-kernel-base:
1511 ``linux-kernel-base.bbclass``
1514 The ``linux-kernel-base`` class provides common functionality for
1519 .. _ref-classes-linuxloader:
1528 .. _ref-classes-logging:
1540 .. _ref-classes-metadata_scm:
1548 The :ref:`base <ref-classes-base>` class uses this class to print the
1553 .. _ref-classes-migrate_localcount:
1561 .. _ref-classes-mime:
1566 The ``mime`` class generates the proper post-install and post-remove
1568 These scriptlets call ``update-mime-database`` to add the MIME types to
1571 .. _ref-classes-mirrors:
1578 mirrors provide a fall-back path in case the upstream source specified
1582 :ref:`base <ref-classes-base>` class.
1584 .. _ref-classes-module:
1589 The ``module`` class provides support for building out-of-tree Linux
1591 :ref:`module-base <ref-classes-module-base>` and
1592 :ref:`kernel-module-split <ref-classes-kernel-module-split>` classes,
1593 and implements the :ref:`ref-tasks-compile` and
1594 :ref:`ref-tasks-install` tasks. The class provides
1597 For general information on out-of-tree Linux kernel modules, see the
1598 ":ref:`kernel-dev/common:incorporating out-of-tree modules`"
1601 .. _ref-classes-module-base:
1603 ``module-base.bbclass``
1606 The ``module-base`` class provides the base functionality for building
1610 :ref:`module <ref-classes-module>` class.
1612 .. _ref-classes-multilib*:
1619 them side-by-side in the same image.
1622 ":ref:`dev-manual/common-tasks:combining multiple versions of library files into one image`"
1625 .. _ref-classes-native:
1637 - Create a ``myrecipe-native.bb`` recipe that inherits the ``native``
1647 myrecipe-native.bb
1653 - Create or modify a target recipe that contains the following::
1658 recipe, use ``:class-native`` and ``:class-target`` overrides to
1667 .. _ref-classes-nativesdk:
1679 - Create a ``nativesdk-myrecipe.bb`` recipe that inherits the
1684 - Create a ``nativesdk`` variant of any recipe by adding the following::
1689 recipe, use ``:class-nativesdk`` and ``:class-target`` overrides to
1697 nativesdk-myrecipe.bb
1708 .. _ref-classes-nopackages:
1716 .. _ref-classes-npm:
1730 ":ref:`dev-manual/common-tasks:creating node package manager (npm) packages`"
1733 .. _ref-classes-oelint:
1741 There are some classes that could be generally useful in OE-Core but
1742 are never actually used within OE-Core itself. The ``oelint`` class is
1747 .. _ref-classes-overlayfs:
1752 It's often desired in Embedded System design to have a read-only root filesystem.
1753 But a lot of different applications might want to have read-write access to
1756 between updates. The :ref:`overlayfs <ref-classes-overlayfs>` class provides a way
1758 root filesystem read-only.
1774 (e.g. in ``systemd-machine-units`` recipe) and it's installed into the image.
1776 Then you can specify writable directories on a recipe basis (e.g. in my-application.bb)::
1778 OVERLAYFS_WRITABLE_PATHS[data] = "/usr/share/my-custom-application"
1782 survives a reboot, then we could have a ``mnt-overlay.mount`` unit for a ``tmpfs``
1787 OVERLAYFS_MOUNT_POINT[mnt-overlay] = "/mnt/overlay"
1791 OVERLAYFS_WRITABLE_PATHS[mnt-overlay] = "/usr/share/another-application"
1795 file system (which can be forbidden in case of read-only file system)
1796 To achieve that :ref:`overlayfs <ref-classes-overlayfs>` provides a ``systemd``
1798 ``${PN}-overlays.service`` and can be depended on in your application recipe
1803 After=application-overlays.service
1804 Requires=application-overlays.service
1809 In order to get ``/etc`` in overlayfs, see :ref:`overlayfs-etc <ref-classes-overlayfs-etc>`.
1811 .. _ref-classes-overlayfs-etc:
1813 ``overlayfs-etc.bbclass``
1823 IMAGE_FEATURES += "overlayfs-etc"
1843 - The default option is to rename the original ``/sbin/init`` to ``/sbin/init.orig``
1846 but it poses a restriction that package-management can't be used, because updating
1849 - If you wish to keep original init as is, you can set::
1856 .. _ref-classes-own-mirrors:
1858 ``own-mirrors.bbclass``
1861 The ``own-mirrors`` class makes it easier to set up your own
1869 INHERIT += "own-mirrors"
1870 SOURCE_MIRROR_URL = "http://example.com/my-source-mirror"
1875 .. _ref-classes-package:
1883 package-specific classes:
1884 :ref:`package_deb <ref-classes-package_deb>`,
1885 :ref:`package_rpm <ref-classes-package_rpm>`,
1886 :ref:`package_ipk <ref-classes-package_ipk>`, and
1887 :ref:`package_tar <ref-classes-package_tar>`.
1908 ":ref:`dev-manual/common-tasks:using runtime package management`"
1911 The package-specific class you choose can affect build-time performance
1924 - RPM starts to provide more abilities than IPK due to the fact that it
1931 - For smaller systems, the extra space used for the Berkeley Database
1933 perform on-device upgrades.
1938 - :yocto_lists:`/pipermail/poky/2011-May/006362.html`
1940 - :yocto_lists:`/pipermail/poky/2011-May/006363.html`
1942 .. _ref-classes-package_deb:
1952 This class inherits the :ref:`package <ref-classes-package>` class and
1956 .. _ref-classes-package_ipk:
1966 This class inherits the :ref:`package <ref-classes-package>` class and
1970 .. _ref-classes-package_rpm:
1980 This class inherits the :ref:`package <ref-classes-package>` class and
1984 .. _ref-classes-package_tar:
1993 This class inherits the :ref:`package <ref-classes-package>` class and
2003 .. _ref-classes-packagedata:
2014 :ref:`package <ref-classes-package>` class.
2016 .. _ref-classes-packagegroup:
2027 ":ref:`dev-manual/common-tasks:customizing images using custom package groups`"
2032 .. _ref-classes-patch:
2038 during the :ref:`ref-tasks-patch` task.
2041 :ref:`base <ref-classes-base>` class.
2043 .. _ref-classes-perlnative:
2052 .. _ref-classes-pypi:
2057 The :ref:`pypi <ref-classes-pypi>` class sets variables appropriately for recipes that build
2060 (stripping the "python-" or "python3-" prefix off if present), however in
2064 Variables set by the :ref:`pypi <ref-classes-pypi>` class include :term:`SRC_URI`, :term:`SECTION`,
2068 .. _ref-classes-python_flit_core:
2074 the `PEP-517 <https://www.python.org/dev/peps/pep-0517/>`__ compliant
2075 ``flit_core.buildapi`` ``build-backend`` in the ``[build-system]``
2076 section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep-0518/>`__).
2081 Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class.
2083 .. _ref-classes-python_pep517:
2089 archive (see `PEP-517 <https://peps.python.org/pep-0517/>`__).
2093 :term:`PEP517_BUILD_API` to the Python class which implements the PEP-517 build
2097 <ref-classes-python_flit_core>`, :ref:`python_setuptools_build_meta
2098 <ref-classes-python_setuptools_build_meta>`, and :ref:`python_poetry_core
2099 <ref-classes-python_poetry_core>`.
2101 .. _ref-classes-python_poetry_core:
2107 `Poetry Core <https://python-poetry.org>`__ build system.
2109 Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class.
2111 .. _ref-classes-pixbufcache:
2116 The ``pixbufcache`` class generates the proper post-install and
2117 post-remove (postinst/postrm) scriptlets for packages that install
2118 pixbuf loaders, which are used with ``gdk-pixbuf``. These scriptlets
2119 call ``update_pixbuf_cache`` to add the pixbuf loaders to the cache.
2120 Since the cache files are architecture-specific, ``update_pixbuf_cache``
2129 .. _ref-classes-pkgconfig:
2135 library information by using ``pkg-config``. This class aims to smooth
2136 integration of ``pkg-config`` into libraries that use it.
2138 During staging, BitBake installs ``pkg-config`` data into the
2140 ``pkg-config``, the ``pkgconfig`` class no longer has to manipulate the
2143 .. _ref-classes-populate-sdk:
2148 The ``populate_sdk`` class provides support for SDK-only recipes. For
2149 information on advantages gained when building a cross-development
2150 toolchain using the :ref:`ref-tasks-populate_sdk`
2151 task, see the ":ref:`sdk-manual/appendix-obtain:building an sdk installer`"
2155 .. _ref-classes-populate-sdk-*:
2163 - ``populate_sdk_base``: The base class supporting SDK creation under
2166 - ``populate_sdk_deb``: Supports creation of the SDK given the Debian
2169 - ``populate_sdk_rpm``: Supports creation of the SDK given the RPM
2172 - ``populate_sdk_ipk``: Supports creation of the SDK given the opkg
2175 - ``populate_sdk_ext``: Supports extensible SDK creation under all
2185 ``${``\ :term:`SDK_ARCH`\ ``}-nativesdk``, which
2186 contains the cross-compiler and associated tooling, and the target,
2191 ${SDK_OUTPUT}/${SDK_ARCH}-nativesdk-pkgs
2192 ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/target-pkgs
2202 For more information on the cross-development toolchain generation, see
2203 the ":ref:`overview-manual/concepts:cross-development toolchain generation`"
2205 information on advantages gained when building a cross-development
2206 toolchain using the :ref:`ref-tasks-populate_sdk`
2208 ":ref:`sdk-manual/appendix-obtain:building an sdk installer`"
2212 .. _ref-classes-prexport:
2223 when using "``bitbake-prserv-tool export``".
2225 .. _ref-classes-primport:
2236 when using "``bitbake-prserv-tool import``".
2238 .. _ref-classes-prserv:
2244 service <dev-manual/common-tasks:working with a pr service>` in order to
2249 :ref:`package <ref-classes-package>` class. However, the OpenEmbedded
2253 .. _ref-classes-ptest:
2264 ":ref:`dev-manual/common-tasks:testing packages with ptest`"
2268 .. _ref-classes-ptest-gnome:
2270 ``ptest-gnome.bbclass``
2274 have tests intended to be executed with ``gnome-desktop-testing``.
2277 ":ref:`dev-manual/common-tasks:testing packages with ptest`"
2280 .. _ref-classes-python3-dir:
2282 ``python3-dir.bbclass``
2285 The ``python3-dir`` class provides the base version, location, and site
2288 .. _ref-classes-python3native:
2297 .. _ref-classes-python3targetconfig:
2309 .. _ref-classes-qemu:
2319 .. _ref-classes-recipe_sanity:
2328 .. _ref-classes-relocatable:
2336 This class makes use of the :ref:`chrpath <ref-classes-chrpath>` class
2337 and is used by both the :ref:`cross <ref-classes-cross>` and
2338 :ref:`native <ref-classes-native>` classes.
2340 .. _ref-classes-remove-libtool:
2342 ``remove-libtool.bbclass``
2345 The ``remove-libtool`` class adds a post function to the
2346 :ref:`ref-tasks-install` task to remove all ``.la`` files
2357 The ``remove-libtool`` class is not enabled by default.
2359 .. _ref-classes-report-error:
2361 ``report-error.bbclass``
2364 The ``report-error`` class supports enabling the :ref:`error reporting
2365 tool <dev-manual/common-tasks:using the error reporting tool>`",
2372 ``${``\ :term:`LOG_DIR`\ ``}/error-report``.
2374 .. _ref-classes-rm-work:
2405 .. _ref-classes-rootfs*:
2413 - The ``rootfs-postcommands`` class, which defines filesystem
2414 post-processing functions for image recipes.
2416 - The ``rootfs_deb`` class, which supports creation of root filesystems
2419 - The ``rootfs_rpm`` class, which supports creation of root filesystems
2422 - The ``rootfs_ipk`` class, which supports creation of root filesystems
2425 - The ``rootfsdebugfiles`` class, which installs additional files found
2433 ":ref:`overview-manual/concepts:image generation`"
2436 .. _ref-classes-sanity:
2448 .. _ref-classes-scons:
2458 .. _ref-classes-sdl:
2466 .. _ref-classes-python_setuptools_build_meta:
2473 `PEP-517 <https://www.python.org/dev/peps/pep-0517/>`__ compliant
2474 ``setuptools.build_meta`` ``build-backend`` in the ``[build-system]``
2475 section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep-0518/>`__).
2480 Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class.
2482 .. _ref-classes-setuptools3:
2496 (See `PEP-427 <https://www.python.org/dev/peps/pep-0427/>`__).
2510 <ref-classes-setuptools3_legacy>` should be used.
2512 .. _ref-classes-setuptools3_legacy:
2525 .. _ref-classes-setuptools3-base:
2527 ``setuptools3-base.bbclass``
2530 The ``setuptools3-base`` class provides a reusable base for other classes
2532 functionality that is not provided by the :ref:`setuptools3 <ref-classes-setuptools3>` class, you m…
2533 want to ``inherit setuptools3-base``. Some recipes do not need the tasks
2534 in the :ref:`setuptools3 <ref-classes-setuptools3>` class and inherit this class instead.
2536 .. _ref-classes-sign_rpm:
2543 .. _ref-classes-sip:
2548 The ``sip`` class supports recipes that build or package SIP-based
2551 .. _ref-classes-siteconfig:
2558 :ref:`autotools <ref-classes-autotools>` class to accelerate the
2559 :ref:`ref-tasks-configure` task.
2561 .. _ref-classes-siteinfo:
2582 .. _ref-classes-sstate:
2584 ``sstate.bbclass``
2587 The ``sstate`` class provides support for Shared State (sstate). By
2591 For more information on sstate, see the
2592 ":ref:`overview-manual/concepts:shared state cache`"
2595 .. _ref-classes-staging:
2603 - The :ref:`ref-tasks-populate_sysroot` task,
2607 - The
2608 :ref:`ref-tasks-prepare_recipe_sysroot`
2616 - *Stage One:* The first stage addresses recipes that have files they
2619 the :ref:`ref-tasks-install` task into
2634 A shared state (sstate) object is built from these files and the
2636 :ref:`structure-build-tmp-sysroots-components`.
2645 - *Stage Two:* The second stage addresses recipes that want to use
2649 :ref:`ref-tasks-prepare_recipe_sysroot`
2650 task and when this task executes, it creates the ``recipe-sysroot``
2651 and ``recipe-sysroot-native`` in the recipe work directory (i.e.
2654 ``sysroots-components`` into the recipe work directory.
2665 prefix "``postinst-``" are executed.
2674 (e.g. ``do_unpack[depends] += "tar-native:do_populate_sysroot"``),
2676 as a pre-function for those tasks whose dependencies are not through
2681 as the dependencies would or would not be when installed from sstate.
2684 dependencies traversed or installed. The same sstate dependency code
2686 sstate was used or not. For a closer look, see the
2688 :ref:`sstate <ref-classes-sstate>` class.
2692 sstate hash of the installed item is also stored so that if it
2695 .. _ref-classes-syslinux:
2700 The ``syslinux`` class provides syslinux-specific functions for building
2705 - :term:`INITRD`: Indicates list of filesystem images to
2709 - :term:`ROOTFS`: Indicates a filesystem image to include
2712 - :term:`AUTO_SYSLINUXMENU`: Enables creating
2715 - :term:`LABELS`: Lists targets for automatic
2718 - :term:`APPEND`: Lists append string overrides for each
2721 - :term:`SYSLINUX_OPTS`: Lists additional options
2725 - :term:`SYSLINUX_SPLASH`: Lists a background
2728 - :term:`SYSLINUX_DEFAULT_CONSOLE`: Set
2731 - :term:`SYSLINUX_SERIAL`: Sets an alternate
2735 - :term:`SYSLINUX_SERIAL_TTY`: Sets an
2738 .. _ref-classes-systemd:
2750 calling during the :ref:`ref-tasks-install` task)
2770 ":ref:`dev-manual/common-tasks:selecting an initialization manager`"
2773 .. _ref-classes-systemd-boot:
2775 ``systemd-boot.bbclass``
2778 The ``systemd-boot`` class provides functions specific to the
2779 systemd-boot bootloader for building bootable images. This is an
2784 The ``systemd-boot`` class is a result from merging the ``gummiboot`` class
2788 "systemd-boot" to use this class. Doing so creates a standalone EFI
2796 You can also see the `Systemd-boot
2797 documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__
2800 .. _ref-classes-terminal:
2811 :ref:`patch <ref-classes-patch>` class assuming
2813 :ref:`cml1 <ref-classes-cml1>` class, and the
2814 :ref:`devshell <ref-classes-devshell>` class all use the ``terminal``
2817 .. _ref-classes-testimage*:
2839 $ bitbake -c testimage image
2841 The ``testimage-auto`` class
2846 ":ref:`dev-manual/common-tasks:performing automated runtime testing`"
2849 .. _ref-classes-testsdk:
2858 $ bitbake -c testsdk image
2866 .. _ref-classes-texinfo:
2872 the ``texinfo`` utilities at build-time. Native and cross recipes are
2873 made to use the dummy scripts provided by ``texinfo-dummy-native``, for
2881 you can remove "texinfo-native" from :term:`ASSUME_PROVIDED` and makeinfo
2884 .. _ref-classes-toaster:
2895 .. _ref-classes-toolchain-scripts:
2897 ``toolchain-scripts.bbclass``
2900 The ``toolchain-scripts`` class provides the scripts used for setting up
2903 .. _ref-classes-typecheck:
2915 .. _ref-classes-uboot-config:
2917 ``uboot-config.bbclass``
2920 The ``uboot-config`` class provides support for U-Boot configuration for
2933 .. _ref-classes-uninative:
2939 library in order to make re-use of native shared state artifacts across
2941 tarball containing a pre-built C library is downloaded at the start of
2943 through ``meta/conf/distro/include/yocto-uninative.inc``. Other
2945 "``require conf/distro/include/yocto-uninative.inc``" to use this.
2946 Alternatively if you prefer, you can build the uninative-tarball recipe
2949 example, see the ``meta/conf/distro/include/yocto-uninative.inc``.
2952 SDK. When building the extensible SDK, ``uninative-tarball`` is built
2955 .. _ref-classes-update-alternatives:
2957 ``update-alternatives.bbclass``
2960 The ``update-alternatives`` class helps the alternatives system when
2965 ``update-alternatives`` class handles renaming the binaries so that
2974 - :term:`ALTERNATIVE`
2976 - :term:`ALTERNATIVE_LINK_NAME`
2978 - :term:`ALTERNATIVE_TARGET`
2980 - :term:`ALTERNATIVE_PRIORITY`
2985 :yocto_git:`update-alternatives.bbclass </poky/tree/meta/classes/update-alternatives.bbclass>`
2990 You can use the ``update-alternatives`` command directly in your recipes.
2993 .. _ref-classes-update-rc.d:
2995 ``update-rc.d.bbclass``
2998 The ``update-rc.d`` class uses ``update-rc.d`` to safely install an
3007 .. _ref-classes-useradd:
3016 group. The :oe_git:`meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
3017 </openembedded-core/tree/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb>`
3030 The ``useradd-staticids`` class supports the addition of users or groups
3039 the final ``uid`` and ``gid`` values. However, if non-deterministic
3051 You can also see the :ref:`useradd <ref-classes-useradd>` class for
3056 You do not use the ``useradd-staticids`` class directly. You either enable
3062 .. _ref-classes-utility-tasks:
3064 ``utility-tasks.bbclass``
3067 The ``utility-tasks`` class provides support for various "utility" type
3069 :ref:`ref-tasks-clean` and
3070 :ref:`ref-tasks-listtasks`.
3073 :ref:`base <ref-classes-base>` class.
3075 .. _ref-classes-utils:
3085 :ref:`base <ref-classes-base>` class.
3087 .. _ref-classes-vala:
3095 .. _ref-classes-waf: