From 0903674e2d7bafcf89cf75adbcf34cac5ce4b938 Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 25 Jun 2021 14:25:14 -0500 Subject: poky: subtree update:9d1b332292..2834c2f853 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Alex Stewart (3): opkg-utils: upgrade to version 0.4.5 opkg: upgrade to version 0.4.5 opkg: add QA check for openssl feed verification Alexander Kanavin (37): virglrenderer: explicitly depend on libgbm elfutils: update 0.183 -> 0.185 libcap: update 2.49 -> 2.50 perl: split perl-cross into its own recipe perl-cross: 1.3.5 -> 1.3.6 perl: update 5.32.1 -> 5.34.0 libgcrypt: upgrade 1.9.2 -> 1.9.3 erofs-utils: correct upstream version check m4: correct ptest failures ovmf: update 2021.02 -> 2021.05 apt: update 2.2.3 -> 2.2.4 util-linux: update 2.36.2 -> 2.37 cross-canadian: correct the location of pkg-config files nettle: update 3.7.2 -> 3.7.3 glib-2.0: update 2.68.2 -> 2.68.3 meson: upgrade 0.58.0 -> 0.58.1 ell: upgrade 0.40 -> 0.41 erofs-utils: upgrade 1.2.1 -> 1.3 grub: upgrade 2.04+2.06~rc1 -> 2.06 gptfdisk: upgrade 1.0.7 -> 1.0.8 connman: update 1.39 -> 1.40 libksba: upgrade 1.5.1 -> 1.6.0 libnss-mdns: upgrade 0.15 -> 0.15.1 libwpe: upgrade 1.10.0 -> 1.10.1 puzzles: upgrade to latest revision rng-tools: upgrade 6.12 -> 6.13 stress-ng: upgrade 0.12.09 -> 0.12.10 python3-magic: upgrade 0.4.23 -> 0.4.24 sudo: upgrade 1.9.7 -> 1.9.7p1 wpebackend-fdo: upgrade 1.8.4 -> 1.10.0 xkeyboard-config: upgrade 2.32 -> 2.33 bitbake.conf: enable debuginfod in native/nativesdk gdb-cross: enable debuginfod util-linux: backport a patch to address mkswap hangs selftest: do not hardcode /tmp/sdk glibc: do not enable memory tagging on aarch64 just yet mesa: enable gallium intel drivers when building for x86 Alexandre Belloni (1): runqemu: time the copy to tmpfs Alexey Brodkin (3): gcc: Fixes for ARC gdb: Add native GDB support for ARC gcc: Apply multilib fix to ARC as well Alistair Francis (3): recipes-bsp/opensbi: Disable FW_PIC recipes-bsp/u-boot: Allow deploying the u-boot DTB recipes-bsp/opensbi: Add support for specifying a device tree Anders Wallin (1): coreutils: remove NOSTAT_LEAF_OPTIMIZATION Andrea Adami (1): kernel.bbclass: fix do_sizecheck() comparison Andreas Müller (19): mesa: upgrade 21.1.1 -> 21.1.2 systemd: Add more ugly casts to fix build with musl alsa-lib: upgrade 1.2.4 -> 1.2.5 alsa-plugins: upgrade 1.2.2 -> 1.2.5 alsa-tools: upgrade 1.2.2 -> 1.2.5 alsa-topology-conf: upgrade 1.2.4 -> 1.2.5 alsa-ucm-conf: upgrade 1.2.4 -> 1.2.5 alsa-utils(-scripts): upgrade 1.2.4 -> 1.2.5 libinput: upgrade 1.17.3 -> 1.18.0 xf86-input-libinput: upgrade 0.30.0 -> 1.0.1 epiphany: upgrade 40.1 -> 40.2 vala: upgrade 0.52.3 -> 0.52.4 p11-kit: upgrade 0.23.22 -> 0.23.24 xorgproto: upgrade 2021.4.99.1 -> 2021.4.99.2 mpg123: 1.27.2 -> 1.28.0 libx11: upgrade 1.7.1 -> 1.7.2 libx11: remove CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE" libpcap: upgrade 1.10.0 -> 1.10.1 mesa: upgrade 21.1.2 -> 21.1.3 Bruce Ashfield (10): linux-yocto/5.10: update to v5.10.42 linux-yocto/5.10: temporarily revert aufs linux-yocto-dev: base AUTOREV on specified version linux-yocto/5.4: update to v5.4.124 linux-yocto/5.10: restore aufs linux-yocto/5.10: update to v5.10.43 linux-yocto/5.4: update to v5.4.125 linux-yocto/5.10: cgroup1: fix leaked context root causing sporadic NULL deref in LTP btrfs-tools: include linux/const.h to fix build with 5.12+ headers bsps/5.10: update to v5.10.43 Changqing Li (1): libjpeg-turbo: fix do_compile error on arm Chris Laplante (1): bitbake: build: warn on setting noexec/nostamp/fakeroot flag to any value besides '1' Daniel Wagenknecht (5): ref-manual: variables: update examples refering to DEPLOY_DIR_IMAGE ref-manual: variables: document IMGDEPLOYDIR ref-manual: migration-2.2: add note about IMGDEPLOYDIR ref-manual: variables: fixup example in IMAGE_CMD ref-manual: variables: fixup class reference in IMAGE_MANIFEST Joe Slater (1): tcf-agent: change license to EPL/EDL Joshua Watt (2): classes/buildhistory: Add option to strip path prefix classes/reproducible_build: Use atomic rename for SDE file Justin Bronder (1): populate_sdk_ext: copy BBMULTICONFIG files Kai Kang (1): valgrind: fix a typo Khem Raj (14): harfbuzz: Fix unused-variable warning arch-armv4: Allow -march=armv4 ffmpeg: Link in libatomic on riscv32 libssp-nonshared: Use a different implementation for __stack_chk_fail qemuriscv: Enable 4 core emulation gcompat: Add recipe musl: Do not package glibc loader musl: Set UPSTREAM_CHECK_COMMITS Revert "libgcc-initial: Do not build fp128 to decimal ppc functions" qemu: Provide float128 via hwcaps2 on ppc64le linuxloader: Be aware of riscv32 ldso linuxloader.bbclass: Add entry for ppc64 LE glibc loader gcompat: Create symlinks to glibc ldso locations sdk: Enable do_populate_sdk with multilibs Luca Boccassi (1): systemd: install new sysext tool via systemd-extra-utils Marcus Comstedt (1): conf/machine-sdk: Add ppc64 SDK machine Matt Spencer (1): systemd-conf: Prevent systemd-network from managing veth interfaces Michael Halstead (1): releases: update to include 3.1.8 Michael Opdenacker (12): bitbake: docs: Add BB_HASHSERVE definition to glossary bitbake: doc: bitbake-user-manual: fix erroneous statement in glossary intro manuals: fix epub export warnings ref-manual: move migration guides to separate document releases: clarify supported and outdated releases releases: put release number after "Release Series" sdk-manual: fix broken references migration guides: remove index reference to BB_SETSCENE_VERIFY_FUNCTION2 manuals: fix issues related to trailing dots sdk-manual: add missing quoting around "devtool upgrade" sdk-manual: fix wrong word sdk-manual: add missing index references Ming Liu (2): u-boot-tools: fix a mkimage signature issue uboot-sign.bbclass: fix some install commands Mingli Yu (2): sysstat: make the service start automatically boost: fix wrong type for mutex in regex v5 Nicolas Dechesne (3): index: remove the link/section to 'mega manual' from main page index: remove links to releases manual and index index: split releases manuals and indexes into two sections in the tree Paul Barker (2): bitbake: asyncrpc: Add ping method bitbake: asyncrpc: Reduce verbosity Quentin Schulz (6): docs: ref-manual: migration-3.0: remove reference to non-existing BB_SETSCENE_VERIFY_FUNCTION2 docs: ref-manual: variables: add missing links to terms glossary bitbake: doc: user-manual: remove mentions to BBVERSIONS bitbake: doc: user-manual: ref-manual: remove mentions to BB_SETSCENE_VERIFY_FUNCTION2 documentation: Makefile: turn warnings into errors by default docs: replace ``FOO`` by :term:`FOO` where possible Richard Purdie (11): lttng-tools: upgrade 2.12.3 -> 2.12.4 qemurunner: Try to ensure mmap'd libs are paged in qemurunner: Increase startup timeout 120 -> 300 build-appliance-image: Update to master head revision test-manual: add initial reproducible builds documentation test-manual: Add initial YP Compatible documentation README: Tweak as the website isn't really new now README: Move to using markdown as the format perf: Use python3targetconfig to ensure we use target libraries ltp: Reinstate 'hanging' tests for evaluation README.poky: Formatting and content cleanup Richard Weinberger (1): Document erofs filesystem targets Robert P. J. Day (2): ref-manual: add SRCTREECOVEREDTASKS to variable glossary ref-manual: add glossary entry for NON_MULTILIB_RECIPES Ross Burton (11): mx: remove from Openembedded Core core-image-weston: remove Clutter examples Remove Clutter and Cogl oeqa: remove Clutter usage meta-poky: remove clutter references Remove Clutter references gcc: enable branch protection by standard image_types: add zsync conversions avahi: apply fix for CVE-2021-3468 qemu: fix virtio vhost-user-gpu CVEs gcc: replace gdb helper install revert with the upstream fix Sakib Sajal (3): oeqa/core/target/qemu.py: display contents of dumped files oe-time-dd-test.sh: improve output formatting oe-time-dd-test.sh: add iostat command Saul Wold (1): qemurunner: add second qmp port Scott Weaver (1): bitbake: fetch2: add check for empty SRC_URI hash string Tim Orling (8): maintainers.inc: update email address python3-scons: upgrade 3.1.2 -> 4.1.0; simplify python3-hypothesis: upgrade 6.13.7 -> 6.13.14 at-spi2-core: upgrade 2.40.1 -> 2.40.2 python3-importlib-metadata: upgrade 4.4.0 -> 4.5.0 python3-manifest: add statistics subpackage python3-hypothesis: upgrade 6.13.14 -> 6.14.0 python3: skip tests requiring tools-sdk Tony Battersby (1): glibc: fix path to place zdump in the tzcode package Tony Tascioglu (3): valgrind: Improve non-deterministic ptest reliability valgrind: remove buggy ptest from arm64 valgrind: Actually install list of non-deterministic ptests hongxu (1): nativesdk-libdnf: fix installed and not shipped files wangmy (21): cmake: upgrade 3.20.2 -> 3.20.3 mtools: upgrade 4.0.27 -> 4.0.29 python3-magic: upgrade 0.4.22 -> 0.4.23 less: upgrade 586 -> 589 python3-libarchive-c: upgrade 3.0 -> 3.1 diffoscope: upgrade 175 -> 177 dtc: upgrade 1.6.0 -> 1.6.1 git: upgrade 2.31.1 -> 2.32.0 gnutls: upgrade 3.7.1 -> 3.7.2 go: upgrade 1.16.4 -> 1.16.5 less: upgrade 589 -> 590 ethtool: upgrade 5.10 -> 5.12 m4: upgrade 1.4.18 -> 1.4.19 alsa-lib: upgrade 1.2.5 -> 1.2.5.1 alsa-utils: upgrade 1.2.5 -> 1.2.5.1 alsa-topology-conf: upgrade 1.2.5 -> 1.2.5.1 alsa-ucm-conf: upgrade 1.2.5 -> 1.2.5.1 blktrace: upgrade 1.2.0 -> 1.3.0 enchant2: upgrade 2.2.15 -> 2.3.0 librepo: upgrade 1.14.0 -> 1.14.1 createrepo-c: upgrade 0.17.2 -> 0.17.3 zangrc (1): python3-pycairo: upgrade 1.20.0 -> 1.20.1 zhengruoqin (6): python3-importlib-metadata: upgrade 4.3.0 -> 4.4.0 libogg: upgrade 1.3.4 -> 1.3.5 liburcu: upgrade 0.12.2 -> 0.13.0 libcomps: upgrade 0.1.16 -> 0.1.17 python3-dbusmock: upgrade 0.23.0 -> 0.23.1 nfs-utils: upgrade 2.5.3 -> 2.5.4 Signed-off-by: Andrew Geissler Change-Id: Iac124e214336beb9cab7fb3b67a6968d4e34d06f --- poky/README.hardware | 1 - poky/README.hardware.md | 1 + poky/README.poky | 1 - poky/README.poky.md | 1 + .../bitbake-user-manual-execution.rst | 7 - .../bitbake-user-manual-metadata.rst | 45 +- .../bitbake-user-manual-ref-variables.rst | 35 +- poky/bitbake/lib/bb/asyncrpc/client.py | 7 +- poky/bitbake/lib/bb/asyncrpc/serv.py | 13 +- poky/bitbake/lib/bb/build.py | 5 + poky/bitbake/lib/bb/fetch2/__init__.py | 5 +- poky/documentation/Makefile | 2 +- poky/documentation/README | 4 +- poky/documentation/brief-yoctoprojectqs/index.rst | 2 +- poky/documentation/bsp-guide/bsp.rst | 16 +- poky/documentation/conf.py | 3 + poky/documentation/dev-manual/common-tasks.rst | 386 +++--- poky/documentation/index.rst | 13 +- poky/documentation/kernel-dev/advanced.rst | 56 +- poky/documentation/kernel-dev/common.rst | 52 +- poky/documentation/kernel-dev/faq.rst | 2 +- poky/documentation/kernel-dev/maint-appx.rst | 2 +- poky/documentation/migration-guides/index.rst | 34 + .../migration-guides/migration-1.3.rst | 194 +++ .../migration-guides/migration-1.4.rst | 235 ++++ .../migration-guides/migration-1.5.rst | 353 ++++++ .../migration-guides/migration-1.6.rst | 414 +++++++ .../migration-guides/migration-1.7.rst | 221 ++++ .../migration-guides/migration-1.8.rst | 183 +++ .../migration-guides/migration-2.0.rst | 278 +++++ .../migration-guides/migration-2.1.rst | 432 +++++++ .../migration-guides/migration-2.2.rst | 457 +++++++ .../migration-guides/migration-2.3.rst | 517 ++++++++ .../migration-guides/migration-2.4.rst | 327 +++++ .../migration-guides/migration-2.5.rst | 308 +++++ .../migration-guides/migration-2.6.rst | 452 +++++++ .../migration-guides/migration-2.7.rst | 180 +++ .../migration-guides/migration-3.0.rst | 319 +++++ .../migration-guides/migration-3.1.rst | 275 +++++ .../migration-guides/migration-3.2.rst | 313 +++++ .../migration-guides/migration-3.3.rst | 168 +++ .../migration-guides/migration-general.rst | 54 + poky/documentation/overview-manual/concepts.rst | 79 +- poky/documentation/overview-manual/yp-intro.rst | 3 +- poky/documentation/ref-manual/classes.rst | 89 +- poky/documentation/ref-manual/faq.rst | 16 +- poky/documentation/ref-manual/features.rst | 22 +- poky/documentation/ref-manual/images.rst | 4 - poky/documentation/ref-manual/index.rst | 1 - poky/documentation/ref-manual/kickstart.rst | 8 +- poky/documentation/ref-manual/migration-1.3.rst | 194 --- poky/documentation/ref-manual/migration-1.4.rst | 235 ---- poky/documentation/ref-manual/migration-1.5.rst | 353 ------ poky/documentation/ref-manual/migration-1.6.rst | 414 ------- poky/documentation/ref-manual/migration-1.7.rst | 221 ---- poky/documentation/ref-manual/migration-1.8.rst | 183 --- poky/documentation/ref-manual/migration-2.0.rst | 278 ----- poky/documentation/ref-manual/migration-2.1.rst | 432 ------- poky/documentation/ref-manual/migration-2.2.rst | 446 ------- poky/documentation/ref-manual/migration-2.3.rst | 517 -------- poky/documentation/ref-manual/migration-2.4.rst | 327 ----- poky/documentation/ref-manual/migration-2.5.rst | 308 ----- poky/documentation/ref-manual/migration-2.6.rst | 452 ------- poky/documentation/ref-manual/migration-2.7.rst | 180 --- poky/documentation/ref-manual/migration-3.0.rst | 320 ----- poky/documentation/ref-manual/migration-3.1.rst | 275 ----- poky/documentation/ref-manual/migration-3.2.rst | 313 ----- poky/documentation/ref-manual/migration-3.3.rst | 168 --- .../documentation/ref-manual/migration-general.rst | 54 - poky/documentation/ref-manual/migration.rst | 32 - poky/documentation/ref-manual/qa-checks.rst | 26 +- poky/documentation/ref-manual/release-process.rst | 11 +- poky/documentation/ref-manual/structure.rst | 16 +- poky/documentation/ref-manual/tasks.rst | 12 +- poky/documentation/ref-manual/terms.rst | 6 +- poky/documentation/ref-manual/variables.rst | 1251 ++++++++++---------- poky/documentation/releases.rst | 63 +- .../sdk-manual/appendix-customizing-standard.rst | 4 +- .../sdk-manual/appendix-customizing.rst | 47 +- poky/documentation/sdk-manual/extensible.rst | 69 +- poky/documentation/sdk-manual/working-projects.rst | 17 +- poky/documentation/sphinx-static/switchers.js | 2 +- poky/documentation/test-manual/index.rst | 2 + .../test-manual/reproducible-builds.rst | 135 +++ .../test-manual/yocto-project-compatible.rst | 124 ++ .../documentation/toaster-manual/setup-and-use.rst | 2 +- .../transitioning-to-a-custom-environment.rst | 2 +- poky/meta-poky/README.poky | 71 -- poky/meta-poky/README.poky.md | 84 ++ .../distro/include/poky-floating-revisions.inc | 2 - poky/meta-poky/conf/distro/poky-tiny.conf | 1 - poky/meta-yocto-bsp/README.hardware | 265 ----- poky/meta-yocto-bsp/README.hardware.md | 265 +++++ .../recipes-kernel/linux/linux-yocto_5.10.bbappend | 16 +- poky/meta/classes/buildhistory.bbclass | 3 +- poky/meta/classes/clutter.bbclass | 18 - poky/meta/classes/cross-canadian.bbclass | 2 +- poky/meta/classes/image_types.bbclass | 6 +- poky/meta/classes/kernel-yocto.bbclass | 24 + poky/meta/classes/kernel.bbclass | 2 +- poky/meta/classes/linuxloader.bbclass | 4 + poky/meta/classes/multilib.bbclass | 1 - poky/meta/classes/populate_sdk_base.bbclass | 2 +- poky/meta/classes/populate_sdk_ext.bbclass | 13 +- poky/meta/classes/reproducible_build.bbclass | 13 +- poky/meta/classes/uboot-config.bbclass | 4 + poky/meta/classes/uboot-sign.bbclass | 8 +- poky/meta/conf/bitbake.conf | 4 +- poky/meta/conf/distro/include/distro_alias.inc | 11 - poky/meta/conf/distro/include/maintainers.inc | 76 +- .../conf/distro/include/ptest-packagelists.inc | 2 - poky/meta/conf/machine-sdk/ppc64.conf | 2 + poky/meta/conf/machine/include/arm/arch-armv4.inc | 2 +- poky/meta/conf/machine/include/riscv/qemuriscv.inc | 1 + poky/meta/lib/oe/sstatesig.py | 15 +- poky/meta/lib/oeqa/core/target/qemu.py | 27 +- .../meta/lib/oeqa/manual/toaster-managed-mode.json | 6 +- poky/meta/lib/oeqa/selftest/cases/imagefeatures.py | 12 - poky/meta/lib/oeqa/selftest/cases/runtime_test.py | 28 +- poky/meta/lib/oeqa/utils/qemurunner.py | 27 +- poky/meta/recipes-bsp/grub/grub-efi_2.06.bb | 91 ++ poky/meta/recipes-bsp/grub/grub-efi_git.bb | 89 -- poky/meta/recipes-bsp/grub/grub2.inc | 19 +- poky/meta/recipes-bsp/grub/grub_2.06.bb | 41 + poky/meta/recipes-bsp/grub/grub_git.bb | 41 - poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc | 15 +- poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb | 3 +- ...1-tools-image-host-fix-wrong-return-value.patch | 41 + .../recipes-bsp/u-boot/u-boot-tools_2021.04.bb | 1 + poky/meta/recipes-bsp/u-boot/u-boot.inc | 7 +- poky/meta/recipes-connectivity/avahi/avahi_0.8.bb | 1 + .../avahi/files/handle-hup.patch | 41 + ...resolve-musl-does-not-implement-res_ninit.patch | 10 +- .../recipes-connectivity/connman/connman_1.39.bb | 15 - .../recipes-connectivity/connman/connman_1.40.bb | 15 + .../libnss-mdns/libnss-mdns_0.15.1.bb | 39 + .../libnss-mdns/libnss-mdns_0.15.bb | 39 - .../recipes-connectivity/libpcap/libpcap_1.10.0.bb | 44 - .../recipes-connectivity/libpcap/libpcap_1.10.1.bb | 42 + .../nfs-utils/nfs-utils_2.5.3.bb | 145 --- .../nfs-utils/nfs-utils_2.5.4.bb | 145 +++ .../0001-fts-remove-NOSTAT_LEAF_OPTIMIZATION.patch | 167 +++ poky/meta/recipes-core/coreutils/coreutils_8.32.bb | 1 + poky/meta/recipes-core/ell/ell_0.40.bb | 24 - poky/meta/recipes-core/ell/ell_0.41.bb | 24 + .../glib-2.0/glib-2.0/relocate-modules.patch | 2 +- poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.2.bb | 54 - poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.3.bb | 54 + poky/meta/recipes-core/glibc/glibc-package.inc | 2 +- poky/meta/recipes-core/glibc/glibc_2.33.bb | 2 +- .../images/build-appliance-image_15.0.0.bb | 2 +- poky/meta/recipes-core/musl/gcompat_git.bb | 54 + poky/meta/recipes-core/musl/libssp-nonshared.bb | 11 +- .../recipes-core/musl/libssp-nonshared/ssp-local.c | 45 - .../recipes-core/musl/libssp-nonshared/stack_chk.c | 40 + poky/meta/recipes-core/musl/musl_git.bb | 6 +- ...0001-ovmf-update-path-to-native-BaseTools.patch | 7 +- ...makefile-adjust-to-build-in-under-bitbake.patch | 11 +- .../ovmf/ovmf/0003-ovmf-Update-to-latest.patch | 45 + .../ovmf/ovmf/0004-Strip-build-paths.patch | 32 + .../ovmf/ovmf/0004-ovmf-Update-to-latest.patch | 46 - .../ovmf/ovmf/0005-debug-prefix-map.patch | 104 ++ .../recipes-core/ovmf/ovmf/0006-reproducible.patch | 180 +++ .../recipes-core/ovmf/ovmf/debug_prefix_map.patch | 93 -- .../meta/recipes-core/ovmf/ovmf/reproducible.patch | 165 --- poky/meta/recipes-core/ovmf/ovmf/zero.patch | 84 -- poky/meta/recipes-core/ovmf/ovmf_git.bb | 12 +- .../systemd/systemd-conf/wired.network | 1 + .../0010-Use-uintmax_t-for-handling-rlim_t.patch | 11 +- poky/meta/recipes-core/systemd/systemd_248.3.bb | 1 + .../util-linux/util-linux-libuuid_2.36.2.bb | 16 - .../util-linux/util-linux-libuuid_2.37.bb | 16 + poky/meta/recipes-core/util-linux/util-linux.inc | 4 +- .../8a3a74160b96498d672e3652827aa7e6d7f3a120.patch | 29 + ...e-EXTRA_LTLIBRARIES-instead-of-noinst_LTL.patch | 49 - .../util-linux/avoid_parallel_tests.patch | 27 +- .../recipes-core/util-linux/util-linux/ptest.patch | 15 +- .../recipes-core/util-linux/util-linux_2.36.2.bb | 332 ------ .../recipes-core/util-linux/util-linux_2.37.bb | 302 +++++ ...o-not-init-tables-from-dpkg-configuration.patch | 2 +- ...ys-run-dpkg-configure-a-at-the-end-of-our.patch | 2 +- poky/meta/recipes-devtools/apt/apt_2.2.3.bb | 135 --- poky/meta/recipes-devtools/apt/apt_2.2.4.bb | 135 +++ ...-include-linux-const.h-to-fix-build-with-.patch | 42 + .../btrfs-tools/btrfs-tools_5.12.1.bb | 1 + .../recipes-devtools/cmake/cmake-native_3.20.2.bb | 53 - .../recipes-devtools/cmake/cmake-native_3.20.3.bb | 53 + poky/meta/recipes-devtools/cmake/cmake.inc | 2 +- poky/meta/recipes-devtools/cmake/cmake_3.20.2.bb | 53 - poky/meta/recipes-devtools/cmake/cmake_3.20.3.bb | 53 + ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 11 +- .../createrepo-c/createrepo-c_0.17.2.bb | 40 - .../createrepo-c/createrepo-c_0.17.3.bb | 40 + .../recipes-devtools/elfutils/elfutils_0.183.bb | 165 --- .../recipes-devtools/elfutils/elfutils_0.185.bb | 164 +++ ...01-add-support-for-ipkg-to-debuginfod.cxx.patch | 33 - ...debuginfod-client.c-correct-string-format.patch | 61 +- .../elfutils/files/0002-musl-libs.patch | 4 +- .../elfutils/files/0003-musl-utils.patch | 8 +- .../elfutils/files/0004-Fix-error-on-musl.patch | 4 +- .../0015-config-eu.am-do-not-use-Werror.patch | 16 +- .../erofs-utils/erofs-utils_1.2.1.bb | 21 - .../erofs-utils/erofs-utils_1.3.bb | 23 + poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.7.bb | 35 - poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.8.bb | 35 + poky/meta/recipes-devtools/gcc/gcc-11.1.inc | 5 +- .../recipes-devtools/gcc/gcc-configure-common.inc | 1 + ...tdc-Install-libstdc-gdb.py-more-robustly-.patch | 76 -- ...Fix-installation-of-python-hooks-PR-99453.patch | 57 + .../gcc/gcc/0004-64-bit-multilib-hack.patch | 23 +- ...0038-arc-Update-64bit-move-split-patterns.patch | 290 +++++ .../gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch | 127 ++ .../gcc/0040-arc-Update-doloop_end-patterns.patch | 105 ++ poky/meta/recipes-devtools/gcc/libgcc-initial.inc | 2 - poky/meta/recipes-devtools/gdb/gdb-10.2.inc | 4 + .../recipes-devtools/gdb/gdb-cross-canadian.inc | 3 +- poky/meta/recipes-devtools/gdb/gdb-cross.inc | 3 +- .../0012-arc-Add-support-for-signal-handlers.patch | 218 ++++ ...pport-for-signal-frames-for-Linux-targets.patch | 232 ++++ ...to-account-the-REGNUM-in-supply-collect-g.patch | 104 ++ ...b-Add-native-support-for-ARC-in-GNU-Linux.patch | 414 +++++++ poky/meta/recipes-devtools/git/git_2.31.1.bb | 9 - poky/meta/recipes-devtools/git/git_2.32.0.bb | 9 + poky/meta/recipes-devtools/go/go-1.16.4.inc | 20 - poky/meta/recipes-devtools/go/go-1.16.5.inc | 20 + .../recipes-devtools/go/go-binary-native_1.16.4.bb | 46 - .../recipes-devtools/go/go-binary-native_1.16.5.bb | 46 + .../go/go-cross-canadian_1.16.4.bb | 2 - .../go/go-cross-canadian_1.16.5.bb | 2 + poky/meta/recipes-devtools/go/go-cross_1.16.4.bb | 2 - poky/meta/recipes-devtools/go/go-cross_1.16.5.bb | 2 + .../meta/recipes-devtools/go/go-crosssdk_1.16.4.bb | 2 - .../meta/recipes-devtools/go/go-crosssdk_1.16.5.bb | 2 + poky/meta/recipes-devtools/go/go-native_1.16.4.bb | 59 - poky/meta/recipes-devtools/go/go-native_1.16.5.bb | 59 + poky/meta/recipes-devtools/go/go-runtime_1.16.4.bb | 3 - poky/meta/recipes-devtools/go/go-runtime_1.16.5.bb | 3 + poky/meta/recipes-devtools/go/go_1.16.4.bb | 17 - poky/meta/recipes-devtools/go/go_1.16.5.bb | 17 + ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 10 +- .../recipes-devtools/libcomps/libcomps_0.1.16.bb | 24 - .../recipes-devtools/libcomps/libcomps_0.1.17.bb | 24 + .../libdnf/0001-drop-FindPythonInstDir.cmake.patch | 42 + poky/meta/recipes-devtools/libdnf/libdnf_0.63.0.bb | 1 + ...to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch | 15 +- .../recipes-devtools/librepo/librepo_1.14.0.bb | 29 - .../recipes-devtools/librepo/librepo_1.14.1.bb | 29 + poky/meta/recipes-devtools/m4/m4-1.4.18.inc | 63 - poky/meta/recipes-devtools/m4/m4-1.4.19.inc | 61 + poky/meta/recipes-devtools/m4/m4-native_1.4.18.bb | 14 - poky/meta/recipes-devtools/m4/m4-native_1.4.19.bb | 14 + ...need_charset_alias-when-building-for-musl.patch | 33 - .../m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch | 84 -- .../m4/m4/0001-test-getopt-posix-fix.patch | 41 - .../recipes-devtools/m4/m4/ac_config_links.patch | 24 +- .../m4/m4/m4-1.4.18-glibc-change-work-around.patch | 130 -- poky/meta/recipes-devtools/m4/m4_1.4.18.bb | 3 - poky/meta/recipes-devtools/m4/m4_1.4.19.bb | 3 + poky/meta/recipes-devtools/meson/meson.inc | 3 +- .../4e312c19e693a69b0650ce6c8a8903163c959996.patch | 412 ------- poky/meta/recipes-devtools/meson/meson_0.58.0.bb | 4 - poky/meta/recipes-devtools/meson/meson_0.58.1.bb | 4 + .../meson/nativesdk-meson_0.58.0.bb | 56 - .../meson/nativesdk-meson_0.58.1.bb | 56 + poky/meta/recipes-devtools/mtools/mtools_4.0.27.bb | 50 - poky/meta/recipes-devtools/mtools/mtools_4.0.29.bb | 50 + .../opkg-utils/opkg-utils_0.4.3.bb | 66 -- .../opkg-utils/opkg-utils_0.4.5.bb | 66 ++ ...et-the-OS-negotiate-relative-package-dirs.patch | 43 - .../opkg/opkg/sourcedateepoch.patch | 24 - poky/meta/recipes-devtools/opkg/opkg_0.4.4.bb | 77 -- poky/meta/recipes-devtools/opkg/opkg_0.4.5.bb | 88 ++ ...re_func_sel.sh-disable-thread_safe_nl_lan.patch | 27 + ...ath.sh-do-not-hardcode-prefix-lib-as-libr.patch | 69 ++ ...ool.sh-do-not-quote-the-argument-to-comma.patch | 29 + ...rl-cross-add-LDFLAGS-when-linking-libperl.patch | 27 + .../recipes-devtools/perl-cross/files/README.md | 29 + .../perl-cross/files/determinism.patch | 46 + .../recipes-devtools/perl-cross/perlcross_1.3.6.bb | 39 + ...ath.sh-do-not-hardcode-prefix-lib-as-libr.patch | 69 -- ...ool.sh-do-not-quote-the-argument-to-comma.patch | 29 - ...rl-cross-add-LDFLAGS-when-linking-libperl.patch | 27 - .../recipes-devtools/perl/files/determinism.patch | 23 - poky/meta/recipes-devtools/perl/perl_5.32.1.bb | 393 ------ poky/meta/recipes-devtools/perl/perl_5.34.0.bb | 384 ++++++ .../python/python3-dbusmock_0.23.0.bb | 18 - .../python/python3-dbusmock_0.23.1.bb | 18 + .../python/python3-hypothesis_6.13.7.bb | 14 - .../python/python3-hypothesis_6.14.0.bb | 22 + .../python/python3-importlib-metadata_4.3.0.bb | 20 - .../python/python3-importlib-metadata_4.5.0.bb | 20 + .../python/python3-libarchive-c_3.0.bb | 21 - .../python/python3-libarchive-c_3.1.bb | 22 + .../python/python3-magic_0.4.22.bb | 22 - .../python/python3-magic_0.4.24.bb | 22 + .../python/python3-pycairo_1.20.0.bb | 27 - .../python/python3-pycairo_1.20.1.bb | 27 + .../python/python3-scons-native_3.1.2.bb | 7 - .../python/python3-scons-native_4.1.0.bb | 7 + .../0001-Fix-man-page-installation.patch | 46 + .../recipes-devtools/python/python3-scons_3.1.2.bb | 34 - .../recipes-devtools/python/python3-scons_4.1.0.bb | 27 + ...t_ctypes.test_find-skip-without-tools-sdk.patch | 33 + .../python/python3/python3-manifest.json | 15 + poky/meta/recipes-devtools/python/python3_3.9.5.bb | 1 + poky/meta/recipes-devtools/qemu/qemu.inc | 8 + ...01-linux-user-Tag-vsx-with-ieee128-fpbits.patch | 35 + ...gpu-fix-memory-disclosure-in-virgl_cmd_ge.patch | 43 + ...gpu-fix-resource-leak-in-vg_resource_crea.patch | 41 + ...gpu-fix-memory-leak-in-vg_resource_attach.patch | 48 + ...gpu-fix-memory-leak-while-calling-vg_reso.patch | 50 + ...gpu-fix-memory-leak-in-virgl_cmd_resource.patch | 58 + ...gpu-fix-memory-leak-in-virgl_resource_att.patch | 49 + ...gpu-fix-OOB-write-in-virgl_cmd_get_capset.patch | 49 + .../tcf-agent/0001-Fixed-copyright-messages.patch | 56 + .../recipes-devtools/tcf-agent/tcf-agent_git.bb | 1 + poky/meta/recipes-devtools/vala/vala_0.52.3.bb | 5 - poky/meta/recipes-devtools/vala/vala_0.52.4.bb | 5 + .../valgrind/valgrind/remove-for-aarch64 | 1 + .../recipes-devtools/valgrind/valgrind/run-ptest | 14 +- .../valgrind/taskset_nondeterministic_tests | 2 + .../recipes-devtools/valgrind/valgrind_3.17.0.bb | 4 +- .../ethtool/ethtool/avoid_parallel_tests.patch | 2 +- poky/meta/recipes-extended/ethtool/ethtool_5.10.bb | 37 - poky/meta/recipes-extended/ethtool/ethtool_5.12.bb | 37 + poky/meta/recipes-extended/less/less_586.bb | 42 - poky/meta/recipes-extended/less/less_590.bb | 42 + .../ltp/ltp/disable_hanging_tests.patch | 45 - poky/meta/recipes-extended/ltp/ltp_20210524.bb | 1 - .../stress-ng/stress-ng_0.12.09.bb | 27 - .../stress-ng/stress-ng_0.12.10.bb | 27 + poky/meta/recipes-extended/sudo/sudo_1.9.7.bb | 59 - poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb | 59 + poky/meta/recipes-extended/sysstat/sysstat.inc | 4 + poky/meta/recipes-gnome/epiphany/epiphany_40.1.bb | 29 - poky/meta/recipes-gnome/epiphany/epiphany_40.2.bb | 29 + poky/meta/recipes-graphics/clutter/clutter-1.0.inc | 49 - ...ter.types-as-it-is-build-configuration-sp.patch | 143 --- .../clutter/clutter-1.0/install-examples.patch | 19 - .../run-installed-tests-with-tap-output.patch | 30 - .../recipes-graphics/clutter/clutter-1.0/run-ptest | 3 - .../recipes-graphics/clutter/clutter-1.0_1.26.4.bb | 10 - .../recipes-graphics/clutter/clutter-gst-3.0.inc | 23 - ...mple-binary-needed-for-core-image-clutter.patch | 33 - .../clutter/clutter-gst-3.0_3.0.27.bb | 7 - .../recipes-graphics/clutter/clutter-gtk-1.0.inc | 23 - ...g-variable-for-enabling-disabling-introsp.patch | 37 - .../clutter/clutter-gtk-1.0_1.8.4.bb | 7 - poky/meta/recipes-graphics/cogl/cogl-1.0.inc | 84 -- ...1-configure.ac-don-t-require-eglmesaext.h.patch | 92 -- poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb | 6 - ...sed-variable-supp_size-from-plan_subset_e.patch | 44 + .../recipes-graphics/harfbuzz/harfbuzz_2.8.1.bb | 1 + .../recipes-graphics/images/core-image-clutter.bb | 15 - .../recipes-graphics/images/core-image-weston.bb | 2 +- .../recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb | 3 + poky/meta/recipes-graphics/mesa/mesa-gl_21.1.1.bb | 16 - poky/meta/recipes-graphics/mesa/mesa-gl_21.1.3.bb | 16 + poky/meta/recipes-graphics/mesa/mesa.inc | 5 +- poky/meta/recipes-graphics/mesa/mesa_21.1.1.bb | 5 - poky/meta/recipes-graphics/mesa/mesa_21.1.3.bb | 5 + .../mx/mx-1.0/fix-test-includes.patch | 20 - poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb | 16 - poky/meta/recipes-graphics/mx/mx.inc | 27 - .../packagegroups/packagegroup-core-clutter.bb | 22 - .../virglrenderer/virglrenderer_0.9.1.bb | 2 +- .../recipes-graphics/wayland/libinput_1.17.3.bb | 49 - .../recipes-graphics/wayland/libinput_1.18.0.bb | 49 + .../xorg-driver/xf86-input-libinput_0.30.0.bb | 11 - .../xorg-driver/xf86-input-libinput_1.0.1.bb | 11 + .../meta/recipes-graphics/xorg-lib/libx11_1.7.1.bb | 45 - .../meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb | 42 + .../xorg-lib/xkeyboard-config_2.32.bb | 30 - .../xorg-lib/xkeyboard-config_2.33.bb | 30 + .../xorg-proto/xorgproto_2021.4.99.1.bb | 25 - .../xorg-proto/xorgproto_2021.4.99.2.bb | 25 + .../blktrace/blktrace/CVE-2018-10689.patch | 150 --- .../recipes-kernel/blktrace/blktrace/ldflags.patch | 114 -- .../blktrace/make-btt-scripts-python3-ready.patch | 197 --- poky/meta/recipes-kernel/blktrace/blktrace_git.bb | 10 +- .../dtc/dtc/0001-fdtdump-Fix-gcc11-warning.patch | 35 - poky/meta/recipes-kernel/dtc/dtc_1.6.0.bb | 12 - poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb | 10 + .../recipes-kernel/linux/linux-yocto-rt_5.10.bb | 6 +- .../recipes-kernel/linux/linux-yocto-rt_5.4.bb | 6 +- .../recipes-kernel/linux/linux-yocto-tiny_5.10.bb | 8 +- .../recipes-kernel/linux/linux-yocto-tiny_5.4.bb | 8 +- poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb | 24 +- poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb | 22 +- .../recipes-kernel/lttng/lttng-tools_2.12.3.bb | 174 --- .../recipes-kernel/lttng/lttng-tools_2.12.4.bb | 177 +++ poky/meta/recipes-kernel/perf/perf.bb | 2 +- .../ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch | 31 - .../meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb | 45 - .../recipes-multimedia/alsa/alsa-lib_1.2.5.1.bb | 44 + .../recipes-multimedia/alsa/alsa-plugins_1.2.2.bb | 175 --- .../recipes-multimedia/alsa/alsa-plugins_1.2.5.bb | 174 +++ .../recipes-multimedia/alsa/alsa-tools_1.2.2.bb | 89 -- .../recipes-multimedia/alsa/alsa-tools_1.2.5.bb | 88 ++ .../alsa/alsa-topology-conf_1.2.4.bb | 22 - .../alsa/alsa-topology-conf_1.2.5.1.bb | 23 + .../recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb | 23 - .../alsa/alsa-ucm-conf_1.2.5.1.bb | 24 + .../alsa/alsa-utils-scripts_1.2.4.bb | 25 - .../alsa/alsa-utils-scripts_1.2.5.1.bb | 25 + poky/meta/recipes-multimedia/alsa/alsa-utils.inc | 2 +- .../recipes-multimedia/alsa/alsa-utils_1.2.4.bb | 2 - .../recipes-multimedia/alsa/alsa-utils_1.2.5.1.bb | 2 + poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb | 1 + .../meta/recipes-multimedia/libogg/libogg_1.3.4.bb | 17 - .../meta/recipes-multimedia/libogg/libogg_1.3.5.bb | 17 + .../recipes-multimedia/mpg123/mpg123_1.27.2.bb | 52 - .../recipes-multimedia/mpg123/mpg123_1.28.0.bb | 52 + poky/meta/recipes-sato/puzzles/puzzles_git.bb | 4 +- poky/meta/recipes-sato/webkit/libwpe_1.10.0.bb | 21 - poky/meta/recipes-sato/webkit/libwpe_1.10.1.bb | 21 + .../recipes-sato/webkit/wpebackend-fdo_1.10.0.bb | 20 + .../recipes-sato/webkit/wpebackend-fdo_1.8.4.bb | 20 - .../recipes-support/atk/at-spi2-core_2.40.1.bb | 39 - .../recipes-support/atk/at-spi2-core_2.40.2.bb | 39 + ...01-Fixes-wrong-type-for-mutex-in-regex-v5.patch | 54 + poky/meta/recipes-support/boost/boost_1.76.0.bb | 1 + .../recipes-support/diffoscope/diffoscope_175.bb | 30 - .../recipes-support/diffoscope/diffoscope_177.bb | 30 + .../recipes-support/enchant/enchant2_2.2.15.bb | 31 - .../meta/recipes-support/enchant/enchant2_2.3.0.bb | 31 + poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb | 69 -- poky/meta/recipes-support/gnutls/gnutls_3.7.2.bb | 69 ++ .../0001-tests-do-not-statically-link-a-test.patch | 20 +- poky/meta/recipes-support/libcap/libcap_2.49.bb | 73 -- poky/meta/recipes-support/libcap/libcap_2.50.bb | 73 ++ .../recipes-support/libgcrypt/libgcrypt_1.9.2.bb | 61 - .../recipes-support/libgcrypt/libgcrypt_1.9.3.bb | 61 + poky/meta/recipes-support/libksba/libksba_1.5.1.bb | 34 - poky/meta/recipes-support/libksba/libksba_1.6.0.bb | 34 + .../meta/recipes-support/liburcu/liburcu_0.12.2.bb | 25 - .../meta/recipes-support/liburcu/liburcu_0.13.0.bb | 25 + poky/meta/recipes-support/nettle/nettle_3.7.2.bb | 57 - poky/meta/recipes-support/nettle/nettle_3.7.3.bb | 57 + .../recipes-support/p11-kit/p11-kit_0.23.22.bb | 32 - .../meta/recipes-support/p11-kit/p11-kit_0.24.0.bb | 32 + .../recipes-support/rng-tools/rng-tools_6.12.bb | 60 - .../recipes-support/rng-tools/rng-tools_6.13.bb | 60 + poky/scripts/oe-time-dd-test.sh | 7 + poky/scripts/runqemu | 5 +- 445 files changed, 15235 insertions(+), 14328 deletions(-) delete mode 120000 poky/README.hardware create mode 120000 poky/README.hardware.md delete mode 120000 poky/README.poky create mode 120000 poky/README.poky.md create mode 100644 poky/documentation/migration-guides/index.rst create mode 100644 poky/documentation/migration-guides/migration-1.3.rst create mode 100644 poky/documentation/migration-guides/migration-1.4.rst create mode 100644 poky/documentation/migration-guides/migration-1.5.rst create mode 100644 poky/documentation/migration-guides/migration-1.6.rst create mode 100644 poky/documentation/migration-guides/migration-1.7.rst create mode 100644 poky/documentation/migration-guides/migration-1.8.rst create mode 100644 poky/documentation/migration-guides/migration-2.0.rst create mode 100644 poky/documentation/migration-guides/migration-2.1.rst create mode 100644 poky/documentation/migration-guides/migration-2.2.rst create mode 100644 poky/documentation/migration-guides/migration-2.3.rst create mode 100644 poky/documentation/migration-guides/migration-2.4.rst create mode 100644 poky/documentation/migration-guides/migration-2.5.rst create mode 100644 poky/documentation/migration-guides/migration-2.6.rst create mode 100644 poky/documentation/migration-guides/migration-2.7.rst create mode 100644 poky/documentation/migration-guides/migration-3.0.rst create mode 100644 poky/documentation/migration-guides/migration-3.1.rst create mode 100644 poky/documentation/migration-guides/migration-3.2.rst create mode 100644 poky/documentation/migration-guides/migration-3.3.rst create mode 100644 poky/documentation/migration-guides/migration-general.rst delete mode 100644 poky/documentation/ref-manual/migration-1.3.rst delete mode 100644 poky/documentation/ref-manual/migration-1.4.rst delete mode 100644 poky/documentation/ref-manual/migration-1.5.rst delete mode 100644 poky/documentation/ref-manual/migration-1.6.rst delete mode 100644 poky/documentation/ref-manual/migration-1.7.rst delete mode 100644 poky/documentation/ref-manual/migration-1.8.rst delete mode 100644 poky/documentation/ref-manual/migration-2.0.rst delete mode 100644 poky/documentation/ref-manual/migration-2.1.rst delete mode 100644 poky/documentation/ref-manual/migration-2.2.rst delete mode 100644 poky/documentation/ref-manual/migration-2.3.rst delete mode 100644 poky/documentation/ref-manual/migration-2.4.rst delete mode 100644 poky/documentation/ref-manual/migration-2.5.rst delete mode 100644 poky/documentation/ref-manual/migration-2.6.rst delete mode 100644 poky/documentation/ref-manual/migration-2.7.rst delete mode 100644 poky/documentation/ref-manual/migration-3.0.rst delete mode 100644 poky/documentation/ref-manual/migration-3.1.rst delete mode 100644 poky/documentation/ref-manual/migration-3.2.rst delete mode 100644 poky/documentation/ref-manual/migration-3.3.rst delete mode 100644 poky/documentation/ref-manual/migration-general.rst delete mode 100644 poky/documentation/ref-manual/migration.rst create mode 100644 poky/documentation/test-manual/reproducible-builds.rst create mode 100644 poky/documentation/test-manual/yocto-project-compatible.rst delete mode 100644 poky/meta-poky/README.poky create mode 100644 poky/meta-poky/README.poky.md delete mode 100644 poky/meta-yocto-bsp/README.hardware create mode 100644 poky/meta-yocto-bsp/README.hardware.md delete mode 100644 poky/meta/classes/clutter.bbclass create mode 100644 poky/meta/conf/machine-sdk/ppc64.conf create mode 100644 poky/meta/recipes-bsp/grub/grub-efi_2.06.bb delete mode 100644 poky/meta/recipes-bsp/grub/grub-efi_git.bb create mode 100644 poky/meta/recipes-bsp/grub/grub_2.06.bb delete mode 100644 poky/meta/recipes-bsp/grub/grub_git.bb create mode 100644 poky/meta/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch create mode 100644 poky/meta/recipes-connectivity/avahi/files/handle-hup.patch delete mode 100644 poky/meta/recipes-connectivity/connman/connman_1.39.bb create mode 100644 poky/meta/recipes-connectivity/connman/connman_1.40.bb create mode 100644 poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb delete mode 100644 poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.bb delete mode 100644 poky/meta/recipes-connectivity/libpcap/libpcap_1.10.0.bb create mode 100644 poky/meta/recipes-connectivity/libpcap/libpcap_1.10.1.bb delete mode 100644 poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.3.bb create mode 100644 poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.4.bb create mode 100644 poky/meta/recipes-core/coreutils/coreutils/0001-fts-remove-NOSTAT_LEAF_OPTIMIZATION.patch delete mode 100644 poky/meta/recipes-core/ell/ell_0.40.bb create mode 100644 poky/meta/recipes-core/ell/ell_0.41.bb delete mode 100644 poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.2.bb create mode 100644 poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.3.bb create mode 100644 poky/meta/recipes-core/musl/gcompat_git.bb delete mode 100644 poky/meta/recipes-core/musl/libssp-nonshared/ssp-local.c create mode 100644 poky/meta/recipes-core/musl/libssp-nonshared/stack_chk.c create mode 100644 poky/meta/recipes-core/ovmf/ovmf/0003-ovmf-Update-to-latest.patch create mode 100644 poky/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch delete mode 100644 poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch create mode 100644 poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch create mode 100644 poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch delete mode 100644 poky/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch delete mode 100644 poky/meta/recipes-core/ovmf/ovmf/reproducible.patch delete mode 100644 poky/meta/recipes-core/ovmf/ovmf/zero.patch delete mode 100644 poky/meta/recipes-core/util-linux/util-linux-libuuid_2.36.2.bb create mode 100644 poky/meta/recipes-core/util-linux/util-linux-libuuid_2.37.bb create mode 100644 poky/meta/recipes-core/util-linux/util-linux/8a3a74160b96498d672e3652827aa7e6d7f3a120.patch delete mode 100644 poky/meta/recipes-core/util-linux/util-linux/Automake-use-EXTRA_LTLIBRARIES-instead-of-noinst_LTL.patch delete mode 100644 poky/meta/recipes-core/util-linux/util-linux_2.36.2.bb create mode 100644 poky/meta/recipes-core/util-linux/util-linux_2.37.bb delete mode 100644 poky/meta/recipes-devtools/apt/apt_2.2.3.bb create mode 100644 poky/meta/recipes-devtools/apt/apt_2.2.4.bb create mode 100644 poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch delete mode 100644 poky/meta/recipes-devtools/cmake/cmake-native_3.20.2.bb create mode 100644 poky/meta/recipes-devtools/cmake/cmake-native_3.20.3.bb delete mode 100644 poky/meta/recipes-devtools/cmake/cmake_3.20.2.bb create mode 100644 poky/meta/recipes-devtools/cmake/cmake_3.20.3.bb delete mode 100644 poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.2.bb create mode 100644 poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.3.bb delete mode 100644 poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb create mode 100644 poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb delete mode 100644 poky/meta/recipes-devtools/elfutils/files/0001-add-support-for-ipkg-to-debuginfod.cxx.patch delete mode 100644 poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.2.1.bb create mode 100644 poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb delete mode 100644 poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.7.bb create mode 100644 poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.8.bb delete mode 100644 poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch create mode 100644 poky/meta/recipes-devtools/gdb/gdb/0012-arc-Add-support-for-signal-handlers.patch create mode 100644 poky/meta/recipes-devtools/gdb/gdb/0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch create mode 100644 poky/meta/recipes-devtools/gdb/gdb/0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch create mode 100644 poky/meta/recipes-devtools/gdb/gdb/0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch delete mode 100644 poky/meta/recipes-devtools/git/git_2.31.1.bb create mode 100644 poky/meta/recipes-devtools/git/git_2.32.0.bb delete mode 100644 poky/meta/recipes-devtools/go/go-1.16.4.inc create mode 100644 poky/meta/recipes-devtools/go/go-1.16.5.inc delete mode 100644 poky/meta/recipes-devtools/go/go-binary-native_1.16.4.bb create mode 100644 poky/meta/recipes-devtools/go/go-binary-native_1.16.5.bb delete mode 100644 poky/meta/recipes-devtools/go/go-cross-canadian_1.16.4.bb create mode 100644 poky/meta/recipes-devtools/go/go-cross-canadian_1.16.5.bb delete mode 100644 poky/meta/recipes-devtools/go/go-cross_1.16.4.bb create mode 100644 poky/meta/recipes-devtools/go/go-cross_1.16.5.bb delete mode 100644 poky/meta/recipes-devtools/go/go-crosssdk_1.16.4.bb create mode 100644 poky/meta/recipes-devtools/go/go-crosssdk_1.16.5.bb delete mode 100644 poky/meta/recipes-devtools/go/go-native_1.16.4.bb create mode 100644 poky/meta/recipes-devtools/go/go-native_1.16.5.bb delete mode 100644 poky/meta/recipes-devtools/go/go-runtime_1.16.4.bb create mode 100644 poky/meta/recipes-devtools/go/go-runtime_1.16.5.bb delete mode 100644 poky/meta/recipes-devtools/go/go_1.16.4.bb create mode 100644 poky/meta/recipes-devtools/go/go_1.16.5.bb delete mode 100644 poky/meta/recipes-devtools/libcomps/libcomps_0.1.16.bb create mode 100644 poky/meta/recipes-devtools/libcomps/libcomps_0.1.17.bb create mode 100644 poky/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch delete mode 100644 poky/meta/recipes-devtools/librepo/librepo_1.14.0.bb create mode 100644 poky/meta/recipes-devtools/librepo/librepo_1.14.1.bb delete mode 100644 poky/meta/recipes-devtools/m4/m4-1.4.18.inc create mode 100644 poky/meta/recipes-devtools/m4/m4-1.4.19.inc delete mode 100644 poky/meta/recipes-devtools/m4/m4-native_1.4.18.bb create mode 100644 poky/meta/recipes-devtools/m4/m4-native_1.4.19.bb delete mode 100644 poky/meta/recipes-devtools/m4/m4/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 poky/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch delete mode 100644 poky/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch delete mode 100644 poky/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch delete mode 100644 poky/meta/recipes-devtools/m4/m4_1.4.18.bb create mode 100644 poky/meta/recipes-devtools/m4/m4_1.4.19.bb delete mode 100644 poky/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch delete mode 100644 poky/meta/recipes-devtools/meson/meson_0.58.0.bb create mode 100644 poky/meta/recipes-devtools/meson/meson_0.58.1.bb delete mode 100644 poky/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb create mode 100644 poky/meta/recipes-devtools/meson/nativesdk-meson_0.58.1.bb delete mode 100644 poky/meta/recipes-devtools/mtools/mtools_4.0.27.bb create mode 100644 poky/meta/recipes-devtools/mtools/mtools_4.0.29.bb delete mode 100644 poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb create mode 100644 poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.5.bb delete mode 100644 poky/meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch delete mode 100644 poky/meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch delete mode 100644 poky/meta/recipes-devtools/opkg/opkg_0.4.4.bb create mode 100644 poky/meta/recipes-devtools/opkg/opkg_0.4.5.bb create mode 100644 poky/meta/recipes-devtools/perl-cross/files/0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch create mode 100644 poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch create mode 100644 poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch create mode 100644 poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch create mode 100644 poky/meta/recipes-devtools/perl-cross/files/README.md create mode 100644 poky/meta/recipes-devtools/perl-cross/files/determinism.patch create mode 100644 poky/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb delete mode 100644 poky/meta/recipes-devtools/perl/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch delete mode 100644 poky/meta/recipes-devtools/perl/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch delete mode 100644 poky/meta/recipes-devtools/perl/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch delete mode 100644 poky/meta/recipes-devtools/perl/perl_5.32.1.bb create mode 100644 poky/meta/recipes-devtools/perl/perl_5.34.0.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-dbusmock_0.23.0.bb create mode 100644 poky/meta/recipes-devtools/python/python3-dbusmock_0.23.1.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-hypothesis_6.13.7.bb create mode 100644 poky/meta/recipes-devtools/python/python3-hypothesis_6.14.0.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-importlib-metadata_4.3.0.bb create mode 100644 poky/meta/recipes-devtools/python/python3-importlib-metadata_4.5.0.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-libarchive-c_3.0.bb create mode 100644 poky/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-magic_0.4.22.bb create mode 100644 poky/meta/recipes-devtools/python/python3-magic_0.4.24.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-pycairo_1.20.0.bb create mode 100644 poky/meta/recipes-devtools/python/python3-pycairo_1.20.1.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb create mode 100644 poky/meta/recipes-devtools/python/python3-scons-native_4.1.0.bb create mode 100644 poky/meta/recipes-devtools/python/python3-scons/0001-Fix-man-page-installation.patch delete mode 100644 poky/meta/recipes-devtools/python/python3-scons_3.1.2.bb create mode 100644 poky/meta/recipes-devtools/python/python3-scons_4.1.0.bb create mode 100644 poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-Tag-vsx-with-ieee128-fpbits.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/0001-vhost-user-gpu-fix-memory-disclosure-in-virgl_cmd_ge.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/0002-vhost-user-gpu-fix-resource-leak-in-vg_resource_crea.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/0003-vhost-user-gpu-fix-memory-leak-in-vg_resource_attach.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/0004-vhost-user-gpu-fix-memory-leak-while-calling-vg_reso.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/0005-vhost-user-gpu-fix-memory-leak-in-virgl_cmd_resource.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/0006-vhost-user-gpu-fix-memory-leak-in-virgl_resource_att.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/0007-vhost-user-gpu-fix-OOB-write-in-virgl_cmd_get_capset.patch create mode 100644 poky/meta/recipes-devtools/tcf-agent/tcf-agent/0001-Fixed-copyright-messages.patch delete mode 100644 poky/meta/recipes-devtools/vala/vala_0.52.3.bb create mode 100644 poky/meta/recipes-devtools/vala/vala_0.52.4.bb create mode 100644 poky/meta/recipes-devtools/valgrind/valgrind/taskset_nondeterministic_tests delete mode 100644 poky/meta/recipes-extended/ethtool/ethtool_5.10.bb create mode 100644 poky/meta/recipes-extended/ethtool/ethtool_5.12.bb delete mode 100644 poky/meta/recipes-extended/less/less_586.bb create mode 100644 poky/meta/recipes-extended/less/less_590.bb delete mode 100644 poky/meta/recipes-extended/ltp/ltp/disable_hanging_tests.patch delete mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.12.09.bb create mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.12.10.bb delete mode 100644 poky/meta/recipes-extended/sudo/sudo_1.9.7.bb create mode 100644 poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb delete mode 100644 poky/meta/recipes-gnome/epiphany/epiphany_40.1.bb create mode 100644 poky/meta/recipes-gnome/epiphany/epiphany_40.2.bb delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-1.0.inc delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-1.0/install-examples.patch delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-1.0/run-ptest delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-1.0_1.26.4.bb delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch delete mode 100644 poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb delete mode 100644 poky/meta/recipes-graphics/cogl/cogl-1.0.inc delete mode 100644 poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch delete mode 100644 poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb create mode 100644 poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Removed-unused-variable-supp_size-from-plan_subset_e.patch delete mode 100644 poky/meta/recipes-graphics/images/core-image-clutter.bb delete mode 100644 poky/meta/recipes-graphics/mesa/mesa-gl_21.1.1.bb create mode 100644 poky/meta/recipes-graphics/mesa/mesa-gl_21.1.3.bb delete mode 100644 poky/meta/recipes-graphics/mesa/mesa_21.1.1.bb create mode 100644 poky/meta/recipes-graphics/mesa/mesa_21.1.3.bb delete mode 100644 poky/meta/recipes-graphics/mx/mx-1.0/fix-test-includes.patch delete mode 100644 poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb delete mode 100644 poky/meta/recipes-graphics/mx/mx.inc delete mode 100644 poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb delete mode 100644 poky/meta/recipes-graphics/wayland/libinput_1.17.3.bb create mode 100644 poky/meta/recipes-graphics/wayland/libinput_1.18.0.bb delete mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.30.0.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.0.1.bb delete mode 100644 poky/meta/recipes-graphics/xorg-lib/libx11_1.7.1.bb create mode 100644 poky/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb delete mode 100644 poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.32.bb create mode 100644 poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.33.bb delete mode 100644 poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.1.bb create mode 100644 poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.2.bb delete mode 100644 poky/meta/recipes-kernel/blktrace/blktrace/CVE-2018-10689.patch delete mode 100644 poky/meta/recipes-kernel/blktrace/blktrace/ldflags.patch delete mode 100644 poky/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch delete mode 100644 poky/meta/recipes-kernel/dtc/dtc/0001-fdtdump-Fix-gcc11-warning.patch delete mode 100644 poky/meta/recipes-kernel/dtc/dtc_1.6.0.bb create mode 100644 poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb delete mode 100644 poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb create mode 100644 poky/meta/recipes-kernel/lttng/lttng-tools_2.12.4.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.5.1.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.5.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-tools_1.2.5.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.5.1.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.5.1.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.5.1.bb delete mode 100644 poky/meta/recipes-multimedia/libogg/libogg_1.3.4.bb create mode 100644 poky/meta/recipes-multimedia/libogg/libogg_1.3.5.bb delete mode 100644 poky/meta/recipes-multimedia/mpg123/mpg123_1.27.2.bb create mode 100644 poky/meta/recipes-multimedia/mpg123/mpg123_1.28.0.bb delete mode 100644 poky/meta/recipes-sato/webkit/libwpe_1.10.0.bb create mode 100644 poky/meta/recipes-sato/webkit/libwpe_1.10.1.bb create mode 100644 poky/meta/recipes-sato/webkit/wpebackend-fdo_1.10.0.bb delete mode 100644 poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.4.bb delete mode 100644 poky/meta/recipes-support/atk/at-spi2-core_2.40.1.bb create mode 100644 poky/meta/recipes-support/atk/at-spi2-core_2.40.2.bb create mode 100644 poky/meta/recipes-support/boost/boost/0001-Fixes-wrong-type-for-mutex-in-regex-v5.patch delete mode 100644 poky/meta/recipes-support/diffoscope/diffoscope_175.bb create mode 100644 poky/meta/recipes-support/diffoscope/diffoscope_177.bb delete mode 100644 poky/meta/recipes-support/enchant/enchant2_2.2.15.bb create mode 100644 poky/meta/recipes-support/enchant/enchant2_2.3.0.bb delete mode 100644 poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb create mode 100644 poky/meta/recipes-support/gnutls/gnutls_3.7.2.bb delete mode 100644 poky/meta/recipes-support/libcap/libcap_2.49.bb create mode 100644 poky/meta/recipes-support/libcap/libcap_2.50.bb delete mode 100644 poky/meta/recipes-support/libgcrypt/libgcrypt_1.9.2.bb create mode 100644 poky/meta/recipes-support/libgcrypt/libgcrypt_1.9.3.bb delete mode 100644 poky/meta/recipes-support/libksba/libksba_1.5.1.bb create mode 100644 poky/meta/recipes-support/libksba/libksba_1.6.0.bb delete mode 100644 poky/meta/recipes-support/liburcu/liburcu_0.12.2.bb create mode 100644 poky/meta/recipes-support/liburcu/liburcu_0.13.0.bb delete mode 100644 poky/meta/recipes-support/nettle/nettle_3.7.2.bb create mode 100644 poky/meta/recipes-support/nettle/nettle_3.7.3.bb delete mode 100644 poky/meta/recipes-support/p11-kit/p11-kit_0.23.22.bb create mode 100644 poky/meta/recipes-support/p11-kit/p11-kit_0.24.0.bb delete mode 100644 poky/meta/recipes-support/rng-tools/rng-tools_6.12.bb create mode 100644 poky/meta/recipes-support/rng-tools/rng-tools_6.13.bb (limited to 'poky') diff --git a/poky/README.hardware b/poky/README.hardware deleted file mode 120000 index 8b6258d49..000000000 --- a/poky/README.hardware +++ /dev/null @@ -1 +0,0 @@ -meta-yocto-bsp/README.hardware \ No newline at end of file diff --git a/poky/README.hardware.md b/poky/README.hardware.md new file mode 120000 index 000000000..0d0745f46 --- /dev/null +++ b/poky/README.hardware.md @@ -0,0 +1 @@ +meta-yocto-bsp/README.hardware.md \ No newline at end of file diff --git a/poky/README.poky b/poky/README.poky deleted file mode 120000 index 1877dca10..000000000 --- a/poky/README.poky +++ /dev/null @@ -1 +0,0 @@ -meta-poky/README.poky \ No newline at end of file diff --git a/poky/README.poky.md b/poky/README.poky.md new file mode 120000 index 000000000..15b27a322 --- /dev/null +++ b/poky/README.poky.md @@ -0,0 +1 @@ +meta-poky/README.poky.md \ No newline at end of file diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst index 14c342a6a..84d65fa9c 100644 --- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst +++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst @@ -648,13 +648,6 @@ compiled binary. To handle this, BitBake calls the each successful setscene task to know whether or not it needs to obtain the dependencies of that task. -Finally, after all the setscene tasks have executed, BitBake calls the -function listed in -:term:`BB_SETSCENE_VERIFY_FUNCTION2` -with the list of tasks BitBake thinks has been "covered". The metadata -can then ensure that this list is correct and can inform BitBake that it -wants specific tasks to be run regardless of the setscene result. - You can find more information on setscene metadata in the :ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene` section. diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst index 615c9f9ce..20c330e6a 100644 --- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst +++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst @@ -1650,10 +1650,15 @@ user interfaces: Variants - Class Extension Mechanism ==================================== -BitBake supports two features that facilitate creating from a single -recipe file multiple incarnations of that recipe file where all -incarnations are buildable. These features are enabled through the -:term:`BBCLASSEXTEND` and :term:`BBVERSIONS` variables. +BitBake supports multiple incarnations of a recipe file via the +:term:`BBCLASSEXTEND` variable. + +The :term:`BBCLASSEXTEND` variable is a space separated list of classes used +to "extend" the recipe for each variant. Here is an example that results in a +second incarnation of the current recipe being available. This second +incarnation will have the "native" class inherited. :: + + BBCLASSEXTEND = "native" .. note:: @@ -1663,34 +1668,6 @@ incarnations are buildable. These features are enabled through the class. For specific examples, see the OE-Core native , nativesdk , and multilib classes. -- ``BBCLASSEXTEND``: This variable is a space separated list of - classes used to "extend" the recipe for each variant. Here is an - example that results in a second incarnation of the current recipe - being available. This second incarnation will have the "native" class - inherited. :: - - BBCLASSEXTEND = "native" - -- ``BBVERSIONS``: This variable allows a single recipe to build - multiple versions of a project from a single recipe file. You can - also specify conditional metadata (using the - :term:`OVERRIDES` mechanism) for a single - version, or an optionally named range of versions. Here is an - example:: - - BBVERSIONS = "1.0 2.0 git" - SRC_URI_git = "git://someurl/somepath.git" - - BBVERSIONS = "1.0.[0-6]:1.0.0+ 1.0.[7-9]:1.0.7+" - SRC_URI_append_1.0.7+ = "file://some_patch_which_the_new_versions_need.patch;patch=1" - - The name of the range defaults to the original version of the recipe. For - example, in OpenEmbedded, the recipe file ``foo_1.0.0+.bb`` creates a default - name range of ``1.0.0+``. This is useful because the range name is not only - placed into overrides, but it is also made available for the metadata to use - in the variable that defines the base recipe versions for use in ``file://`` - search paths (:term:`FILESPATH`). - Dependencies ============ @@ -1943,10 +1920,6 @@ The following list describes related variables: Specifies a function BitBake calls that determines whether BitBake requires a setscene dependency to be met. -- :term:`BB_SETSCENE_VERIFY_FUNCTION2`: - Specifies a function to call that verifies the list of planned task - execution before the main task execution happens. - - :term:`BB_STAMP_POLICY`: Defines the mode for comparing timestamps of stamp files. diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst index e1b640e2f..2dca52c4a 100644 --- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst +++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst @@ -23,10 +23,6 @@ overview of their function and contents. systems extend the functionality of the variable as it is described here in this glossary. - - Finally, there are variables mentioned in this glossary that do - not appear in the BitBake glossary. These other variables are - variables used in systems that use BitBake. - .. glossary:: :term:`ASSUME_PROVIDED` @@ -313,6 +309,16 @@ overview of their function and contents. However, the more accurate the data returned, the more efficient the build will be. + :term:`BB_HASHSERVE` + Specifies the Hash Equivalence server to use. + + If set to ``auto``, BitBake automatically starts its own server + over a UNIX domain socket. + + If set to ``host:port``, BitBake will use a remote server on the + specified host. This allows multiple clients to share the same + hash equivalence data. + :term:`BB_INVALIDCONF` Used in combination with the ``ConfigParsed`` event to trigger re-parsing the base metadata (i.e. all the recipes). The @@ -426,17 +432,6 @@ overview of their function and contents. The function specified by this variable returns a "True" or "False" depending on whether the dependency needs to be met. - :term:`BB_SETSCENE_VERIFY_FUNCTION2` - Specifies a function to call that verifies the list of planned task - execution before the main task execution happens. The function is - called once BitBake has a list of setscene tasks that have run and - either succeeded or failed. - - The function allows for a task list check to see if they make sense. - Even if BitBake was planning to skip a task, the returned value of - the function can force BitBake to run the task, which is necessary - under certain metadata defined circumstances. - :term:`BB_SIGNATURE_EXCLUDE_FLAGS` Lists variable flags (varflags) that can be safely excluded from checksum and dependency data for keys in the datastore. When @@ -797,16 +792,6 @@ overview of their function and contents. Allows you to use a configuration file to add to the list of command-line target recipes you want to build. - :term:`BBVERSIONS` - Allows a single recipe to build multiple versions of a project from a - single recipe file. You also able to specify conditional metadata - using the :term:`OVERRIDES` mechanism for a - single version or for an optionally named range of versions. - - For more information on ``BBVERSIONS``, see the - ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variants - class extension mechanism`" - section. - :term:`BITBAKE_UI` Used to specify the UI module to use when running BitBake. Using this variable is equivalent to using the ``-u`` command-line option. diff --git a/poky/bitbake/lib/bb/asyncrpc/client.py b/poky/bitbake/lib/bb/asyncrpc/client.py index 4cdad9ac3..79919c5be 100644 --- a/poky/bitbake/lib/bb/asyncrpc/client.py +++ b/poky/bitbake/lib/bb/asyncrpc/client.py @@ -103,13 +103,18 @@ class AsyncClient(object): return await self._send_wrapper(proc) + async def ping(self): + return await self.send_message( + {'ping': {}} + ) + class Client(object): def __init__(self): self.client = self._get_async_client() self.loop = asyncio.new_event_loop() - self._add_methods('connect_tcp', 'close') + self._add_methods('connect_tcp', 'close', 'ping') @abc.abstractmethod def _get_async_client(self): diff --git a/poky/bitbake/lib/bb/asyncrpc/serv.py b/poky/bitbake/lib/bb/asyncrpc/serv.py index cb3384639..ef20cb71d 100644 --- a/poky/bitbake/lib/bb/asyncrpc/serv.py +++ b/poky/bitbake/lib/bb/asyncrpc/serv.py @@ -28,6 +28,7 @@ class AsyncServerConnection(object): self.max_chunk = DEFAULT_MAX_CHUNK self.handlers = { 'chunk-stream': self.handle_chunk, + 'ping': self.handle_ping, } self.logger = logger @@ -123,6 +124,10 @@ class AsyncServerConnection(object): await self.dispatch_message(msg) + async def handle_ping(self, request): + response = {'alive': True} + self.write_message(response) + class AsyncServer(object): def __init__(self, logger, loop=None): @@ -142,7 +147,7 @@ class AsyncServer(object): ) for s in self.server.sockets: - self.logger.info('Listening on %r' % (s.getsockname(),)) + self.logger.debug('Listening on %r' % (s.getsockname(),)) # Newer python does this automatically. Do it manually here for # maximum compatibility s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) @@ -168,7 +173,7 @@ class AsyncServer(object): finally: os.chdir(cwd) - self.logger.info('Listening on %r' % path) + self.logger.debug('Listening on %r' % path) self._cleanup_socket = cleanup self.address = "unix://%s" % os.path.abspath(path) @@ -187,7 +192,7 @@ class AsyncServer(object): self.logger.error('Error from client: %s' % str(e), exc_info=True) traceback.print_exc() writer.close() - self.logger.info('Client disconnected') + self.logger.debug('Client disconnected') def run_loop_forever(self): try: @@ -207,7 +212,7 @@ class AsyncServer(object): self.server.close() self.loop.run_until_complete(self.server.wait_closed()) - self.logger.info('Server shutting down') + self.logger.debug('Server shutting down') finally: if self.close_loop: if sys.version_info >= (3, 6): diff --git a/poky/bitbake/lib/bb/build.py b/poky/bitbake/lib/bb/build.py index b2715fc53..6ce8f1e6d 100644 --- a/poky/bitbake/lib/bb/build.py +++ b/poky/bitbake/lib/bb/build.py @@ -927,6 +927,11 @@ def add_tasks(tasklist, d): task_deps[name] = {} if name in flags: deptask = d.expand(flags[name]) + if name in ['noexec', 'fakeroot', 'nostamp']: + if deptask != '1': + bb.warn("In a future version of BitBake, setting the '{}' flag to something other than '1' " + "will result in the flag not being set. See YP bug #13808.".format(name)) + task_deps[name][task] = deptask getTask('mcdepends') getTask('depends') diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py index cf0201c49..c8e91262a 100644 --- a/poky/bitbake/lib/bb/fetch2/__init__.py +++ b/poky/bitbake/lib/bb/fetch2/__init__.py @@ -562,6 +562,9 @@ def verify_checksum(ud, d, precomputed={}): checksum_expected = getattr(ud, "%s_expected" % checksum_id) + if checksum_expected == '': + checksum_expected = None + return { "id": checksum_id, "name": checksum_name, @@ -612,7 +615,7 @@ def verify_checksum(ud, d, precomputed={}): for ci in checksum_infos: if ci["expected"] and ci["expected"] != ci["data"]: - messages.append("File: '%s' has %s checksum %s when %s was " \ + messages.append("File: '%s' has %s checksum '%s' when '%s' was " \ "expected" % (ud.localpath, ci["id"], ci["data"], ci["expected"])) bad_checksum = ci["data"] diff --git a/poky/documentation/Makefile b/poky/documentation/Makefile index d40f390e2..996f01b7d 100644 --- a/poky/documentation/Makefile +++ b/poky/documentation/Makefile @@ -3,7 +3,7 @@ # You can set these variables from the command line, and also # from the environment for the first two. -SPHINXOPTS ?= -j auto +SPHINXOPTS ?= -W --keep-going -j auto SPHINXBUILD ?= sphinx-build SOURCEDIR = . BUILDDIR = _build diff --git a/poky/documentation/README b/poky/documentation/README index 3ad23a902..f9e803a28 100644 --- a/poky/documentation/README +++ b/poky/documentation/README @@ -88,8 +88,8 @@ documentation. Yocto Project documentation website =================================== -A new website has been created to host the Yocto Project -documentation, it can be found at: https://docs.yoctoproject.org/. +The website hosting the Yocto Project documentation, can be found +at: https://docs.yoctoproject.org/. The entire Yocto Project documentation, as well as the BitBake manual, is published on this website, including all previously released diff --git a/poky/documentation/brief-yoctoprojectqs/index.rst b/poky/documentation/brief-yoctoprojectqs/index.rst index 7ae4526c4..b92b0d33d 100644 --- a/poky/documentation/brief-yoctoprojectqs/index.rst +++ b/poky/documentation/brief-yoctoprojectqs/index.rst @@ -332,7 +332,7 @@ Follow these steps to add a hardware layer: #. **Change the Configuration to Build for a Specific Machine:** The :term:`MACHINE` variable in the ``local.conf`` file specifies the machine for the build. For this - example, set the ``MACHINE`` variable to ``cyclone5``. These + example, set the :term:`MACHINE` variable to ``cyclone5``. These configurations are used: https://github.com/kraj/meta-altera/blob/master/conf/machine/cyclone5.conf. diff --git a/poky/documentation/bsp-guide/bsp.rst b/poky/documentation/bsp-guide/bsp.rst index b46773ded..5c43f53d0 100644 --- a/poky/documentation/bsp-guide/bsp.rst +++ b/poky/documentation/bsp-guide/bsp.rst @@ -95,11 +95,11 @@ layer and from it build an image. Here is an example:: .. note:: - Ordering and :term:`BBFILE_PRIORITY` for the layers listed in ``BBLAYERS`` + Ordering and :term:`BBFILE_PRIORITY` for the layers listed in :term:`BBLAYERS` matter. For example, if multiple layers define a machine configuration, the OpenEmbedded build system uses the last layer searched given similar layer priorities. The build system works from the top-down through the layers - listed in ``BBLAYERS``. + listed in :term:`BBLAYERS`. Some BSPs require or depend on additional layers beyond the BSP's root layer in order to be functional. In this case, you need to specify these @@ -685,7 +685,7 @@ statements as follows:: .. note:: - When the preferred provider is assumed by default, the ``PREFERRED_PROVIDER`` + When the preferred provider is assumed by default, the :term:`PREFERRED_PROVIDER` statement does not appear in the ``"bsp_root_name".conf`` file. You would use the ``linux-yocto_4.4.bbappend`` file to append specific @@ -1121,15 +1121,15 @@ list describes them in order of preference: how to use these variables. If you build as you normally would, without specifying any recipes in - the ``LICENSE_FLAGS_WHITELIST``, the build stops and provides you + the :term:`LICENSE_FLAGS_WHITELIST`, the build stops and provides you with the list of recipes that you have tried to include in the image - that need entries in the ``LICENSE_FLAGS_WHITELIST``. Once you enter + that need entries in the :term:`LICENSE_FLAGS_WHITELIST`. Once you enter the appropriate license flags into the whitelist, restart the build to continue where it left off. During the build, the prompt will not appear again since you have satisfied the requirement. Once the appropriate license flags are on the white list in the - ``LICENSE_FLAGS_WHITELIST`` variable, you can build the encumbered + :term:`LICENSE_FLAGS_WHITELIST` variable, you can build the encumbered image with no change at all to the normal build process. #. *Get a Pre-Built Version of the BSP:* You can get this type of BSP by @@ -1142,7 +1142,7 @@ list describes them in order of preference: click-through license agreements presented by the website. If you want to build the image yourself using the recipes contained within the BSP tarball, you will still need to create an appropriate - ``LICENSE_FLAGS_WHITELIST`` to match the encumbered recipes in the + :term:`LICENSE_FLAGS_WHITELIST` to match the encumbered recipes in the BSP. .. note:: @@ -1405,7 +1405,7 @@ Project Reference Manual. The BeagleBone development board requires an SPL to boot and that SPL file type must be MLO. Consequently, the machine configuration needs - to define ``SPL_BINARY`` as ``MLO``. + to define :term:`SPL_BINARY` as ``MLO``. .. note:: diff --git a/poky/documentation/conf.py b/poky/documentation/conf.py index 5a2e25f7b..6c6458fed 100644 --- a/poky/documentation/conf.py +++ b/poky/documentation/conf.py @@ -92,6 +92,9 @@ intersphinx_mapping = { 'bitbake': ('https://docs.yoctoproject.org/bitbake/', None) } +# Suppress "WARNING: unknown mimetype for ..." +suppress_warnings = ['epub.unknown_project_files'] + # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for diff --git a/poky/documentation/dev-manual/common-tasks.rst b/poky/documentation/dev-manual/common-tasks.rst index 130734173..762636a17 100644 --- a/poky/documentation/dev-manual/common-tasks.rst +++ b/poky/documentation/dev-manual/common-tasks.rst @@ -94,10 +94,10 @@ Follow these general steps to create your layer without using tools: - :term:`BBPATH`: Adds the layer's root directory to BitBake's search path. Through the use of the - ``BBPATH`` variable, BitBake locates class files (``.bbclass``), + :term:`BBPATH` variable, BitBake locates class files (``.bbclass``), configuration files, and files that are included with ``include`` and ``require`` statements. For these cases, BitBake uses the - first file that matches the name found in ``BBPATH``. This is + first file that matches the name found in :term:`BBPATH`. This is similar to the way the ``PATH`` variable is used for binaries. It is recommended, therefore, that you use unique class and configuration filenames in your custom layer. @@ -205,7 +205,7 @@ following list: ``foo``. To make sure your changes apply only when building machine "one", - use a machine override with the ``DEPENDS`` statement:: + use a machine override with the :term:`DEPENDS` statement:: DEPENDS_one = "foo" @@ -255,7 +255,7 @@ following list: are building for a different machine and the ``bblayers.conf`` file includes the ``meta-one`` layer and the location of your machine-specific file is the first location where that file is - found according to ``FILESPATH``, builds for all machines will + found according to :term:`FILESPATH`, builds for all machines will also use that machine-specific file. You can make sure that a machine-specific file is used for a @@ -420,7 +420,7 @@ 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 -``BBLAYERS`` variable in your ``conf/bblayers.conf`` file, which is +:term:`BBLAYERS` variable in your ``conf/bblayers.conf`` file, which is found in the :term:`Build Directory`. The following example shows how to enable a layer named ``meta-mylayer``:: @@ -438,7 +438,7 @@ The following example shows how to enable a layer named " BitBake parses each ``conf/layer.conf`` file from the top down as -specified in the ``BBLAYERS`` variable within the ``conf/bblayers.conf`` +specified in the :term:`BBLAYERS` variable within the ``conf/bblayers.conf`` file. During the processing of each ``conf/layer.conf`` file, BitBake adds the recipes, classes and configurations contained within the particular layer to the source directory. @@ -531,19 +531,19 @@ have the supporting directory structure set up that will contain any files or patches you will be including from the layer. Using the immediate expansion assignment operator ``:=`` is important -because of the reference to ``THISDIR``. The trailing colon character is +because of the reference to :term:`THISDIR`. The trailing colon character is important as it ensures that items in the list remain colon-separated. .. note:: - BitBake automatically defines the ``THISDIR`` variable. You should + BitBake automatically defines the :term:`THISDIR` variable. You should never set this variable yourself. Using "_prepend" as part of the - ``FILESEXTRAPATHS`` ensures your path will be searched prior to other + :term:`FILESEXTRAPATHS` ensures your path will be searched prior to other paths in the final list. Also, not all append files add extra files. Many append files simply allow to add build options (e.g. ``systemd``). For these cases, your - append file would not even use the ``FILESEXTRAPATHS`` statement. + append file would not even use the :term:`FILESEXTRAPATHS` statement. Prioritizing Your Layer ----------------------- @@ -830,7 +830,7 @@ variable changes are in effect for every build and consequently affect all images, which might not be what you require. To add a package to your image using the local configuration file, use -the ``IMAGE_INSTALL`` variable with the ``_append`` operator:: +the :term:`IMAGE_INSTALL` variable with the ``_append`` operator:: IMAGE_INSTALL_append = " strace" @@ -855,7 +855,7 @@ to a specific image only. Here is an example:: This example adds ``strace`` to the ``core-image-minimal`` image only. You can add packages using a similar approach through the -``CORE_IMAGE_EXTRA_INSTALL`` variable. If you use this variable, only +:term:`CORE_IMAGE_EXTRA_INSTALL` variable. If you use this variable, only ``core-image-*`` images are affected. Customizing Images Using Custom ``IMAGE_FEATURES`` and ``EXTRA_IMAGE_FEATURES`` @@ -866,18 +866,18 @@ high-level image features by using the :term:`IMAGE_FEATURES` and :term:`EXTRA_IMAGE_FEATURES` variables. Although the functions for both variables are nearly -equivalent, best practices dictate using ``IMAGE_FEATURES`` from within -a recipe and using ``EXTRA_IMAGE_FEATURES`` from within your +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`. To understand how these features work, the best reference is ``meta/classes/core-image.bbclass``. This class lists out the available -``IMAGE_FEATURES`` of which most map to package groups while some, such +:term:`IMAGE_FEATURES` of which most map to package groups while some, such as ``debug-tweaks`` and ``read-only-rootfs``, resolve as general configuration settings. -In summary, the file looks at the contents of the ``IMAGE_FEATURES`` +In summary, the file looks at the contents of the :term:`IMAGE_FEATURES` variable and then maps or configures the feature accordingly. Based on this information, the build system automatically adds the appropriate packages or configurations to the @@ -885,11 +885,11 @@ packages or configurations to the Effectively, you are enabling extra features by extending the class or creating a custom class for use with specialized image ``.bb`` files. -Use the ``EXTRA_IMAGE_FEATURES`` variable from within your local +Use the :term:`EXTRA_IMAGE_FEATURES` variable from within your local configuration file. Using a separate area from which to enable features with this variable helps you avoid overwriting the features in the image -recipe that are enabled with ``IMAGE_FEATURES``. The value of -``EXTRA_IMAGE_FEATURES`` is added to ``IMAGE_FEATURES`` within +recipe that are enabled with :term:`IMAGE_FEATURES`. The value of +:term:`EXTRA_IMAGE_FEATURES` is added to :term:`IMAGE_FEATURES` within ``meta/conf/bitbake.conf``. To illustrate how you can use these variables to modify your image, @@ -903,8 +903,8 @@ images both include OpenSSH. The ``core-image-minimal`` image does not contain an SSH server. You can customize your image and change these defaults. Edit the -``IMAGE_FEATURES`` variable in your recipe or use the -``EXTRA_IMAGE_FEATURES`` in your ``local.conf`` file so that it +:term:`IMAGE_FEATURES` variable in your recipe or use the +:term:`EXTRA_IMAGE_FEATURES` in your ``local.conf`` file so that it configures the image you are working with to include ``ssh-server-dropbear`` or ``ssh-server-openssh``. @@ -926,7 +926,7 @@ the form for the two lines you need:: Defining the software using a custom recipe gives you total control over the contents of the image. It is important to use the correct names of -packages in the ``IMAGE_INSTALL`` variable. You must use the +packages in the :term:`IMAGE_INSTALL` variable. You must use the OpenEmbedded notation and not the Debian notation for the names (e.g. ``glibc-dev`` instead of ``libc6-dev``). @@ -946,25 +946,25 @@ to create a custom package group recipe that is used to build the image or images. A good example of a package group recipe is ``meta/recipes-core/packagegroups/packagegroup-base.bb``. -If you examine that recipe, you see that the ``PACKAGES`` variable lists +If you examine that recipe, you see that the :term:`PACKAGES` variable lists the package group packages to produce. The ``inherit packagegroup`` statement sets appropriate default values and automatically adds ``-dev``, ``-dbg``, and ``-ptest`` complementary packages for each -package specified in the ``PACKAGES`` statement. +package specified in the :term:`PACKAGES` statement. .. note:: The ``inherit packagegroup`` line should be located near the top of the - recipe, certainly before the ``PACKAGES`` statement. + recipe, certainly before the :term:`PACKAGES` statement. -For each package you specify in ``PACKAGES``, you can use ``RDEPENDS`` -and ``RRECOMMENDS`` entries to provide a list of packages the parent +For each package you specify in :term:`PACKAGES`, you can use :term:`RDEPENDS` +and :term:`RRECOMMENDS` entries to provide a list of packages the parent task package should contain. You can see examples of these further down in the ``packagegroup-base.bb`` recipe. Here is a short, fabricated example showing the same basic pieces for a hypothetical packagegroup defined in ``packagegroup-custom.bb``, where -the variable ``PN`` is the standard way to abbreviate the reference to +the variable :term:`PN` is the standard way to abbreviate the reference to the full packagegroup name ``packagegroup-custom``:: DESCRIPTION = "My Custom Package Groups" @@ -994,7 +994,7 @@ their dependencies and their recommended package dependencies listed: ``packagegroup-custom-apps``, and ``packagegroup-custom-tools``. To build an image using these package group packages, you need to add ``packagegroup-custom-apps`` and/or ``packagegroup-custom-tools`` to -``IMAGE_INSTALL``. For other forms of image dependencies see the other +:term:`IMAGE_INSTALL`. For other forms of image dependencies see the other areas of this section. Customizing an Image Hostname @@ -1142,7 +1142,7 @@ Following are some syntax examples: - Use this syntax to generate a recipe using code that you extract from source. The extracted code is placed in its own layer - defined by ``EXTERNALSRC``. + defined by :term:`EXTERNALSRC`. :: recipetool create -o OUTFILE -x EXTERNALSRC source @@ -1288,22 +1288,22 @@ Fetching Code The first thing your recipe must do is specify how to fetch the source files. Fetching is controlled mainly through the :term:`SRC_URI` variable. Your recipe -must have a ``SRC_URI`` variable that points to where the source is +must have a :term:`SRC_URI` variable that points to where the source is located. For a graphical representation of source locations, see the ":ref:`overview-manual/concepts:sources`" section in the Yocto Project Overview and Concepts Manual. The :ref:`ref-tasks-fetch` task uses -the prefix of each entry in the ``SRC_URI`` variable value to determine +the prefix of each entry in the :term:`SRC_URI` variable value to determine which :ref:`fetcher ` to use to get your -source files. It is the ``SRC_URI`` variable that triggers the fetcher. +source files. It is the :term:`SRC_URI` variable that triggers the fetcher. The :ref:`ref-tasks-patch` task uses the variable after source is fetched to apply patches. The OpenEmbedded build system uses :term:`FILESOVERRIDES` for -scanning directory locations for local files in ``SRC_URI``. +scanning directory locations for local files in :term:`SRC_URI`. -The ``SRC_URI`` variable in your recipe must define each unique location +The :term:`SRC_URI` variable in your recipe must define each unique location for your source files. It is good practice to not hard-code version numbers in a URL used in ``SRC_URI``. Rather than hard-code these values, use ``${``\ :term:`PV`\ ``}``, @@ -1319,7 +1319,7 @@ comes from a single tarball. Notice the use of the SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \ -Files mentioned in ``SRC_URI`` whose names end in a typical archive +Files mentioned in :term:`SRC_URI` whose names end in a typical archive extension (e.g. ``.tar``, ``.tar.gz``, ``.tar.bz2``, ``.zip``, and so forth), are automatically extracted during the :ref:`ref-tasks-unpack` task. For @@ -1341,17 +1341,17 @@ is an example from the recipe SRC_URI = "git://git.kernel.dk/blktrace.git \ file://ldflags.patch" -If your ``SRC_URI`` statement includes URLs pointing to individual files +If your :term:`SRC_URI` statement includes URLs pointing to individual files fetched from a remote server other than a version control system, BitBake attempts to verify the files against checksums defined in your recipe to ensure they have not been tampered with or otherwise modified since the recipe was written. Two checksums are used: ``SRC_URI[md5sum]`` and ``SRC_URI[sha256sum]``. -If your ``SRC_URI`` variable points to more than a single URL (excluding +If your :term:`SRC_URI` variable points to more than a single URL (excluding SCM URLs), you need to provide the ``md5`` and ``sha256`` checksums for each URL. For these cases, you provide a name for each URL as part of -the ``SRC_URI`` and then reference that name in the subsequent checksum +the :term:`SRC_URI` and then reference that name in the subsequent checksum statements. Here is an example combining lines from the files ``git.inc`` and ``git_2.24.1.bb``:: @@ -1369,7 +1369,7 @@ with other signatures on the download page for the upstream source (e.g. OpenEmbedded build system only deals with ``sha256sum`` and ``md5sum``, you should verify all the signatures you find by hand. -If no ``SRC_URI`` checksums are specified when you attempt to build the +If no :term:`SRC_URI` checksums are specified when you attempt to build the recipe, or you provide an incorrect checksum, the build will produce an error for each missing or incorrect checksum. As part of the error message, the build system provides the checksum string corresponding to @@ -1385,7 +1385,7 @@ paste them into your recipe and then run the build again to continue. This final example is a bit more complicated and is from the ``meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb`` recipe. The -example's ``SRC_URI`` statement identifies multiple files as the source +example's :term:`SRC_URI` statement identifies multiple files as the source files for the recipe: a tarball, a patch file, a desktop file, and an icon. :: @@ -1424,9 +1424,9 @@ If you are fetching your source files from an upstream source archived tarball and the tarball's internal structure matches the common convention of a top-level subdirectory named ``${``\ :term:`BPN`\ ``}-${``\ :term:`PV`\ ``}``, -then you do not need to set ``S``. However, if ``SRC_URI`` specifies to +then you do not need to set :term:`S`. However, if :term:`SRC_URI` specifies to fetch source from an archive that does not use this convention, or from -an SCM like Git or Subversion, your recipe needs to define ``S``. +an SCM like Git or Subversion, your recipe needs to define :term:`S`. If processing your recipe using BitBake successfully unpacks the source files, you need to be sure that the directory pointed to by ``${S}`` @@ -1436,7 +1436,7 @@ Patching Code ------------- Sometimes it is necessary to patch code after it has been fetched. Any -files mentioned in ``SRC_URI`` whose names end in ``.patch`` or +files mentioned in :term:`SRC_URI` whose names end in ``.patch`` or ``.diff`` or compressed versions of these suffixes (e.g. ``diff.gz`` are treated as patches. The :ref:`ref-tasks-patch` task @@ -1445,7 +1445,7 @@ automatically applies these patches. The build system should be able to apply patches with the "-p1" option (i.e. one directory level in the path will be stripped off). If your patch needs to have more directory levels stripped off, specify the -number of levels using the "striplevel" option in the ``SRC_URI`` entry +number of levels using the "striplevel" option in the :term:`SRC_URI` entry for the patch. Alternatively, if your patch needs to be applied in a specific subdirectory that is not specified in the patch file, use the "patchdir" option in the entry. @@ -1465,24 +1465,24 @@ Your recipe needs to have both the :term:`LIC_FILES_CHKSUM` variables: -- ``LICENSE``: This variable specifies the license for the software. +- :term:`LICENSE`: This variable specifies the license for the software. If you do not know the license under which the software you are building is distributed, you should go to the source code and look for that information. Typical files containing this information - include ``COPYING``, ``LICENSE``, and ``README`` files. You could + include ``COPYING``, :term:`LICENSE`, and ``README`` files. You could also find the information near the top of a source file. For example, given a piece of software licensed under the GNU General Public - License version 2, you would set ``LICENSE`` as follows:: + License version 2, you would set :term:`LICENSE` as follows:: LICENSE = "GPLv2" - The licenses you specify within ``LICENSE`` can have any name as long + The licenses you specify within :term:`LICENSE` can have any name as long as you do not use spaces, since spaces are used as separators between license names. For standard licenses, use the names of the files in - ``meta/files/common-licenses/`` or the ``SPDXLICENSEMAP`` flag names + ``meta/files/common-licenses/`` or the :term:`SPDXLICENSEMAP` flag names defined in ``meta/conf/licenses.conf``. -- ``LIC_FILES_CHKSUM``: The OpenEmbedded build system uses this +- :term:`LIC_FILES_CHKSUM`: The OpenEmbedded build system uses this variable to make sure the license text has not changed. If it has, the build produces an error and it affords you the chance to figure it out and correct the problem. @@ -1492,11 +1492,11 @@ variables: the checksums of the files to be sure the text has not changed. Any differences result in an error with the message containing the current checksum. For more explanation and examples of how to set the - ``LIC_FILES_CHKSUM`` variable, see the + :term:`LIC_FILES_CHKSUM` variable, see the ":ref:`dev-manual/common-tasks:tracking license changes`" section. To determine the correct checksum string, you can list the - appropriate files in the ``LIC_FILES_CHKSUM`` variable with incorrect + appropriate files in the :term:`LIC_FILES_CHKSUM` variable with incorrect md5 strings, attempt to build the software, and then note the resulting error messages that will report the correct md5 strings. See the ":ref:`dev-manual/common-tasks:fetching code`" section for @@ -1522,7 +1522,7 @@ installed on the target in order for the software to run. Within a recipe, you specify build-time dependencies using the :term:`DEPENDS` variable. Although there are nuances, -items specified in ``DEPENDS`` should be names of other +items specified in :term:`DEPENDS` should be names of other recipes. It is important that you specify all build-time dependencies explicitly. @@ -1639,12 +1639,12 @@ your software is built: Once configuration succeeds, it is always good practice to look at the ``log.do_configure`` file to ensure that the appropriate options have been enabled and no additional build-time dependencies need to be added -to ``DEPENDS``. For example, if the configure script reports that it -found something not mentioned in ``DEPENDS``, or that it did not find +to :term:`DEPENDS`. For example, if the configure script reports that it +found something not mentioned in :term:`DEPENDS`, or that it did not find something that it needed for some desired optional functionality, then -you would need to add those to ``DEPENDS``. Looking at the log might +you would need to add those to :term:`DEPENDS`. Looking at the log might also reveal items being checked for, enabled, or both that you do not -want, or items not being found that are in ``DEPENDS``, in which case +want, or items not being found that are in :term:`DEPENDS`, in which case you would need to look at passing extra options to the configure script as needed. For reference information on configure options specific to the software you are building, you can consult the output of the @@ -1762,13 +1762,13 @@ Here are some common issues that cause failures. compilation process notes that files could not be found. In these cases, you need to go back and add additional options to the configure script as well as possibly add additional build-time - dependencies to ``DEPENDS``. + dependencies to :term:`DEPENDS`. Occasionally, it is necessary to apply a patch to the source to ensure the correct paths are used. If you need to specify paths to find files staged into the sysroot from other recipes, use the variables that the OpenEmbedded build system provides (e.g. - ``STAGING_BINDIR``, ``STAGING_INCDIR``, ``STAGING_DATADIR``, and so + :term:`STAGING_BINDIR`, :term:`STAGING_INCDIR`, :term:`STAGING_DATADIR`, and so forth). Installing @@ -2022,7 +2022,7 @@ the list of directories within a recipe:: The `/sysroot-only` is to be used by recipes that generate artifacts that are not included in the target filesystem, allowing them to share - these artifacts without needing to use the ``DEPLOY_DIR``. + these artifacts without needing to use the :term:`DEPLOY_DIR`. For a more complete description of the :ref:`ref-tasks-populate_sysroot` task and its associated functions, see the @@ -2048,7 +2048,7 @@ statement that essentially identifies itself as being able to provide PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }" Any recipe that inherits the ``kernel`` class is -going to utilize a ``PROVIDES`` statement that identifies that recipe as +going to utilize a :term:`PROVIDES` statement that identifies that recipe as being able to provide the ``virtual/kernel`` item. Now comes the time to actually build an image and you need a kernel @@ -2072,7 +2072,7 @@ build is dependent on ``virtual/kernel`` for example:: During the build, the OpenEmbedded build system picks the correct recipe needed for the ``virtual/kernel`` dependency based on -the ``PREFERRED_PROVIDER`` variable. If you want to use the small kernel +the :term:`PREFERRED_PROVIDER` variable. If you want to use the small kernel mentioned at the beginning of this section, configure your build as follows:: @@ -2080,8 +2080,8 @@ follows:: .. note:: - Any recipe that ``PROVIDES`` a ``virtual/*`` item that is ultimately not - selected through ``PREFERRED_PROVIDER`` does not get built. Preventing these + Any recipe that :term:`PROVIDES` a ``virtual/*`` item that is ultimately not + selected through :term:`PREFERRED_PROVIDER` does not get built. Preventing these recipes from building is usually the desired behavior since this mechanism's purpose is to select between mutually exclusive alternative providers. @@ -2221,8 +2221,8 @@ Single .c File Package (Hello World!) Building an application from a single file that is stored locally (e.g. under ``files``) requires a recipe that has the file listed in the -``SRC_URI`` variable. Additionally, you need to manually write the -``do_compile`` and ``do_install`` tasks. The ``S`` variable defines the +:term:`SRC_URI` variable. Additionally, you need to manually write the +``do_compile`` and ``do_install`` tasks. The :term:`S` variable defines the directory containing the source code, which is set to :term:`WORKDIR` in this case - the directory BitBake uses for the build. @@ -2256,7 +2256,7 @@ Autotooled Package ~~~~~~~~~~~~~~~~~~ Applications that use Autotools such as ``autoconf`` and ``automake`` -require a recipe that has a source archive listed in ``SRC_URI`` and +require a recipe that has a source archive listed in :term:`SRC_URI` and also inherit the :ref:`autotools ` class, which contains the definitions of all the steps needed to build an @@ -2275,7 +2275,7 @@ Following is one example: (``hello_2.3.bb``) inherit autotools gettext -The variable ``LIC_FILES_CHKSUM`` is used to track source license +The variable :term:`LIC_FILES_CHKSUM` is used to track source license changes as described in the ":ref:`dev-manual/common-tasks:tracking license changes`" section in the Yocto Project Overview and Concepts Manual. You can quickly create @@ -2285,7 +2285,7 @@ Makefile-Based Package ~~~~~~~~~~~~~~~~~~~~~~ Applications that use GNU ``make`` also require a recipe that has the -source archive listed in ``SRC_URI``. You do not need to add a +source archive listed in :term:`SRC_URI`. You do not need to add a ``do_compile`` step since by default BitBake starts the ``make`` command to compile the application. If you need additional ``make`` options, you should store them in the @@ -2297,7 +2297,7 @@ Otherwise, BitBake runs an empty ``do_install`` task by default. Some applications might require extra parameters to be passed to the compiler. For example, the application might need an additional header -path. You can accomplish this by adding to the ``CFLAGS`` variable. The +path. You can accomplish this by adding to the :term:`CFLAGS` variable. The following example shows this:: CFLAGS_prepend = "-I ${S}/include " @@ -2341,7 +2341,7 @@ In the following example, ``mtd-utils`` is a makefile-based package:: Splitting an Application into Multiple Packages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -You can use the variables ``PACKAGES`` and ``FILES`` to split an +You can use the variables :term:`PACKAGES` and :term:`FILES` to split an application into multiple packages. Following is an example that uses the ``libxpm`` recipe. By default, @@ -2365,12 +2365,12 @@ into separate packages:: In the previous example, we want to ship the ``sxpm`` and ``cxpm`` binaries in separate packages. Since ``bindir`` would be packaged into -the main ``PN`` package by default, we prepend the ``PACKAGES`` variable +the main :term:`PN` package by default, we prepend the :term:`PACKAGES` variable so additional package names are added to the start of list. This results in the extra ``FILES_*`` variables then containing information that define which files and directories go into which packages. Files included by earlier packages are skipped by latter packages. Thus, the -main ``PN`` package does not include the above listed files. +main :term:`PN` package does not include the above listed files. Packaging Externally Produced Binaries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2415,12 +2415,12 @@ Reference Manual's variable glossary. - Using :term:`DEPENDS` is a good idea even for components distributed in binary form, and is often necessary for shared libraries. For a shared library, listing the - library dependencies in ``DEPENDS`` makes sure that the libraries + library dependencies in :term:`DEPENDS` makes sure that the libraries are available in the staging sysroot when other recipes link against the library, which might be necessary for successful linking. - - Using ``DEPENDS`` also allows runtime dependencies between + - Using :term:`DEPENDS` also allows runtime dependencies between packages to be added automatically. See the ":ref:`overview-manual/concepts:automatically added runtime dependencies`" section in the Yocto Project Overview and Concepts Manual for more @@ -2747,7 +2747,7 @@ file or include from a lower-level configuration file are as follows: - ``PREFERRED_PROVIDER_virtual/kernel`` -- ``MACHINE_FEATURES`` (e.g. "apm screen wifi") +- :term:`MACHINE_FEATURES` (e.g. "apm screen wifi") You might also need these variables: @@ -2755,7 +2755,7 @@ You might also need these variables: - ``KERNEL_IMAGETYPE`` (e.g. "zImage") -- ``IMAGE_FSTYPES`` (e.g. "tar.gz jffs2") +- :term:`IMAGE_FSTYPES` (e.g. "tar.gz jffs2") You can find full details on these variables in the reference section. You can leverage existing machine ``.conf`` files from @@ -2771,8 +2771,8 @@ examples in the Source Directory at ``meta/recipes-kernel/linux`` that you can use as references. If you are creating a new kernel recipe, normal recipe-writing rules -apply for setting up a ``SRC_URI``. Thus, you need to specify any -necessary patches and set ``S`` to point at the source code. You need to +apply for setting up a :term:`SRC_URI`. Thus, you need to specify any +necessary patches and set :term:`S` to point at the source code. You need to create a ``do_configure`` task that configures the unpacked kernel with a ``defconfig`` file. You can do this by using a ``make defconfig`` command or, more commonly, by copying in a suitable ``defconfig`` file @@ -2785,8 +2785,8 @@ If you are extending an existing kernel recipe, it is usually a matter of adding a suitable ``defconfig`` file. The file needs to be added into a location similar to ``defconfig`` files used for other machines in a given kernel recipe. A possible way to do this is by listing the file in -the ``SRC_URI`` and adding the machine to the expression in -``COMPATIBLE_MACHINE``:: +the :term:`SRC_URI` and adding the machine to the expression in +:term:`COMPATIBLE_MACHINE`:: COMPATIBLE_MACHINE = '(qemux86|qemumips)' @@ -3178,9 +3178,9 @@ To manually upgrade recipe versions, follow these general steps: 1. *Change the Version:* Rename the recipe such that the version (i.e. the :term:`PV` part of the recipe name) changes appropriately. If the version is not part of the recipe name, - change the value as it is set for ``PV`` within the recipe itself. + change the value as it is set for :term:`PV` within the recipe itself. -2. *Update* ``SRCREV`` *if Needed*: If the source code your recipe builds +2. *Update* :term:`SRCREV` *if Needed*: If the source code your recipe builds is fetched from Git or some other version control system, update :term:`SRCREV` to point to the commit hash that matches the new version. @@ -3241,15 +3241,15 @@ 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 ``S`` variable as defined in the +value for the :term:`S` variable as defined in the ``meta/conf/bitbake.conf`` configuration file in the :term:`Source Directory`:: S = "${WORKDIR}/${BP}" You should be aware that many recipes override the -``S`` variable. For example, recipes that fetch their source from Git -usually set ``S`` to ``${WORKDIR}/git``. +:term:`S` variable. For example, recipes that fetch their source from Git +usually set :term:`S` to ``${WORKDIR}/git``. .. note:: @@ -3369,13 +3369,13 @@ Follow these general steps: ``file2.c``, and ``file3.c`` files. You can find the resulting patch file in the ``patches/`` - subdirectory of the source (``S``) directory. + subdirectory of the source (:term:`S`) directory. 8. *Copy the Patch File:* For simplicity, copy the patch file into a directory named ``files``, which you can create in the same directory that holds the recipe (``.bb``) file or the append (``.bbappend``) file. Placing the patch here guarantees that the OpenEmbedded build - system will find the patch. Next, add the patch into the ``SRC_URI`` + system will find the patch. Next, add the patch into the :term:`SRC_URI` of the recipe. Here is an example:: SRC_URI += "file://my_changes.patch" @@ -3454,7 +3454,7 @@ terminal window. use the full compiler name such as ``arm-poky-linux-gnueabi-gcc`` instead of just using ``gcc``. The same applies to other applications such as ``binutils``, ``libtool`` and so forth. - BitBake sets up environment variables such as ``CC`` to assist + BitBake sets up environment variables such as :term:`CC` to assist applications, such as ``make`` to find the correct tools. - It is also worth noting that ``devshell`` still works over X11 @@ -3573,7 +3573,7 @@ The following figure and list overviews the build process: ``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 - through the ``MACHINE`` variable, the packaging format used during + through the :term:`MACHINE` variable, the packaging format used during the build (:term:`PACKAGE_CLASSES`), and a centralized tarball download directory through the @@ -3646,7 +3646,7 @@ Follow these steps to set up and execute multiple configuration builds: consider a scenario with two different multiconfigs for the same :term:`MACHINE`: "qemux86" built for two distributions such as "poky" and "poky-lsb". In this case, - you might want to use the same ``TMPDIR``. + you might want to use the same :term:`TMPDIR`. Here is an example showing the minimal statements needed in a configuration file for a "qemux86" target whose temporary build @@ -3663,7 +3663,7 @@ Follow these steps to set up and execute multiple configuration builds: .. image:: figures/multiconfig_files.png :align: center - The reason for this required file hierarchy is because the ``BBPATH`` + The reason for this required file hierarchy is because the :term:`BBPATH` variable is not constructed until the layers are parsed. Consequently, using the configuration file as a pre-configuration file is not possible unless it is located in the current working @@ -3674,7 +3674,7 @@ Follow these steps to set up and execute multiple configuration builds: :term:`BBMULTICONFIG` variable in your ``conf/local.conf`` configuration file to specify each multiconfig. Continuing with the example from the previous - figure, the ``BBMULTICONFIG`` variable needs to enable two + figure, the :term:`BBMULTICONFIG` variable needs to enable two multiconfigs: "x86" and "arm" by specifying each configuration file:: BBMULTICONFIG = "x86 arm" @@ -3708,7 +3708,7 @@ Follow these steps to set up and execute multiple configuration builds: Support for multiple configuration builds in the Yocto Project &DISTRO; (&DISTRO_NAME;) Release does not include Shared State (sstate) optimizations. Consequently, if a build uses the same object twice - in, for example, two different ``TMPDIR`` + in, for example, two different :term:`TMPDIR` directories, the build either loads from an existing sstate cache for that build at the start or builds the object fresh. @@ -3806,7 +3806,7 @@ Follow these steps to create an initramfs image: recipe and the initramfs recipe should the initramfs image include kernel modules. - Setting the ``INITRAMFS_IMAGE_BUNDLE`` flag causes the initramfs + Setting the :term:`INITRAMFS_IMAGE_BUNDLE` flag causes the initramfs image to be unpacked into the ``${B}/usr/`` directory. The unpacked initramfs image is then passed to the kernel's ``Makefile`` using the :term:`CONFIG_INITRAMFS_SOURCE` @@ -3828,7 +3828,7 @@ Follow these steps to create an initramfs image: :term:`PACKAGE_INSTALL` rather than :term:`IMAGE_INSTALL`. - ``PACKAGE_INSTALL`` gives more direct control of what is added to the + :term:`PACKAGE_INSTALL` gives more direct control of what is added to the image as compared to the defaults you might not necessarily want that are set by the :ref:`image ` or :ref:`core-image ` @@ -3912,7 +3912,7 @@ your own distribution that are likely modeled after ``poky-tiny``. .. note:: - To use ``poky-tiny`` in your build, set the ``DISTRO`` variable in your + To use ``poky-tiny`` in your build, set the :term:`DISTRO` variable in your ``local.conf`` file to "poky-tiny" as described in the ":ref:`dev-manual/common-tasks:creating your own distribution`" section. @@ -4156,17 +4156,17 @@ your tunings to best consider build times and package feed maintenance. :term:`TMPDIR` across builds. The Yocto Project supports switching between different :term:`MACHINE` values in the same - ``TMPDIR``. This practice is well supported and regularly used by + :term:`TMPDIR`. This practice is well supported and regularly used by developers when building for multiple machines. When you use the same - ``TMPDIR`` for multiple machine builds, the OpenEmbedded build system + :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:: If :term:`DISTRO` settings change or fundamental configuration settings - such as the filesystem layout, you need to work with a clean ``TMPDIR``. - Sharing ``TMPDIR`` under these circumstances might work but since it is + such as the filesystem layout, you need to work with a clean :term:`TMPDIR`. + Sharing :term:`TMPDIR` under these circumstances might work but since it is not guaranteed, you should use a clean ``TMPDIR``. - *Enable the Appropriate Package Architecture:* By default, the @@ -4304,7 +4304,7 @@ your ``local.conf`` file:: EXTERNALSRC_pn-myrecipe = "path-to-your-source-tree" This next example shows how to accomplish the same thing by setting -``EXTERNALSRC`` in the recipe itself or in the recipe's append file:: +:term:`EXTERNALSRC` in the recipe itself or in the recipe's append file:: EXTERNALSRC = "path" EXTERNALSRC_BUILD = "path" @@ -4340,7 +4340,7 @@ Follow these steps to populate your Downloads directory: 1. *Create a Clean Downloads Directory:* Start with an empty downloads directory (:term:`DL_DIR`). You start with an empty downloads directory by either removing the files - in the existing directory or by setting ``DL_DIR`` to point to either + in the existing directory or by setting :term:`DL_DIR` to point to either an empty location or one that does not yet exist. 2. *Generate Tarballs of the Source Git Repositories:* Edit your @@ -4351,7 +4351,7 @@ Follow these steps to populate your Downloads directory: During the fetch process in the next step, BitBake gathers the source files - and creates tarballs in the directory pointed to by ``DL_DIR``. See + and creates tarballs in the directory pointed to by :term:`DL_DIR`. See the :term:`BB_GENERATE_MIRROR_TARBALLS` variable for more information. @@ -4394,7 +4394,7 @@ directory: The ``SOURCE_MIRROR_URL`` and ``own-mirror`` class set up the system to use the downloads directory as your "own - mirror". Using the ``BB_NO_NETWORK`` variable makes sure that + mirror". Using the :term:`BB_NO_NETWORK` variable makes sure that BitBake's fetching process in step 3 stays local, which means files from your "own-mirror" are used. @@ -4420,27 +4420,27 @@ directory: SRCREV = "${AUTOREV}" - When a recipe sets ``SRCREV`` to + When a recipe sets :term:`SRCREV` to ``${AUTOREV}``, the build system accesses the network in an attempt to determine the latest version of software from the SCM. - Typically, recipes that use ``AUTOREV`` are custom or modified + Typically, recipes that use :term:`AUTOREV` are custom or modified recipes. Recipes that reside in public repositories usually do not - use ``AUTOREV``. + use :term:`AUTOREV`. - If you do have recipes that use ``AUTOREV``, you can take steps to + If you do have recipes that use :term:`AUTOREV`, you can take steps to still use the recipes in an offline build. Do the following: 1. Use a configuration generated by enabling :ref:`build history `. 2. Use the ``buildhistory-collect-srcrevs`` command to collect the - stored ``SRCREV`` values from the build's history. For more + stored :term:`SRCREV` values from the build's history. For more information on collecting these values, see the ":ref:`dev-manual/common-tasks:build history package information`" section. 3. Once you have the correct source revisions, you can modify - those recipes to set ``SRCREV`` to specific versions of the + those recipes to set :term:`SRCREV` to specific versions of the software. Speeding Up a Build @@ -4580,7 +4580,7 @@ the built library. The :term:`PACKAGES` and :term:`FILES_* ` variables in the ``meta/conf/bitbake.conf`` configuration file define how files installed -by the ``do_install`` task are packaged. By default, the ``PACKAGES`` +by the ``do_install`` task are packaged. By default, the :term:`PACKAGES` variable includes ``${PN}-staticdev``, which represents all static library files. @@ -5943,7 +5943,7 @@ system to make your images more secure: EXTRA_IMAGE_FEATURES = "debug-tweaks" To disable that feature, simply comment out that line in your - ``local.conf`` file, or make sure ``IMAGE_FEATURES`` does not contain + ``local.conf`` file, or make sure :term:`IMAGE_FEATURES` does not contain "debug-tweaks" before producing your final image. Among other things, leaving this in place sets the root password as blank, which makes logging in for debugging or inspection easy during development but @@ -6248,20 +6248,20 @@ the following: .. note:: Technically, a third component, the "epoch" (i.e. :term:`PE`) is involved - but this discussion for the most part ignores ``PE``. + but this discussion for the most part ignores :term:`PE`. The version and revision are taken from the :term:`PV` and :term:`PR` variables, respectively. -- ``PV``: The recipe version. ``PV`` represents the version of the - software being packaged. Do not confuse ``PV`` with the binary +- :term:`PV`: The recipe version. :term:`PV` represents the version of the + software being packaged. Do not confuse :term:`PV` with the binary package version. - ``PR``: The recipe revision. - :term:`SRCPV`: The OpenEmbedded - build system uses this string to help define the value of ``PV`` when + build system uses this string to help define the value of :term:`PV` when the source code revision needs to be included in it. - :yocto_wiki:`PR Service `: A @@ -6271,12 +6271,12 @@ the following: Whenever the binary package content changes, the binary package version must change. Changing the binary package version is accomplished by -changing or "bumping" the ``PR`` and/or ``PV`` values. Increasing these +changing or "bumping" the :term:`PR` and/or :term:`PV` values. Increasing these values occurs one of two ways: - Automatically using a Package Revision Service (PR Service). -- Manually incrementing the ``PR`` and/or ``PV`` variables. +- Manually incrementing the :term:`PR` and/or :term:`PV` variables. Given a primary challenge of any build system and its users is how to maintain a package feed that is compatible with existing package manager @@ -6290,7 +6290,7 @@ package revisioning remains linear, see the section. The following three sections provide related information on the PR -Service, the manual method for "bumping" ``PR`` and/or ``PV``, and on +Service, the manual method for "bumping" :term:`PR` and/or :term:`PV`, and on how to ensure binary package revisioning remains linear. Working With a PR Service @@ -6320,20 +6320,20 @@ Because the OpenEmbedded build system uses unique to a given build, the build system knows when to rebuild packages. All the inputs into a given task are represented by a signature, which can trigger a rebuild when different. Thus, the build -system itself does not rely on the ``PR``, ``PV``, and ``PE`` numbers to +system itself does not rely on the :term:`PR`, :term:`PV`, and :term:`PE` numbers to trigger a rebuild. The signatures, however, can be used to generate these values. The PR Service works with both ``OEBasic`` and ``OEBasicHash`` -generators. The value of ``PR`` bumps when the checksum changes and the +generators. The value of :term:`PR` bumps when the checksum changes and the different generator mechanisms change signatures under different circumstances. As implemented, the build system includes values from the PR Service -into the ``PR`` field as an addition using the form "``.x``" so ``r0`` +into the :term:`PR` field as an addition using the form "``.x``" so ``r0`` becomes ``r0.1``, ``r0.2`` and so forth. This scheme allows existing -``PR`` values to be used for whatever reasons, which include manual -``PR`` bumps, should it be necessary. +:term:`PR` values to be used for whatever reasons, which include manual +:term:`PR` bumps, should it be necessary. By default, the PR Service is not enabled or running. Thus, the packages generated are just "self consistent". The build system adds and removes @@ -6349,7 +6349,7 @@ this scenario, you can enable a local PR Service by setting PRSERV_HOST = "localhost:0" Once the service is started, packages will automatically -get increasing ``PR`` values and BitBake takes care of starting and +get increasing :term:`PR` values and BitBake takes care of starting and stopping the server. If you have a more complex setup where multiple host development systems @@ -6379,7 +6379,7 @@ history, see the .. note:: - The OpenEmbedded build system does not maintain ``PR`` information as + The OpenEmbedded build system does not maintain :term:`PR` information as part of the shared state (sstate) packages. If you maintain an sstate feed, it's expected that either all your building systems that contribute to the sstate feed use a shared PR Service, or you do not @@ -6398,27 +6398,27 @@ The alternative to setting up a PR Service is to manually "bump" the If a committed change results in changing the package output, then the value of the PR variable needs to be increased (or "bumped") as part of -that commit. For new recipes you should add the ``PR`` variable and set +that commit. For new recipes you should add the :term:`PR` variable and set its initial value equal to "r0", which is the default. Even though the default value is "r0", the practice of adding it to a new recipe makes it harder to forget to bump the variable when you make changes to the recipe in future. If you are sharing a common ``.inc`` file with multiple recipes, you can -also use the ``INC_PR`` variable to ensure that the recipes sharing the +also use the :term:`INC_PR` variable to ensure that the recipes sharing the ``.inc`` file are rebuilt when the ``.inc`` file itself is changed. The -``.inc`` file must set ``INC_PR`` (initially to "r0"), and all recipes -referring to it should set ``PR`` to "${INC_PR}.0" initially, +``.inc`` file must set :term:`INC_PR` (initially to "r0"), and all recipes +referring to it should set :term:`PR` to "${INC_PR}.0" initially, incrementing the last number when the recipe is changed. If the ``.inc`` -file is changed then its ``INC_PR`` should be incremented. +file is changed then its :term:`INC_PR` should be incremented. -When upgrading the version of a binary package, assuming the ``PV`` -changes, the ``PR`` variable should be reset to "r0" (or "${INC_PR}.0" -if you are using ``INC_PR``). +When upgrading the version of a binary package, assuming the :term:`PV` +changes, the :term:`PR` variable should be reset to "r0" (or "${INC_PR}.0" +if you are using :term:`INC_PR`). Usually, version increases occur only to binary packages. However, if -for some reason ``PV`` changes but does not increase, you can increase -the ``PE`` variable (Package Epoch). The ``PE`` variable defaults to +for some reason :term:`PV` changes but does not increase, you can increase +the :term:`PE` variable (Package Epoch). The :term:`PE` variable defaults to "0". Binary package version numbering strives to follow the `Debian Version @@ -6433,20 +6433,20 @@ Automatically Incrementing a Package Version Number When fetching a repository, BitBake uses the :term:`SRCREV` variable to determine the specific source code revision from which to build. You set the -``SRCREV`` variable to +:term:`SRCREV` variable to :term:`AUTOREV` to cause the OpenEmbedded build system to automatically use the latest revision of the software:: SRCREV = "${AUTOREV}" -Furthermore, you need to reference ``SRCPV`` in ``PV`` in order to +Furthermore, you need to reference :term:`SRCPV` in :term:`PV` in order to automatically update the version whenever the revision of the source code changes. Here is an example:: PV = "1.0+git${SRCPV}" -The OpenEmbedded build system substitutes ``SRCPV`` with the following: +The OpenEmbedded build system substitutes :term:`SRCPV` with the following: .. code-block:: none @@ -6479,7 +6479,7 @@ with a number. The number used depends on the state of the PR Service: In summary, the OpenEmbedded build system does not track the history of binary package versions for this purpose. ``AUTOINC``, in this case, is -comparable to ``PR``. If PR server is not enabled, ``AUTOINC`` in the +comparable to :term:`PR`. If PR server is not enabled, ``AUTOINC`` in the package version is simply replaced by "0". If PR server is enabled, the build system keeps track of the package versions and bumps the number when the package revision changes. @@ -6654,7 +6654,7 @@ ensure that any :term:`RDEPENDS` and :term:`RRECOMMENDS` on a package name starting with the prefix are satisfied during build time. If you are using ``do_split_packages`` as described in the previous section, -the value you put in ``PACKAGES_DYNAMIC`` should correspond to the name +the value you put in :term:`PACKAGES_DYNAMIC` should correspond to the name pattern specified in the call to ``do_split_packages``. Using Runtime Package Management @@ -6822,7 +6822,7 @@ 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 ``PACKAGE_CLASSES`` +directory of ``poky/build/tmp/deploy/rpm`` and a :term:`PACKAGE_CLASSES` setting of "package_rpm":: $ cd poky/build/tmp/deploy/rpm @@ -7360,7 +7360,7 @@ command:: The recipe this command generates is very similar to the recipe created in -the previous section. However, the ``SRC_URI`` looks like the following:: +the previous section. However, the :term:`SRC_URI` looks like the following:: SRC_URI = " \ git://github.com/martinaglv/cute-files.git;protocol=https \ @@ -7394,7 +7394,7 @@ of precedence is the same as this list: - ``PACKAGE_ADD_METADATA_`` -- ``PACKAGE_ADD_METADATA`` +- :term:`PACKAGE_ADD_METADATA` `` is a parameter and expected to be a distinct name of specific package type: @@ -7587,7 +7587,7 @@ variable defines the Device Table to use and should be set in the machine or distro configuration file. Alternatively, you can set this variable in your ``local.conf`` configuration file. -If you do not define the ``IMAGE_DEVICE_TABLES`` variable, the default +If you do not define the :term:`IMAGE_DEVICE_TABLES` variable, the default ``device_table-minimal.txt`` is used:: IMAGE_DEVICE_TABLES = "device_table-mymachine.txt" @@ -7713,13 +7713,13 @@ Creating the Root Filesystem To create the read-only root filesystem, simply add the "read-only-rootfs" feature to your image, normally in one of two ways. The first way is to add the "read-only-rootfs" image feature in the -image's recipe file via the ``IMAGE_FEATURES`` variable:: +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 -associated ``EXTRA_IMAGE_FEATURES`` variable, as in:: +associated :term:`EXTRA_IMAGE_FEATURES` variable, as in:: EXTRA_IMAGE_FEATURES = "read-only-rootfs" @@ -7813,7 +7813,7 @@ Enabling and Disabling Build History ------------------------------------ Build history is disabled by default. To enable it, add the following -``INHERIT`` statement and set 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`:: @@ -7913,10 +7913,10 @@ example assuming You can use the ``buildhistory-collect-srcrevs`` command with the ``-a`` option to -collect the stored ``SRCREV`` values from build history and report them +collect the stored :term:`SRCREV` values from build history and report them in a format suitable for use in global configuration (e.g., ``local.conf`` or a distro include file) to override floating -``AUTOREV`` values to a fixed set of revisions. Here is some example +:term:`AUTOREV` values to a fixed set of revisions. Here is some example output from this command:: $ buildhistory-collect-srcrevs -a @@ -7945,7 +7945,7 @@ output from this command:: Here are some notes on using the ``buildhistory-collect-srcrevs`` command: - - By default, only values where the ``SRCREV`` was not hardcoded + - By default, only values where the :term:`SRCREV` was not hardcoded (usually when ``AUTOREV`` is used) are reported. Use the ``-a`` option to see all ``SRCREV`` values. @@ -8276,7 +8276,7 @@ Once you start running the tests, the following happens: tests run. The full boot log is written to ``${WORKDIR}/testimage/qemu_boot_log``. -5. Each test module loads in the order found in ``TEST_SUITES``. You can +5. Each test module loads in the order found in :term:`TEST_SUITES`. You can find the full output of the commands run over SSH in ``${WORKDIR}/testimgage/ssh_target_log``. @@ -8310,7 +8310,7 @@ addresses written into the image, or set the image to use DHCP and have your DHCP server on the test network assign a known IP address based on the MAC address of the device. -In order to run tests on hardware, you need to set ``TEST_TARGET`` to an +In order to run tests on hardware, you need to set :term:`TEST_TARGET` to an appropriate value. For QEMU, you do not have to change anything, the default value is "qemu". For running tests on hardware, the following options are available: @@ -8359,14 +8359,14 @@ options are available: Selecting SystemdbootTarget ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If you did not set ``TEST_TARGET`` to "SystemdbootTarget", then you do +If you did not set :term:`TEST_TARGET` to "SystemdbootTarget", then you do not need any information in this section. You can skip down to the ":ref:`dev-manual/common-tasks:running tests`" section. -If you did set ``TEST_TARGET`` to "SystemdbootTarget", you also need to +If you did set :term:`TEST_TARGET` to "SystemdbootTarget", you also need to perform a one-time setup of your master image by doing the following: -1. *Set EFI_PROVIDER:* Be sure that ``EFI_PROVIDER`` is as follows:: +1. *Set EFI_PROVIDER:* Be sure that :term:`EFI_PROVIDER` is as follows:: EFI_PROVIDER = "systemd-boot" @@ -8400,7 +8400,7 @@ perform a one-time setup of your master image by doing the following: 3. *Install image:* Install the image that you just built on the target system. -The final thing you need to do when setting ``TEST_TARGET`` to +The final thing you need to do when setting :term:`TEST_TARGET` to "SystemdbootTarget" is to set up the test image: 1. *Set up your local.conf file:* Make sure you have the following @@ -8421,8 +8421,8 @@ Power Control For most hardware targets other than "simpleremote", you can control power: -- You can use ``TEST_POWERCONTROL_CMD`` together with - ``TEST_POWERCONTROL_EXTRA_ARGS`` as a command that runs on the host +- You can use :term:`TEST_POWERCONTROL_CMD` together with + :term:`TEST_POWERCONTROL_EXTRA_ARGS` as a command that runs on the host and does power cycling. The test code passes one argument to that command: off, on or cycle (off then on). Here is an example that could appear in your ``local.conf`` file:: @@ -8441,8 +8441,8 @@ power: .. note:: - You need to customize ``TEST_POWERCONTROL_CMD`` and - ``TEST_POWERCONTROL_EXTRA_ARGS`` for your own setup. The one requirement + You need to customize :term:`TEST_POWERCONTROL_CMD` and + :term:`TEST_POWERCONTROL_EXTRA_ARGS` for your own setup. The one requirement is that it accepts "on", "off", and "cycle" as the last argument. - When no command is defined, it connects to the device over SSH and @@ -8540,14 +8540,14 @@ the ``local.conf`` file as normal. Be sure that tests reside in You can change the set of tests run by appending or overriding :term:`TEST_SUITES` variable in -``local.conf``. Each name in ``TEST_SUITES`` represents a required test -for the image. Test modules named within ``TEST_SUITES`` cannot be +``local.conf``. Each name in :term:`TEST_SUITES` represents a required test +for the image. Test modules named within :term:`TEST_SUITES` cannot be skipped even if a test is not suitable for an image (e.g. running the RPM tests on an image without ``rpm``). Appending "auto" to -``TEST_SUITES`` causes the build system to try to run all tests that are +:term:`TEST_SUITES` causes the build system to try to run all tests that are suitable for the image (i.e. each test module may elect to skip itself). -The order you list tests in ``TEST_SUITES`` is important and influences +The order you list tests in :term:`TEST_SUITES` is important and influences test dependencies. Consequently, tests that depend on other tests should be added after the test on which they depend. For example, since the ``ssh`` test depends on the ``ping`` test, "ssh" needs to come after @@ -8599,7 +8599,7 @@ following BitBake command form:: Exporting the tests places them in the :term:`Build Directory` in ``tmp/testexport/``\ image, which is controlled by the -``TEST_EXPORT_DIR`` variable. +:term:`TEST_EXPORT_DIR` variable. You can now run the tests outside of the build environment:: @@ -9558,7 +9558,7 @@ So the first thing to do is build "neard" locally. Before you start the build, set the :term:`PARALLEL_MAKE` variable in your ``local.conf`` file to a high number (e.g. "-j 20"). Using a -high value for ``PARALLEL_MAKE`` increases the chances of the race +high value for :term:`PARALLEL_MAKE` increases the chances of the race condition showing up:: $ bitbake neard @@ -9631,7 +9631,7 @@ The final thing you need to do to implement the fix in the build is to update the "neard" recipe (i.e. ``neard-0.14.bb``) so that the :term:`SRC_URI` statement includes the patch file. The recipe file is in the folder above the patch. Here -is what the edited ``SRC_URI`` statement would look like:: +is what the edited :term:`SRC_URI` statement would look like:: SRC_URI = "${KERNELORG_MIRROR}/linux/network/nfc/${BPN}-${PV}.tar.xz \ file://neard.in \ @@ -9640,7 +9640,7 @@ is what the edited ``SRC_URI`` statement would look like:: " With the patch complete and moved to the correct folder and the -``SRC_URI`` statement updated, you can exit the ``devshell``:: +:term:`SRC_URI` statement updated, you can exit the ``devshell``:: $ exit @@ -9985,14 +9985,14 @@ Here are some other tips that you might find useful: - Removing :term:`TMPDIR` (usually ``tmp/``, within the :term:`Build Directory`) can often fix - temporary build issues. Removing ``TMPDIR`` is usually a relatively + 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). .. note:: - Removing ``TMPDIR`` might be a workaround rather than a fix. + Removing :term:`TMPDIR` might be a workaround rather than a fix. Consequently, trying to determine the underlying cause of an issue before removing the directory is a good idea. @@ -10585,9 +10585,9 @@ build will fail. Specifying the ``LIC_FILES_CHKSUM`` Variable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The ``LIC_FILES_CHKSUM`` variable contains checksums of the license text +The :term:`LIC_FILES_CHKSUM` variable contains checksums of the license text in the source code for the recipe. Following is an example of how to -specify ``LIC_FILES_CHKSUM``:: +specify :term:`LIC_FILES_CHKSUM`:: LIC_FILES_CHKSUM = "file://COPYING;md5=xxxx \ file://licfile1.txt;beginline=5;endline=29;md5=yyyy \ @@ -10607,7 +10607,7 @@ specify ``LIC_FILES_CHKSUM``:: The build system uses the :term:`S` variable as the default directory when searching files listed in -``LIC_FILES_CHKSUM``. The previous example employs the default +:term:`LIC_FILES_CHKSUM`. The previous example employs the default directory. Consider this next example:: @@ -10620,13 +10620,13 @@ The first line locates a file in ``${S}/src/ls.c`` and isolates lines five through 16 as license text. The second line refers to a file in :term:`WORKDIR`. -Note that ``LIC_FILES_CHKSUM`` variable is mandatory for all recipes, -unless the ``LICENSE`` variable is set to "CLOSED". +Note that :term:`LIC_FILES_CHKSUM` variable is mandatory for all recipes, +unless the :term:`LICENSE` variable is set to "CLOSED". Explanation of Syntax ~~~~~~~~~~~~~~~~~~~~~ -As mentioned in the previous section, the ``LIC_FILES_CHKSUM`` variable +As mentioned in the previous section, the :term:`LIC_FILES_CHKSUM` variable lists all the important files that contain the license text for the source code. It is possible to specify a checksum for an entire file, or a specific section of a file (specified by beginning and ending line @@ -10646,7 +10646,7 @@ build, the correct md5 checksum is placed in the build log and can be easily copied to the recipe. There is no limit to how many files you can specify using the -``LIC_FILES_CHKSUM`` variable. Generally, however, every project +:term:`LIC_FILES_CHKSUM` variable. Generally, however, every project requires a few specifications for license tracking. Many projects have a "COPYING" file that stores the license information for all the source code files. This practice allows you to just track the "COPYING" file as @@ -10683,16 +10683,16 @@ name and version (after variable expansion):: LICENSE_FLAGS = "license_${PN}_${PV}" In order for a component restricted by a -``LICENSE_FLAGS`` definition to be enabled and included in an image, it +:term:`LICENSE_FLAGS` definition to be enabled and included in an image, it needs to have a matching entry in the global :term:`LICENSE_FLAGS_WHITELIST` variable, which is a variable typically defined in your ``local.conf`` file. For example, to enable the ``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` package, you could add either the string "commercial_gst-plugins-ugly" or the more -general string "commercial" to ``LICENSE_FLAGS_WHITELIST``. See the +general string "commercial" to :term:`LICENSE_FLAGS_WHITELIST`. See the ":ref:`dev-manual/common-tasks:license flag matching`" section for a full -explanation of how ``LICENSE_FLAGS`` matching works. Here is the +explanation of how :term:`LICENSE_FLAGS` matching works. Here is the example:: LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly" @@ -10723,8 +10723,8 @@ License Flag Matching License flag matching allows you to control what recipes the OpenEmbedded build system includes in the build. Fundamentally, the -build system attempts to match ``LICENSE_FLAGS`` strings found in -recipes against ``LICENSE_FLAGS_WHITELIST`` strings found in the +build system attempts to match :term:`LICENSE_FLAGS` strings found in +recipes against :term:`LICENSE_FLAGS_WHITELIST` strings found in the whitelist. A match causes the build system to include a recipe in the build, while failure to find a match causes the build system to exclude a recipe. @@ -10734,14 +10734,14 @@ concepts will help you correctly and effectively use matching. Before a flag defined by a particular recipe is tested against the contents of the whitelist, the expanded string ``_${PN}`` is appended to -the flag. This expansion makes each ``LICENSE_FLAGS`` value +the flag. This expansion makes each :term:`LICENSE_FLAGS` value recipe-specific. After expansion, the string is then matched against the whitelist. Thus, specifying ``LICENSE_FLAGS = "commercial"`` in recipe "foo", for example, results in the string ``"commercial_foo"``. And, to create a match, that string must appear in the whitelist. -Judicious use of the ``LICENSE_FLAGS`` strings and the contents of the -``LICENSE_FLAGS_WHITELIST`` variable allows you a lot of flexibility for +Judicious use of the :term:`LICENSE_FLAGS` strings and the contents of the +:term:`LICENSE_FLAGS_WHITELIST` variable allows you a lot of flexibility for including or excluding recipes based on licensing. For example, you can broaden the matching capabilities by using license flags string subsets in the whitelist. @@ -10753,7 +10753,7 @@ in the whitelist. ``usethispart_1.3``, ``usethispart_1.4``, and so forth). For example, simply specifying the string "commercial" in the whitelist -matches any expanded ``LICENSE_FLAGS`` definition that starts with the +matches any expanded :term:`LICENSE_FLAGS` definition that starts with the string "commercial" such as "commercial_foo" and "commercial_bar", which are the strings the build system automatically generates for hypothetical recipes named "foo" and "bar" assuming those recipes simply @@ -10767,7 +10767,7 @@ only specific recipes into the image, or you can use a string subset that causes a broader range of matches to allow a range of recipes into the image. -This scheme works even if the ``LICENSE_FLAGS`` string already has +This scheme works even if the :term:`LICENSE_FLAGS` string already has ``_${PN}`` appended. For example, the build system turns the license flag "commercial_1.2_foo" into "commercial_1.2_foo_foo" and would match both the general "commercial" and the specific "commercial_1.2_foo" @@ -10814,14 +10814,14 @@ file:: Of course, you could also create a matching whitelist for those components using the more general "commercial" in the whitelist, but -that would also enable all the other packages with ``LICENSE_FLAGS`` +that would also enable all the other packages with :term:`LICENSE_FLAGS` containing "commercial", which you may or may not want:: LICENSE_FLAGS_WHITELIST = "commercial" Specifying audio and video plugins as part of the ``COMMERCIAL_AUDIO_PLUGINS`` and ``COMMERCIAL_VIDEO_PLUGINS`` statements -(along with the enabling ``LICENSE_FLAGS_WHITELIST``) includes the +(along with the enabling :term:`LICENSE_FLAGS_WHITELIST`) includes the plugins or components into built images, thus adding support for media formats or components. @@ -10887,7 +10887,7 @@ accidental release of proprietary software. The Yocto Project provides an :ref:`archiver ` class to help avoid some of these concerns. -Before you employ ``DL_DIR`` or the ``archiver`` class, you need to +Before you employ :term:`DL_DIR` or the ``archiver`` class, you need to decide how you choose to provide source. The source ``archiver`` class can generate tarballs and SRPMs and can create them with various levels of compliance in mind. diff --git a/poky/documentation/index.rst b/poky/documentation/index.rst index 6aeeb2197..0fca6ce72 100644 --- a/poky/documentation/index.rst +++ b/poky/documentation/index.rst @@ -38,16 +38,15 @@ Welcome to the Yocto Project Documentation .. toctree:: :maxdepth: 1 - :caption: 'Mega' Manual + :caption: Releases manual + :hidden: - All-in-one 'Mega' Manual + Release Migration Guides + releases .. toctree:: :maxdepth: 1 - :caption: Manuals/Variable Index + :caption: Documentation Index + :hidden: genindex - Current/Previous Version Specific Manuals - - - diff --git a/poky/documentation/kernel-dev/advanced.rst b/poky/documentation/kernel-dev/advanced.rst index 0e745c375..871ec8ae7 100644 --- a/poky/documentation/kernel-dev/advanced.rst +++ b/poky/documentation/kernel-dev/advanced.rst @@ -46,15 +46,15 @@ linux-yocto recipe. Every linux-yocto style recipe must define the :term:`KMACHINE` variable. This -variable is typically set to the same value as the ``MACHINE`` variable, +variable is typically set to the same value as the :term:`MACHINE` variable, which is used by :term:`BitBake`. However, in some cases, the variable might instead refer to the -underlying platform of the ``MACHINE``. +underlying platform of the :term:`MACHINE`. -Multiple BSPs can reuse the same ``KMACHINE`` name if they are built +Multiple BSPs can reuse the same :term:`KMACHINE` name if they are built using the same BSP description. Multiple Corei7-based BSPs could share -the same "intel-corei7-64" value for ``KMACHINE``. It is important to -realize that ``KMACHINE`` is just for kernel mapping, while ``MACHINE`` +the same "intel-corei7-64" value for :term:`KMACHINE`. It is important to +realize that :term:`KMACHINE` is just for kernel mapping, while :term:`MACHINE` is the machine type within a BSP Layer. Even with this distinction, however, these two variables can hold the same value. See the ":ref:`kernel-dev/advanced:bsp descriptions`" section for more information. @@ -66,7 +66,7 @@ to indicate the branch. .. note:: - You can use the ``KBRANCH`` value to define an alternate branch typically + You can use the :term:`KBRANCH` value to define an alternate branch typically with a machine override as shown here from the ``meta-yocto-bsp`` layer:: KBRANCH_edgerouter = "standard/edgerouter" @@ -81,8 +81,8 @@ variables: :term:`LINUX_KERNEL_TYPE` defines the kernel type to be used in assembling the configuration. If -you do not specify a ``LINUX_KERNEL_TYPE``, it defaults to "standard". -Together with ``KMACHINE``, ``LINUX_KERNEL_TYPE`` defines the search +you do not specify a :term:`LINUX_KERNEL_TYPE`, it defaults to "standard". +Together with :term:`KMACHINE`, :term:`LINUX_KERNEL_TYPE` defines the search arguments used by the kernel tools to find the appropriate description within the kernel Metadata with which to build out the sources and configuration. The linux-yocto recipes define "standard", "tiny", and @@ -90,21 +90,21 @@ configuration. The linux-yocto recipes define "standard", "tiny", and section for more information on kernel types. During the build, the kern-tools search for the BSP description file -that most closely matches the ``KMACHINE`` and ``LINUX_KERNEL_TYPE`` +that most closely matches the :term:`KMACHINE` and :term:`LINUX_KERNEL_TYPE` variables passed in from the recipe. The tools use the first BSP description they find that matches both variables. If the tools cannot find a match, they issue a warning. -The tools first search for the ``KMACHINE`` and then for the -``LINUX_KERNEL_TYPE``. If the tools cannot find a partial match, they -will use the sources from the ``KBRANCH`` and any configuration +The tools first search for the :term:`KMACHINE` and then for the +:term:`LINUX_KERNEL_TYPE`. If the tools cannot find a partial match, they +will use the sources from the :term:`KBRANCH` and any configuration specified in the :term:`SRC_URI`. You can use the :term:`KERNEL_FEATURES` variable to include features (configuration fragments, patches, or both) -that are not already included by the ``KMACHINE`` and -``LINUX_KERNEL_TYPE`` variable combination. For example, to include a +that are not already included by the :term:`KMACHINE` and +:term:`LINUX_KERNEL_TYPE` variable combination. For example, to include a feature specified as "features/netfilter/netfilter.scc", specify:: KERNEL_FEATURES += "features/netfilter/netfilter.scc" @@ -116,7 +116,7 @@ specify:: KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc" The value of -the entries in ``KERNEL_FEATURES`` are dependent on their location +the entries in :term:`KERNEL_FEATURES` are dependent on their location within the kernel Metadata itself. The examples here are taken from the ``yocto-kernel-cache`` repository. Each branch of this repository contains "features" and "cfg" subdirectories at the top-level. For more @@ -344,7 +344,7 @@ as how an additional feature description file is included with the Typically, features are less granular than configuration fragments and are more likely than configuration fragments and patches to be the types -of things you want to specify in the ``KERNEL_FEATURES`` variable of the +of things you want to specify in the :term:`KERNEL_FEATURES` variable of the Linux kernel recipe. See the ":ref:`kernel-dev/advanced:using kernel metadata in a recipe`" section earlier in the manual. @@ -509,12 +509,12 @@ description as meeting the criteria set by the recipe being built. This example supports the "beaglebone" machine for the "standard" kernel and the "arm" architecture. -Be aware that there is no hard link between the ``KTYPE`` variable and a kernel +Be aware that there is no hard link between the :term:`KTYPE` variable and a kernel type description file. Thus, if you do not have the kernel type defined in your kernel Metadata as it is here, you only need to ensure that the :term:`LINUX_KERNEL_TYPE` -variable in the kernel recipe and the ``KTYPE`` variable in the BSP +variable in the kernel recipe and the :term:`KTYPE` variable in the BSP description file match. To separate your kernel policy from your hardware configuration, you @@ -657,7 +657,7 @@ Notice again the three critical variables: :term:`KMACHINE`, :term:`KTYPE`, and :term:`KARCH`. Of these variables, only -``KTYPE`` has changed to specify the "tiny" kernel type. +:term:`KTYPE` has changed to specify the "tiny" kernel type. Kernel Metadata Location ======================== @@ -693,7 +693,7 @@ directory hierarchy below a linux-yocto recipe or for a Linux kernel recipe derived by copying and modifying ``oe-core/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb`` to -a recipe in your layer, ``FILESEXTRAPATHS`` is typically set to +a recipe in your layer, :term:`FILESEXTRAPATHS` is typically set to ``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``. See the ":ref:`kernel-dev/common:modifying an existing recipe`" section for more information. @@ -718,10 +718,10 @@ and fetches any files referenced in the ``.scc`` files by the ``include``, ``patch``, or ``kconf`` commands. Because of this, it is necessary to bump the recipe :term:`PR` value when changing the content of files not explicitly listed in the -``SRC_URI``. +:term:`SRC_URI`. If the BSP description is in recipe space, you cannot simply list the -``*.scc`` in the ``SRC_URI`` statement. You need to use the following +``*.scc`` in the :term:`SRC_URI` statement. You need to use the following form from your kernel append file:: SRC_URI_append_myplatform = " \ @@ -735,7 +735,7 @@ When stored outside of the recipe-space, the kernel Metadata files reside in a separate repository. The OpenEmbedded build system adds the Metadata to the build as a "type=kmeta" repository through the :term:`SRC_URI` variable. As an -example, consider the following ``SRC_URI`` statement from the +example, consider the following :term:`SRC_URI` statement from the ``linux-yocto_4.12.bb`` kernel recipe:: SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;name=machine;branch=${KBRANCH}; \ @@ -744,20 +744,20 @@ example, consider the following ``SRC_URI`` statement from the ``${KMETA}``, in this context, is simply used to name the directory into which the Git fetcher places the Metadata. This behavior is no different -than any multi-repository ``SRC_URI`` statement used in a recipe (e.g. +than any multi-repository :term:`SRC_URI` statement used in a recipe (e.g. see the previous section). You can keep kernel Metadata in a "kernel-cache", which is a directory containing configuration fragments. As with any Metadata kept outside -the recipe-space, you simply need to use the ``SRC_URI`` statement with +the recipe-space, you simply need to use the :term:`SRC_URI` statement with the "type=kmeta" attribute. Doing so makes the kernel Metadata available during the configuration phase. -If you modify the Metadata, you must not forget to update the ``SRCREV`` +If you modify the Metadata, you must not forget to update the :term:`SRCREV` statements in the kernel's recipe. In particular, you need to update the ``SRCREV_meta`` variable to match the commit in the ``KMETA`` branch you wish to use. Changing the data in these branches and not updating the -``SRCREV`` statements to match will cause the build to fetch an older +:term:`SRCREV` statements to match will cause the build to fetch an older commit. Organizing Your Source @@ -820,7 +820,7 @@ patches into a feature. Once you have a new branch, you can set up your kernel Metadata to use the branch a couple different ways. In the recipe, you can specify the -new branch as the ``KBRANCH`` to use for the board as follows:: +new branch as the :term:`KBRANCH` to use for the board as follows:: KBRANCH = "mynewbranch" diff --git a/poky/documentation/kernel-dev/common.rst b/poky/documentation/kernel-dev/common.rst index f64cbab56..de62df5b1 100644 --- a/poky/documentation/kernel-dev/common.rst +++ b/poky/documentation/kernel-dev/common.rst @@ -70,7 +70,7 @@ section: :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 - ``MACHINE`` variable appropriately in your ``conf/local.conf`` file + :term:`MACHINE` variable appropriately in your ``conf/local.conf`` file found in the :term:`Build Directory` (i.e. ``poky/build`` in this example). @@ -248,7 +248,7 @@ section: :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 - ``MACHINE`` variable appropriately in your ``conf/local.conf`` file + :term:`MACHINE` variable appropriately in your ``conf/local.conf`` file found in the :term:`Build Directory` (i.e. ``poky/build`` in this example). @@ -474,7 +474,7 @@ variable as follows:: The path ``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}`` expands to "linux-yocto" in the current directory for this example. If you add any new files that modify the kernel recipe and you have -extended ``FILESPATH`` as described above, you must place the files in +extended :term:`FILESPATH` as described above, you must place the files in your layer in the following area:: your-layer/recipes-kernel/linux/linux-yocto/ @@ -553,7 +553,7 @@ the append file. For example, suppose you had some configuration options in a file called ``network_configs.cfg``. You can place that file inside a directory -named ``linux-yocto`` and then add a ``SRC_URI`` statement such as the +named ``linux-yocto`` and then add a :term:`SRC_URI` statement such as the following to the append file. When the OpenEmbedded build system builds the kernel, the configuration options are picked up and applied. :: @@ -563,7 +563,7 @@ the kernel, the configuration options are picked up and applied. To group related configurations into multiple files, you perform a similar procedure. Here is an example that groups separate configurations specifically for Ethernet and graphics into their own -files and adds the configurations by using a ``SRC_URI`` statement like +files and adds the configurations by using a :term:`SRC_URI` statement like the following in your append file:: SRC_URI += "file://myconfig.cfg \ @@ -643,7 +643,7 @@ following lines to the linux-yocto ``.bbappend`` file in your layer:: FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += "file://defconfig" -The ``SRC_URI`` tells the build system how to search +The :term:`SRC_URI` tells the build system how to search for the file, while the :term:`FILESEXTRAPATHS` extends the :term:`FILESPATH` @@ -684,7 +684,7 @@ with the following content (without indentation):: CONFIG_SERIAL_CORE_CONSOLE=y Next, include this -configuration fragment and extend the ``FILESPATH`` variable in your +configuration fragment and extend the :term:`FILESPATH` variable in your ``.bbappend`` file:: FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" @@ -722,7 +722,7 @@ form:: KBUILD_DEFCONFIG_KMACHINE ?= "defconfig_file" Here is an example -that assigns the ``KBUILD_DEFCONFIG`` variable based on "raspberrypi2" +that assigns the :term:`KBUILD_DEFCONFIG` variable based on "raspberrypi2" and provides the path to the "in-tree" ``defconfig`` file to be used for a Raspberry Pi 2, which is based on the Broadcom 2708/2709 chipset:: @@ -734,7 +734,7 @@ Aside from modifying your kernel recipe and providing your own a kernel's ``linux-``\ `machine`\ ``.inc`` file). In other words, if the build system detects a statement that identifies an "out-of-tree" ``defconfig`` file, that statement will override your -``KBUILD_DEFCONFIG`` variable. +:term:`KBUILD_DEFCONFIG` variable. See the :term:`KBUILD_DEFCONFIG` @@ -1349,10 +1349,10 @@ be picked up and applied when the kernel is built:: SRC_URI += "file://myconfig.cfg" As mentioned earlier, you can group related configurations into multiple -files and name them all in the ``SRC_URI`` statement as well. For +files and name them all in the :term:`SRC_URI` statement as well. For example, you could group separate configurations specifically for Ethernet and graphics into their own files and add those by using a -``SRC_URI`` statement like the following in your append file:: +:term:`SRC_URI` statement like the following in your append file:: SRC_URI += "file://myconfig.cfg \ file://eth.cfg \ @@ -1628,11 +1628,11 @@ Here are some basic steps you can use to work with your own sources: appropriate for your project: - :term:`SRC_URI`: The - ``SRC_URI`` should specify a Git repository that uses one of the + :term:`SRC_URI` should specify a Git repository that uses one of the supported Git fetcher protocols (i.e. ``file``, ``git``, ``http``, - and so forth). The ``SRC_URI`` variable should also specify either + and so forth). The :term:`SRC_URI` variable should also specify either a ``defconfig`` file or some configuration fragment files. The - skeleton recipe provides an example ``SRC_URI`` as a syntax + skeleton recipe provides an example :term:`SRC_URI` as a syntax reference. - :term:`LINUX_VERSION`: @@ -1650,16 +1650,16 @@ Here are some basic steps you can use to work with your own sources: indicate to the OpenEmbedded build system that the recipe has changed. - - :term:`PV`: The default ``PV`` + - :term:`PV`: The default :term:`PV` assignment is typically adequate. It combines the - ``LINUX_VERSION`` with the Source Control Manager (SCM) revision + :term:`LINUX_VERSION` with the Source Control Manager (SCM) revision as derived from the :term:`SRCPV` variable. The combined results are a string with the following form:: 3.19.11+git1+68a635bf8dfb64b02263c1ac80c948647cc76d5f_1+218bd8d2022b9852c60d32f0d770931e3cf343e2 - While lengthy, the extra verbosity in ``PV`` helps ensure you are + While lengthy, the extra verbosity in :term:`PV` helps ensure you are using the exact sources from which you intend to build. - :term:`COMPATIBLE_MACHINE`: @@ -1773,7 +1773,7 @@ information to build modules. If your module ``Makefile`` uses a different variable, you might want to override the :ref:`ref-tasks-compile` step, or create a patch to the ``Makefile`` to work with the more typical -``KERNEL_SRC`` or ``KERNEL_PATH`` variables. +:term:`KERNEL_SRC` or :term:`KERNEL_PATH` variables. After you have prepared your recipe, you will likely want to include the module in your images. To do this, see the documentation for the @@ -1886,23 +1886,23 @@ build stops. Kernel features are the last elements processed for configuring and patching the kernel. Therefore, adding features in this manner is a way to enforce specific features are present and enabled without needing to do a full audit of any other layer's additions to the -``SRC_URI`` statement. +:term:`SRC_URI` statement. You add a kernel feature by providing the feature as part of the -``KERNEL_FEATURES`` variable and by providing the path to the feature's +:term:`KERNEL_FEATURES` variable and by providing the path to the feature's ``.scc`` file, which is relative to the root of the kernel Metadata. The OpenEmbedded build system searches all forms of kernel Metadata on the -``SRC_URI`` statement regardless of whether the Metadata is in the +:term:`SRC_URI` statement regardless of whether the Metadata is in the "kernel-cache", system kernel Metadata, or a recipe-space Metadata (i.e. part of the kernel recipe). See the ":ref:`kernel-dev/advanced:kernel metadata location`" section for additional information. -When you specify the feature's ``.scc`` file on the ``SRC_URI`` +When you specify the feature's ``.scc`` file on the :term:`SRC_URI` statement, the OpenEmbedded build system adds the directory of that ``.scc`` file along with all its subdirectories to the kernel feature search path. Because subdirectories are searched, you can reference a -single ``.scc`` file in the ``SRC_URI`` statement to reference multiple +single ``.scc`` file in the :term:`SRC_URI` statement to reference multiple kernel features. Consider the following example that adds the "test.scc" feature to the @@ -1910,7 +1910,7 @@ build. 1. *Create the Feature File:* Create a ``.scc`` file and locate it just as you would any other patch file, ``.cfg`` file, or fetcher item you - specify in the ``SRC_URI`` statement. + specify in the :term:`SRC_URI` statement. .. note:: @@ -1937,7 +1937,7 @@ build. a similarly named configuration fragment file ``test.cfg``. 2. *Add the Feature File to SRC_URI:* Add the ``.scc`` file to the - recipe's ``SRC_URI`` statement:: + recipe's :term:`SRC_URI` statement:: SRC_URI_append = " file://test.scc" @@ -1945,7 +1945,7 @@ build. appended to the existing path. 3. *Specify the Feature as a Kernel Feature:* Use the - ``KERNEL_FEATURES`` statement to specify the feature as a kernel + :term:`KERNEL_FEATURES` statement to specify the feature as a kernel feature:: KERNEL_FEATURES_append = " test.scc" diff --git a/poky/documentation/kernel-dev/faq.rst b/poky/documentation/kernel-dev/faq.rst index cffd1c433..f0a7af37b 100644 --- a/poky/documentation/kernel-dev/faq.rst +++ b/poky/documentation/kernel-dev/faq.rst @@ -68,7 +68,7 @@ How do I change the Linux kernel command line? ---------------------------------------------- The Linux kernel command line is -typically specified in the machine config using the ``APPEND`` variable. +typically specified in the machine config using the :term:`APPEND` variable. For example, you can add some helpful debug information doing the following:: diff --git a/poky/documentation/kernel-dev/maint-appx.rst b/poky/documentation/kernel-dev/maint-appx.rst index 3354de5f0..d968c856f 100644 --- a/poky/documentation/kernel-dev/maint-appx.rst +++ b/poky/documentation/kernel-dev/maint-appx.rst @@ -104,7 +104,7 @@ patch, or BSP: repository organized under the "Yocto Linux Kernel" heading in the :yocto_git:`Yocto Project Source Repositories <>`. - - Areas pointed to by ``SRC_URI`` statements found in kernel recipes. + - Areas pointed to by :term:`SRC_URI` statements found in kernel recipes. For a typical build, the target of the search is a feature description in an ``.scc`` file whose name follows this format (e.g. diff --git a/poky/documentation/migration-guides/index.rst b/poky/documentation/migration-guides/index.rst new file mode 100644 index 000000000..6304e6318 --- /dev/null +++ b/poky/documentation/migration-guides/index.rst @@ -0,0 +1,34 @@ +.. SPDX-License-Identifier: CC-BY-SA-2.0-UK + +========================== + Release Migration Guides +========================== + +| + +Each document in this chapter provides information about how +to move to one release of the Yocto Project from the previous one. + +.. toctree:: + + migration-general + migration-3.3 + migration-3.2 + migration-3.1 + migration-3.0 + migration-2.7 + migration-2.6 + migration-2.5 + migration-2.4 + migration-2.3 + migration-2.2 + migration-2.1 + migration-2.0 + migration-1.8 + migration-1.7 + migration-1.6 + migration-1.5 + migration-1.4 + migration-1.3 + +.. include:: /boilerplate.rst diff --git a/poky/documentation/migration-guides/migration-1.3.rst b/poky/documentation/migration-guides/migration-1.3.rst new file mode 100644 index 000000000..afb868e7c --- /dev/null +++ b/poky/documentation/migration-guides/migration-1.3.rst @@ -0,0 +1,194 @@ +.. SPDX-License-Identifier: CC-BY-SA-2.0-UK + +Release 1.3 (danny) +=================== + +This section provides migration information for moving to the Yocto +Project 1.3 Release (codename "danny") from the prior release. + +.. _1.3-local-configuration: + +Local Configuration +------------------- + +Differences include changes for +:term:`SSTATE_MIRRORS` and ``bblayers.conf``. + +.. _migration-1.3-sstate-mirrors: + +SSTATE_MIRRORS +~~~~~~~~~~~~~~ + +The shared state cache (sstate-cache), as pointed to by +:term:`SSTATE_DIR`, by default now has two-character +subdirectories to prevent issues arising from too many files in the same +directory. Also, native sstate-cache packages, which are built to run on +the host system, will go into a subdirectory named using the distro ID +string. If you copy the newly structured sstate-cache to a mirror +location (either local or remote) and then point to it in +:term:`SSTATE_MIRRORS`, you need to append "PATH" +to the end of the mirror URL so that the path used by BitBake before the +mirror substitution is appended to the path used to access the mirror. +Here is an example:: + + SSTATE_MIRRORS = "file://.* http://someserver.tld/share/sstate/PATH" + +.. _migration-1.3-bblayers-conf: + +bblayers.conf +~~~~~~~~~~~~~ + +The ``meta-yocto`` layer consists of two parts that correspond to the +Poky reference distribution and the reference hardware Board Support +Packages (BSPs), respectively: ``meta-yocto`` and ``meta-yocto-bsp``. +When running BitBake for the first time after upgrading, your +``conf/bblayers.conf`` file will be updated to handle this change and +you will be asked to re-run or restart for the changes to take effect. + +.. _1.3-recipes: + +Recipes +------- + +Differences include changes for the following: + +.. _migration-1.3-python-function-whitespace: + +Python Function Whitespace +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All Python functions must now use four spaces for indentation. +Previously, an inconsistent mix of spaces and tabs existed, which made +extending these functions using ``_append`` or ``_prepend`` complicated +given that Python treats whitespace as syntactically significant. If you +are defining or extending any Python functions (e.g. +``populate_packages``, ``do_unpack``, ``do_patch`` and so forth) in +custom recipes or classes, you need to ensure you are using consistent +four-space indentation. + +.. _migration-1.3-proto=-in-src-uri: + +proto= in SRC_URI +~~~~~~~~~~~~~~~~~ + +Any use of ``proto=`` in :term:`SRC_URI` needs to be +changed to ``protocol=``. In particular, this applies to the following +URIs: + +- ``svn://`` + +- ``bzr://`` + +- ``hg://`` + +- ``osc://`` + +Other URIs were already using ``protocol=``. This change improves +consistency. + +.. _migration-1.3-nativesdk: + +nativesdk +~~~~~~~~~ + +The suffix ``nativesdk`` is now implemented as a prefix, which +simplifies a lot of the packaging code for ``nativesdk`` recipes. All +custom ``nativesdk`` recipes, which are relocatable packages that are +native to :term:`SDK_ARCH`, and any references need to +be updated to use ``nativesdk-*`` instead of ``*-nativesdk``. + +.. _migration-1.3-task-recipes: + +Task Recipes +~~~~~~~~~~~~ + +"Task" recipes are now known as "Package groups" and have been renamed +from ``task-*.bb`` to ``packagegroup-*.bb``. Existing references to the +previous ``task-*`` names should work in most cases as there is an +automatic upgrade path for most packages. However, you should update +references in your own recipes and configurations as they could be +removed in future releases. You should also rename any custom ``task-*`` +recipes to ``packagegroup-*``, and change them to inherit +``packagegroup`` instead of ``task``, as well as taking the opportunity +to remove anything now handled by ``packagegroup.bbclass``, such as +providing ``-dev`` and ``-dbg`` packages, setting +:term:`LIC_FILES_CHKSUM`, and so forth. See the +":ref:`packagegroup.bbclass `" section for +further details. + +.. _migration-1.3-image-features: + +IMAGE_FEATURES +~~~~~~~~~~~~~~ + +Image recipes that previously included ``apps-console-core`` in +:term:`IMAGE_FEATURES` should now include ``splash`` +instead to enable the boot-up splash screen. Retaining +``apps-console-core`` will still include the splash screen but generates a +warning. The ``apps-x11-core`` and ``apps-x11-games`` :term:`IMAGE_FEATURES` +features have been removed. + +.. _migration-1.3-removed-recipes: + +Removed Recipes +~~~~~~~~~~~~~~~ + +The following recipes have been removed. For most of them, it is +unlikely that you would have any references to them in your own +:term:`Metadata`. However, you should check your metadata +against this list to be sure: + +- ``libx11-trim``: Replaced by ``libx11``, which has a negligible + size difference with modern Xorg. + +- ``xserver-xorg-lite``: Use ``xserver-xorg``, which has a negligible + size difference when DRI and GLX modules are not installed. + +- ``xserver-kdrive``: Effectively unmaintained for many years. + +- ``mesa-xlib``: No longer serves any purpose. + +- ``galago``: Replaced by telepathy. + +- ``gail``: Functionality was integrated into GTK+ 2.13. + +- ``eggdbus``: No longer needed. + +- ``gcc-*-intermediate``: The build has been restructured to avoid + the need for this step. + +- ``libgsmd``: Unmaintained for many years. Functionality now + provided by ``ofono`` instead. + +- *contacts, dates, tasks, eds-tools*: Largely unmaintained PIM + application suite. It has been moved to ``meta-gnome`` in + ``meta-openembedded``. + +In addition to the previously listed changes, the ``meta-demoapps`` +directory has also been removed because the recipes in it were not being +maintained and many had become obsolete or broken. Additionally, these +recipes were not parsed in the default configuration. Many of these +recipes are already provided in an updated and maintained form within +the OpenEmbedded community layers such as ``meta-oe`` and +``meta-gnome``. For the remainder, you can now find them in the +``meta-extras`` repository, which is in the +:yocto_git:`Source Repositories <>` at +:yocto_git:`/meta-extras/`. + +.. _1.3-linux-kernel-naming: + +Linux Kernel Naming +------------------- + +The naming scheme for kernel output binaries has been changed to now +include :term:`PE` as part of the filename:: + + KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}" + +Because the :term:`PE` variable is not set by default, these binary files +could result with names that include two dash characters. Here is an +example:: + + bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin + + diff --git a/poky/documentation/migration-guides/migration-1.4.rst b/poky/documentation/migration-guides/migration-1.4.rst new file mode 100644 index 000000000..3f980915c --- /dev/null +++ b/poky/documentation/migration-guides/migration-1.4.rst @@ -0,0 +1,235 @@ +Release 1.4 (dylan) +=================== + +This section provides migration information for moving to the Yocto +Project 1.4 Release (codename "dylan") from the prior release. + +.. _migration-1.4-bitbake: + +BitBake +------- + +Differences include the following: + +- *Comment Continuation:* If a comment ends with a line continuation + (\\) character, then the next line must also be a comment. Any + instance where this is not the case, now triggers a warning. You must + either remove the continuation character, or be sure the next line is + a comment. + +- *Package Name Overrides:* The runtime package specific variables + :term:`RDEPENDS`, + :term:`RRECOMMENDS`, + :term:`RSUGGESTS`, + :term:`RPROVIDES`, + :term:`RCONFLICTS`, + :term:`RREPLACES`, :term:`FILES`, + :term:`ALLOW_EMPTY`, and the pre, post, install, + and uninstall script functions ``pkg_preinst``, ``pkg_postinst``, + ``pkg_prerm``, and ``pkg_postrm`` should always have a package name + override. For example, use ``RDEPENDS_${PN}`` for the main package + instead of :term:`RDEPENDS`. BitBake uses more strict checks when it + parses recipes. + +.. _migration-1.4-build-behavior: + +Build Behavior +-------------- + +Differences include the following: + +- *Shared State Code:* The shared state code has been optimized to + avoid running unnecessary tasks. For example, the following no longer + populates the target sysroot since that is not necessary:: + + $ bitbake -c rootfs some-image + + Instead, the system just needs to extract the + output package contents, re-create the packages, and construct the + root filesystem. This change is unlikely to cause any problems unless + you have missing declared dependencies. + +- *Scanning Directory Names:* When scanning for files in + :term:`SRC_URI`, the build system now uses + :term:`FILESOVERRIDES` instead of + :term:`OVERRIDES` for the directory names. In + general, the values previously in :term:`OVERRIDES` are now in + :term:`FILESOVERRIDES` as well. However, if you relied upon an additional + value you previously added to :term:`OVERRIDES`, you might now need to + add it to :term:`FILESOVERRIDES` unless you are already adding it through + the :term:`MACHINEOVERRIDES` or + :term:`DISTROOVERRIDES` variables, as + appropriate. For more related changes, see the + ":ref:`migration-guides/migration-1.4:variables`" section. + +.. _migration-1.4-proxies-and-fetching-source: + +Proxies and Fetching Source +--------------------------- + +A new ``oe-git-proxy`` script has been added to replace previous methods +of handling proxies and fetching source from Git. See the +``meta-yocto/conf/site.conf.sample`` file for information on how to use +this script. + +.. _migration-1.4-custom-interfaces-file-netbase-change: + +Custom Interfaces File (netbase change) +--------------------------------------- + +If you have created your own custom ``etc/network/interfaces`` file by +creating an append file for the ``netbase`` recipe, you now need to +create an append file for the ``init-ifupdown`` recipe instead, which +you can find in the :term:`Source Directory` at +``meta/recipes-core/init-ifupdown``. For information on how to use +append files, see the +":ref:`dev-manual/common-tasks:using .bbappend files in your layer`" +section in the Yocto Project Development Tasks Manual. + +.. _migration-1.4-remote-debugging: + +Remote Debugging +---------------- + +Support for remote debugging with the Eclipse IDE is now separated into +an image feature (``eclipse-debug``) that corresponds to the +``packagegroup-core-eclipse-debug`` package group. Previously, the +debugging feature was included through the ``tools-debug`` image +feature, which corresponds to the ``packagegroup-core-tools-debug`` +package group. + +.. _migration-1.4-variables: + +Variables +--------- + +The following variables have changed: + +- :term:`SANITY_TESTED_DISTROS`: This variable now uses a distribution + ID, which is composed of the host distributor ID followed by the + release. Previously, + :term:`SANITY_TESTED_DISTROS` was + composed of the description field. For example, "Ubuntu 12.10" + becomes "Ubuntu-12.10". You do not need to worry about this change if + you are not specifically setting this variable, or if you are + specifically setting it to "". + +- :term:`SRC_URI`: The ``${``\ :term:`PN`\ ``}``, + ``${``\ :term:`PF`\ ``}``, + ``${``\ :term:`P`\ ``}``, and ``FILE_DIRNAME`` directories + have been dropped from the default value of the + :term:`FILESPATH` variable, which is used as the + search path for finding files referred to in + :term:`SRC_URI`. If you have a recipe that relied upon + these directories, which would be unusual, then you will need to add + the appropriate paths within the recipe or, alternatively, rearrange + the files. The most common locations are still covered by ``${``\ :term:`BP`\ ``}``, + ``${``\ :term:`BPN`\ ``}``, and "files", which all remain in the default value of + :term:`FILESPATH`. + +.. _migration-target-package-management-with-rpm: + +Target Package Management with RPM +---------------------------------- + +If runtime package management is enabled and the RPM backend is +selected, Smart is now installed for package download, dependency +resolution, and upgrades instead of Zypper. For more information on how +to use Smart, run the following command on the target:: + + smart --help + +.. _migration-1.4-recipes-moved: + +Recipes Moved +------------- + +The following recipes were moved from their previous locations because +they are no longer used by anything in the OpenEmbedded-Core: + +- ``clutter-box2d``: Now resides in the ``meta-oe`` layer. + +- ``evolution-data-server``: Now resides in the ``meta-gnome`` layer. + +- ``gthumb``: Now resides in the ``meta-gnome`` layer. + +- ``gtkhtml2``: Now resides in the ``meta-oe`` layer. + +- ``gupnp``: Now resides in the ``meta-multimedia`` layer. + +- ``gypsy``: Now resides in the ``meta-oe`` layer. + +- ``libcanberra``: Now resides in the ``meta-gnome`` layer. + +- ``libgdata``: Now resides in the ``meta-gnome`` layer. + +- ``libmusicbrainz``: Now resides in the ``meta-multimedia`` layer. + +- ``metacity``: Now resides in the ``meta-gnome`` layer. + +- ``polkit``: Now resides in the ``meta-oe`` layer. + +- ``zeroconf``: Now resides in the ``meta-networking`` layer. + +.. _migration-1.4-removals-and-renames: + +Removals and Renames +-------------------- + +The following list shows what has been removed or renamed: + +- ``evieext``: Removed because it has been removed from ``xserver`` + since 2008. + +- *Gtk+ DirectFB:* Removed support because upstream Gtk+ no longer + supports it as of version 2.18. + +- ``libxfontcache / xfontcacheproto``: Removed because they were + removed from the Xorg server in 2008. + +- ``libxp / libxprintapputil / libxprintutil / printproto``: Removed + because the XPrint server was removed from Xorg in 2008. + +- ``libxtrap / xtrapproto``: Removed because their functionality was + broken upstream. + +- *linux-yocto 3.0 kernel:* Removed with linux-yocto 3.8 kernel being + added. The linux-yocto 3.2 and linux-yocto 3.4 kernels remain as part + of the release. + +- ``lsbsetup``: Removed with functionality now provided by + ``lsbtest``. + +- ``matchbox-stroke``: Removed because it was never more than a + proof-of-concept. + +- ``matchbox-wm-2 / matchbox-theme-sato-2``: Removed because they are + not maintained. However, ``matchbox-wm`` and ``matchbox-theme-sato`` + are still provided. + +- ``mesa-dri``: Renamed to ``mesa``. + +- ``mesa-xlib``: Removed because it was no longer useful. + +- ``mutter``: Removed because nothing ever uses it and the recipe is + very old. + +- ``orinoco-conf``: Removed because it has become obsolete. + +- ``update-modules``: Removed because it is no longer used. The + kernel module ``postinstall`` and ``postrm`` scripts can now do the + same task without the use of this script. + +- ``web``: Removed because it is not maintained. Superseded by + ``web-webkit``. + +- ``xf86bigfontproto``: Removed because upstream it has been disabled + by default since 2007. Nothing uses ``xf86bigfontproto``. + +- ``xf86rushproto``: Removed because its dependency in ``xserver`` + was spurious and it was removed in 2005. + +- ``zypper / libzypp / sat-solver``: Removed and been functionally + replaced with Smart (``python-smartpm``) when RPM packaging is used + and package management is enabled on the target. + diff --git a/poky/documentation/migration-guides/migration-1.5.rst b/poky/documentation/migration-guides/migration-1.5.rst new file mode 100644 index 000000000..e956d9fff --- /dev/null +++ b/poky/documentation/migration-guides/migration-1.5.rst @@ -0,0 +1,353 @@ +Release 1.5 (dora) +================== + +This section provides migration information for moving to the Yocto +Project 1.5 Release (codename "dora") from the prior release. + +.. _migration-1.5-host-dependency-changes: + +Host Dependency Changes +----------------------- + +The OpenEmbedded build system now has some additional requirements on +the host system: + +- Python 2.7.3+ + +- Tar 1.24+ + +- Git 1.7.8+ + +- Patched version of Make if you are using 3.82. Most distributions + that provide Make 3.82 use the patched version. + +If the Linux distribution you are using on your build host does not +provide packages for these, you can install and use the Buildtools +tarball, which provides an SDK-like environment containing them. + +For more information on this requirement, see the +":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`" +section. + +.. _migration-1.5-atom-pc-bsp: + +``atom-pc`` Board Support Package (BSP) +--------------------------------------- + +The ``atom-pc`` hardware reference BSP has been replaced by a +``genericx86`` BSP. This BSP is not necessarily guaranteed to work on +all x86 hardware, but it will run on a wider range of systems than the +``atom-pc`` did. + +.. note:: + + Additionally, a ``genericx86-64`` BSP has been added for 64-bit Atom + systems. + +.. _migration-1.5-bitbake: + +BitBake +------- + +The following changes have been made that relate to BitBake: + +- BitBake now supports a ``_remove`` operator. The addition of this + operator means you will have to rename any items in recipe space + (functions, variables) whose names currently contain ``_remove_`` or + end with ``_remove`` to avoid unexpected behavior. + +- BitBake's global method pool has been removed. This method is not + particularly useful and led to clashes between recipes containing + functions that had the same name. + +- The "none" server backend has been removed. The "process" server + backend has been serving well as the default for a long time now. + +- The ``bitbake-runtask`` script has been removed. + +- ``${``\ :term:`P`\ ``}`` and + ``${``\ :term:`PF`\ ``}`` are no longer added to + :term:`PROVIDES` by default in ``bitbake.conf``. + These version-specific :term:`PROVIDES` items were seldom used. + Attempting to use them could result in two versions being built + simultaneously rather than just one version due to the way BitBake + resolves dependencies. + +.. _migration-1.5-qa-warnings: + +QA Warnings +----------- + +The following changes have been made to the package QA checks: + +- If you have customized :term:`ERROR_QA` or + :term:`WARN_QA` values in your configuration, check + that they contain all of the issues that you wish to be reported. + Previous Yocto Project versions contained a bug that meant that any + item not mentioned in :term:`ERROR_QA` or :term:`WARN_QA` would be treated as + a warning. Consequently, several important items were not already in + the default value of :term:`WARN_QA`. All of the possible QA checks are + now documented in the ":ref:`insane.bbclass `" + section. + +- An additional QA check has been added to check if + ``/usr/share/info/dir`` is being installed. Your recipe should delete + this file within :ref:`ref-tasks-install` if "make + install" is installing it. + +- If you are using the ``buildhistory`` class, the check for the package + version going backwards is now controlled using a standard QA check. + Thus, if you have customized your :term:`ERROR_QA` or :term:`WARN_QA` values + and still wish to have this check performed, you should add + "version-going-backwards" to your value for one or the other + variables depending on how you wish it to be handled. See the + documented QA checks in the + ":ref:`insane.bbclass `" section. + +.. _migration-1.5-directory-layout-changes: + +Directory Layout Changes +------------------------ + +The following directory changes exist: + +- Output SDK installer files are now named to include the image name + and tuning architecture through the :term:`SDK_NAME` + variable. + +- Images and related files are now installed into a directory that is + specific to the machine, instead of a parent directory containing + output files for multiple machines. The + :term:`DEPLOY_DIR_IMAGE` variable continues + to point to the directory containing images for the current + :term:`MACHINE` and should be used anywhere there is a + need to refer to this directory. The ``runqemu`` script now uses this + variable to find images and kernel binaries and will use BitBake to + determine the directory. Alternatively, you can set the + ``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`. + +- The ``pkgdata`` directory produced as part of the packaging process + has been collapsed into a single machine-specific directory. This + directory is located under ``sysroots`` and uses a machine-specific + name (i.e. ``tmp/sysroots/machine/pkgdata``). + +.. _migration-1.5-shortened-git-srcrev-values: + +Shortened Git ``SRCREV`` Values +------------------------------- + +BitBake will now shorten revisions from Git repositories from the normal +40 characters down to 10 characters within :term:`SRCPV` +for improved usability in path and file names. This change should be +safe within contexts where these revisions are used because the chances +of spatially close collisions is very low. Distant collisions are not a +major issue in the way the values are used. + +.. _migration-1.5-image-features: + +``IMAGE_FEATURES`` +------------------ + +The following changes have been made that relate to +:term:`IMAGE_FEATURES`: + +- The value of :term:`IMAGE_FEATURES` is now validated to ensure invalid + feature items are not added. Some users mistakenly add package names + to this variable instead of using + :term:`IMAGE_INSTALL` in order to have the + package added to the image, which does not work. This change is + intended to catch those kinds of situations. Valid :term:`IMAGE_FEATURES` + are drawn from ``PACKAGE_GROUP`` definitions, + :term:`COMPLEMENTARY_GLOB` and a new + "validitems" varflag on :term:`IMAGE_FEATURES`. The "validitems" varflag + change allows additional features to be added if they are not + provided using the previous two mechanisms. + +- The previously deprecated "apps-console-core" :term:`IMAGE_FEATURES` item + is no longer supported. Add "splash" to :term:`IMAGE_FEATURES` if you + wish to have the splash screen enabled, since this is all that + apps-console-core was doing. + +.. _migration-1.5-run: + +``/run`` +-------- + +The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has +been introduced. You can find some of the implications for this change +:oe_git:`here `. +The change also means that recipes that install files to ``/var/run`` +must be changed. You can find a guide on how to make these changes +`here `__. + +.. _migration-1.5-removal-of-package-manager-database-within-image-recipes: + +Removal of Package Manager Database Within Image Recipes +-------------------------------------------------------- + +The image ``core-image-minimal`` no longer adds +``remove_packaging_data_files`` to +:term:`ROOTFS_POSTPROCESS_COMMAND`. +This addition is now handled automatically when "package-management" is +not in :term:`IMAGE_FEATURES`. If you have custom +image recipes that make this addition, you should remove the lines, as +they are not needed and might interfere with correct operation of +postinstall scripts. + +.. _migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time: + +Images Now Rebuild Only on Changes Instead of Every Time +-------------------------------------------------------- + +The :ref:`ref-tasks-rootfs` and other related image +construction tasks are no longer marked as "nostamp". Consequently, they +will only be re-executed when their inputs have changed. Previous +versions of the OpenEmbedded build system always rebuilt the image when +requested rather when necessary. + +.. _migration-1.5-task-recipes: + +Task Recipes +------------ + +The previously deprecated ``task.bbclass`` has now been dropped. For +recipes that previously inherited from this class, you should rename +them from ``task-*`` to ``packagegroup-*`` and inherit packagegroup +instead. + +For more information, see the +":ref:`packagegroup.bbclass `" section. + +.. _migration-1.5-busybox: + +BusyBox +------- + +By default, we now split BusyBox into two binaries: one that is suid +root for those components that need it, and another for the rest of the +components. Splitting BusyBox allows for optimization that eliminates +the ``tinylogin`` recipe as recommended by upstream. You can disable +this split by setting +:term:`BUSYBOX_SPLIT_SUID` to "0". + +.. _migration-1.5-automated-image-testing: + +Automated Image Testing +----------------------- + +A new automated image testing framework has been added through the +:ref:`testimage.bbclass ` class. This +framework replaces the older ``imagetest-qemu`` framework. + +You can learn more about performing automated image tests in the +":ref:`dev-manual/common-tasks:performing automated runtime testing`" +section in the Yocto Project Development Tasks Manual. + +.. _migration-1.5-build-history: + +Build History +------------- + +Following are changes to Build History: + +- Installed package sizes: ``installed-package-sizes.txt`` for an image + now records the size of the files installed by each package instead + of the size of each compressed package archive file. + +- The dependency graphs (``depends*.dot``) now use the actual package + names instead of replacing dashes, dots and plus signs with + underscores. + +- The ``buildhistory-diff`` and ``buildhistory-collect-srcrevs`` + utilities have improved command-line handling. Use the ``--help`` + option for each utility for more information on the new syntax. + +For more information on Build History, see the +":ref:`dev-manual/common-tasks:maintaining build output quality`" +section in the Yocto Project Development Tasks Manual. + +.. _migration-1.5-udev: + +``udev`` +-------- + +Following are changes to ``udev``: + +- ``udev`` no longer brings in ``udev-extraconf`` automatically through + :term:`RRECOMMENDS`, since this was originally + intended to be optional. If you need the extra rules, then add + ``udev-extraconf`` to your image. + +- ``udev`` no longer brings in ``pciutils-ids`` or ``usbutils-ids`` + through :term:`RRECOMMENDS`. These are not needed by ``udev`` itself and + removing them saves around 350KB. + +.. _migration-1.5-removed-renamed-recipes: + +Removed and Renamed Recipes +--------------------------- + +- The ``linux-yocto`` 3.2 kernel has been removed. + +- ``libtool-nativesdk`` has been renamed to ``nativesdk-libtool``. + +- ``tinylogin`` has been removed. It has been replaced by a suid + portion of Busybox. See the ":ref:`migration-1.5-busybox`" + section for more information. + +- ``external-python-tarball`` has been renamed to + ``buildtools-tarball``. + +- ``web-webkit`` has been removed. It has been functionally replaced by + ``midori``. + +- ``imake`` has been removed. It is no longer needed by any other + recipe. + +- ``transfig-native`` has been removed. It is no longer needed by any + other recipe. + +- ``anjuta-remote-run`` has been removed. Anjuta IDE integration has + not been officially supported for several releases. + +.. _migration-1.5-other-changes: + +Other Changes +------------- + +Following is a list of short entries describing other changes: + +- ``run-postinsts``: Make this generic. + +- ``base-files``: Remove the unnecessary ``media/``\ xxx directories. + +- ``alsa-state``: Provide an empty ``asound.conf`` by default. + +- ``classes/image``: Ensure + :term:`BAD_RECOMMENDATIONS` supports + pre-renamed package names. + +- ``classes/rootfs_rpm``: Implement ``BAD_RECOMMENDATIONS`` for RPM. + +- ``systemd``: Remove ``systemd_unitdir`` if ``systemd`` is not in + :term:`DISTRO_FEATURES`. + +- ``systemd``: Remove ``init.d`` dir if ``systemd`` unit file is + present and ``sysvinit`` is not a distro feature. + +- ``libpam``: Deny all services for the ``OTHER`` entries. + +- ``image.bbclass``: Move ``runtime_mapping_rename`` to avoid conflict + with ``multilib``. See :yocto_bugs:`YOCTO #4993 ` + in Bugzilla for more information. + +- ``linux-dtb``: Use kernel build system to generate the ``dtb`` files. + +- ``kern-tools``: Switch from guilt to new ``kgit-s2q`` tool. + diff --git a/poky/documentation/migration-guides/migration-1.6.rst b/poky/documentation/migration-guides/migration-1.6.rst new file mode 100644 index 000000000..eea3d1767 --- /dev/null +++ b/poky/documentation/migration-guides/migration-1.6.rst @@ -0,0 +1,414 @@ +Release 1.6 (daisy) +=================== + +This section provides migration information for moving to the Yocto +Project 1.6 Release (codename "daisy") from the prior release. + +.. _migration-1.6-archiver-class: + +``archiver`` Class +------------------ + +The :ref:`archiver ` class has been rewritten +and its configuration has been simplified. For more details on the +source 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. + +.. _migration-1.6-packaging-changes: + +Packaging Changes +----------------- + +The following packaging changes have been made: + +- The ``binutils`` recipe no longer produces a ``binutils-symlinks`` + package. ``update-alternatives`` is now used to handle the preferred + ``binutils`` variant on the target instead. + +- The tc (traffic control) utilities have been split out of the main + ``iproute2`` package and put into the ``iproute2-tc`` package. + +- The ``gtk-engines`` schemas have been moved to a dedicated + ``gtk-engines-schemas`` package. + +- The ``armv7a`` with thumb package architecture suffix has changed. + The suffix for these packages with the thumb optimization enabled is + "t2" as it should be. Use of this suffix was not the case in the 1.5 + release. Architecture names will change within package feeds as a + result. + +.. _migration-1.6-bitbake: + +BitBake +------- + +The following changes have been made to :term:`BitBake`. + +.. _migration-1.6-matching-branch-requirement-for-git-fetching: + +Matching Branch Requirement for Git Fetching +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When fetching source from a Git repository using +:term:`SRC_URI`, BitBake will now validate the +:term:`SRCREV` value against the branch. You can specify +the branch using the following form:: + + SRC_URI = "git://server.name/repository;branch=branchname" + +If you do not specify a branch, BitBake looks in the default "master" branch. + +Alternatively, if you need to bypass this check (e.g. if you are +fetching a revision corresponding to a tag that is not on any branch), +you can add ";nobranch=1" to the end of the URL within :term:`SRC_URI`. + +.. _migration-1.6-bitbake-deps: + +Python Definition substitutions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BitBake had some previously deprecated Python definitions within its +``bb`` module removed. You should use their sub-module counterparts +instead: + +- ``bb.MalformedUrl``: Use ``bb.fetch.MalformedUrl``. + +- ``bb.encodeurl``: Use ``bb.fetch.encodeurl``. + +- ``bb.decodeurl``: Use ``bb.fetch.decodeurl`` + +- ``bb.mkdirhier``: Use ``bb.utils.mkdirhier``. + +- ``bb.movefile``: Use ``bb.utils.movefile``. + +- ``bb.copyfile``: Use ``bb.utils.copyfile``. + +- ``bb.which``: Use ``bb.utils.which``. + +- ``bb.vercmp_string``: Use ``bb.utils.vercmp_string``. + +- ``bb.vercmp``: Use ``bb.utils.vercmp``. + +.. _migration-1.6-bitbake-fetcher: + +SVK Fetcher +~~~~~~~~~~~ + +The SVK fetcher has been removed from BitBake. + +.. _migration-1.6-bitbake-console-output: + +Console Output Error Redirection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The BitBake console UI will now output errors to ``stderr`` instead of +``stdout``. Consequently, if you are piping or redirecting the output of +``bitbake`` to somewhere else, and you wish to retain the errors, you +will need to add ``2>&1`` (or something similar) to the end of your +``bitbake`` command line. + +.. _migration-1.6-task-taskname-overrides: + +``task-``\ taskname Overrides +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``task-``\ taskname overrides have been adjusted so that tasks whose +names contain underscores have the underscores replaced by hyphens for +the override so that they now function properly. For example, the task +override for :ref:`ref-tasks-populate_sdk` is +``task-populate-sdk``. + +.. _migration-1.6-variable-changes: + +Changes to Variables +-------------------- + +The following variables have changed. For information on the +OpenEmbedded build system variables, see the ":doc:`/ref-manual/variables`" Chapter. + +.. _migration-1.6-variable-changes-TMPDIR: + +``TMPDIR`` +~~~~~~~~~~ + +:term:`TMPDIR` can no longer be on an NFS mount. NFS does +not offer full POSIX locking and inode consistency and can cause +unexpected issues if used to store :term:`TMPDIR`. + +The check for this occurs on startup. If :term:`TMPDIR` is detected on an +NFS mount, an error occurs. + +.. _migration-1.6-variable-changes-PRINC: + +``PRINC`` +~~~~~~~~~ + +The ``PRINC`` variable has been deprecated and triggers a warning if +detected during a build. For :term:`PR` increments on changes, +use the PR service instead. You can find out more about this service in +the ":ref:`dev-manual/common-tasks:working with a pr service`" +section in the Yocto Project Development Tasks Manual. + +.. _migration-1.6-variable-changes-IMAGE_TYPES: + +``IMAGE_TYPES`` +~~~~~~~~~~~~~~~ + +The "sum.jffs2" option for :term:`IMAGE_TYPES` has +been replaced by the "jffs2.sum" option, which fits the processing +order. + +.. _migration-1.6-variable-changes-COPY_LIC_MANIFEST: + +``COPY_LIC_MANIFEST`` +~~~~~~~~~~~~~~~~~~~~~ + +The :term:`COPY_LIC_MANIFEST` variable must now +be set to "1" rather than any value in order to enable it. + +.. _migration-1.6-variable-changes-COPY_LIC_DIRS: + +``COPY_LIC_DIRS`` +~~~~~~~~~~~~~~~~~ + +The :term:`COPY_LIC_DIRS` variable must now be set +to "1" rather than any value in order to enable it. + +.. _migration-1.6-variable-changes-PACKAGE_GROUP: + +``PACKAGE_GROUP`` +~~~~~~~~~~~~~~~~~ + +The ``PACKAGE_GROUP`` variable has been renamed to +:term:`FEATURE_PACKAGES` to more accurately +reflect its purpose. You can still use ``PACKAGE_GROUP`` but the +OpenEmbedded build system produces a warning message when it encounters +the variable. + +.. _migration-1.6-variable-changes-variable-entry-behavior: + +Preprocess and Post Process Command Variable Behavior +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following variables now expect a semicolon separated list of +functions to call and not arbitrary shell commands: + + - :term:`ROOTFS_PREPROCESS_COMMAND` + - :term:`ROOTFS_POSTPROCESS_COMMAND` + - :term:`SDK_POSTPROCESS_COMMAND` + - :term:`POPULATE_SDK_POST_TARGET_COMMAND` + - :term:`POPULATE_SDK_POST_HOST_COMMAND` + - :term:`IMAGE_POSTPROCESS_COMMAND` + - :term:`IMAGE_PREPROCESS_COMMAND` + - :term:`ROOTFS_POSTUNINSTALL_COMMAND` + - :term:`ROOTFS_POSTINSTALL_COMMAND` + +For +migration purposes, you can simply wrap shell commands in a shell +function and then call the function. Here is an example:: + + my_postprocess_function() { + echo "hello" > ${IMAGE_ROOTFS}/hello.txt + } + ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; " + +.. _migration-1.6-package-test-ptest: + +Package Test (ptest) +-------------------- + +Package Tests (ptest) are built but not installed by default. For +information on using Package Tests, see the +":ref:`dev-manual/common-tasks:testing packages with ptest`" +section in the Yocto Project Development Tasks Manual. For information on the +``ptest`` class, see the ":ref:`ptest.bbclass `" +section. + +.. _migration-1.6-build-changes: + +Build Changes +------------- + +Separate build and source directories have been enabled by default for +selected recipes where it is known to work (a whitelist) and for all +recipes that inherit the :ref:`cmake ` class. In +future releases the :ref:`autotools ` class +will enable a separate 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 +:ref:`autotools-brokensep ` class instead of +the ``autotools`` or ``autotools_stage``\ classes. + +.. _migration-1.6-building-qemu-native: + +``qemu-native`` +--------------- + +``qemu-native`` now builds without SDL-based graphical output support by +default. The following additional lines are needed in your +``local.conf`` to enable it:: + + PACKAGECONFIG_pn-qemu-native = "sdl" + ASSUME_PROVIDED += "libsdl-native" + +.. note:: + + The default ``local.conf`` contains these statements. Consequently, if you + are building a headless system and using a default ``local.conf`` + file, you will need comment these two lines out. + +.. _migration-1.6-core-image-basic: + +``core-image-basic`` +-------------------- + +``core-image-basic`` has been renamed to ``core-image-full-cmdline``. + +In addition to ``core-image-basic`` being renamed, +``packagegroup-core-basic`` has been renamed to +``packagegroup-core-full-cmdline`` to match. + +.. _migration-1.6-licensing: + +Licensing +--------- + +The top-level :term:`LICENSE` file has been changed to better describe the +license of the various components of :term:`OpenEmbedded-Core (OE-Core)`. However, +the licensing itself remains unchanged. + +Normally, this change would not cause any side-effects. However, some +recipes point to this file within +:term:`LIC_FILES_CHKSUM` (as +``${COREBASE}/LICENSE``) and thus the accompanying checksum must be +changed from 3f40d7994397109285ec7b81fdeb3b58 to +4d92cd373abda3937c2bc47fbc49d690. A better alternative is to have +:term:`LIC_FILES_CHKSUM` point to a file describing the license that is +distributed with the source that the recipe is building, if possible, +rather than pointing to ``${COREBASE}/LICENSE``. + +.. _migration-1.6-cflags-options: + +``CFLAGS`` Options +------------------ + +The "-fpermissive" option has been removed from the default +:term:`CFLAGS` value. You need to take action on +individual recipes that fail when building with this option. You need to +either patch the recipes to fix the issues reported by the compiler, or +you need to add "-fpermissive" to :term:`CFLAGS` in the recipes. + +.. _migration-1.6-custom-images: + +Custom Image Output Types +------------------------- + +Custom image output types, as selected using +:term:`IMAGE_FSTYPES`, must declare their +dependencies on other image types (if any) using a new +:term:`IMAGE_TYPEDEP` variable. + +.. _migration-1.6-do-package-write-task: + +Tasks +----- + +The ``do_package_write`` task has been removed. The task is no longer +needed. + +.. _migration-1.6-update-alternatives-provider: + +``update-alternative`` Provider +------------------------------- + +The default ``update-alternatives`` provider has been changed from +``opkg`` to ``opkg-utils``. This change resolves some troublesome +circular dependencies. The runtime package has also been renamed from +``update-alternatives-cworth`` to ``update-alternatives-opkg``. + +.. _migration-1.6-virtclass-overrides: + +``virtclass`` Overrides +----------------------- + +The ``virtclass`` overrides are now deprecated. Use the equivalent class +overrides instead (e.g. ``virtclass-native`` becomes ``class-native``.) + +.. _migration-1.6-removed-renamed-recipes: + +Removed and Renamed Recipes +--------------------------- + +The following recipes have been removed: + +- ``packagegroup-toolset-native`` - This recipe is largely unused. + +- ``linux-yocto-3.8`` - Support for the Linux yocto 3.8 kernel has been + dropped. Support for the 3.10 and 3.14 kernels have been added with + the ``linux-yocto-3.10`` and ``linux-yocto-3.14`` recipes. + +- ``ocf-linux`` - This recipe has been functionally replaced using + ``cryptodev-linux``. + +- ``genext2fs`` - ``genext2fs`` is no longer used by the build system + and is unmaintained upstream. + +- ``js`` - This provided an ancient version of Mozilla's javascript + engine that is no longer needed. + +- ``zaurusd`` - The recipe has been moved to the ``meta-handheld`` + layer. + +- ``eglibc 2.17`` - Replaced by the ``eglibc 2.19`` recipe. + +- ``gcc 4.7.2`` - Replaced by the now stable ``gcc 4.8.2``. + +- ``external-sourcery-toolchain`` - this recipe is now maintained in + the ``meta-sourcery`` layer. + +- ``linux-libc-headers-yocto 3.4+git`` - Now using version 3.10 of the + ``linux-libc-headers`` by default. + +- ``meta-toolchain-gmae`` - This recipe is obsolete. + +- ``packagegroup-core-sdk-gmae`` - This recipe is obsolete. + +- ``packagegroup-core-standalone-gmae-sdk-target`` - This recipe is + obsolete. + +.. _migration-1.6-removed-classes: + +Removed Classes +--------------- + +The following classes have become obsolete and have been removed: + +- ``module_strip`` + +- ``pkg_metainfo`` + +- ``pkg_distribute`` + +- ``image-empty`` + +.. _migration-1.6-reference-bsps: + +Reference Board Support Packages (BSPs) +--------------------------------------- + +The following reference BSPs changes occurred: + +- The BeagleBoard (``beagleboard``) ARM reference hardware has been + replaced by the BeagleBone (``beaglebone``) hardware. + +- The RouterStation Pro (``routerstationpro``) MIPS reference hardware + has been replaced by the EdgeRouter Lite (``edgerouter``) hardware. + +The previous reference BSPs for the ``beagleboard`` and +``routerstationpro`` machines are still available in a new +``meta-yocto-bsp-old`` layer in the +:yocto_git:`Source Repositories <>` at +:yocto_git:`/meta-yocto-bsp-old/`. + + diff --git a/poky/documentation/migration-guides/migration-1.7.rst b/poky/documentation/migration-guides/migration-1.7.rst new file mode 100644 index 000000000..c3a50eec8 --- /dev/null +++ b/poky/documentation/migration-guides/migration-1.7.rst @@ -0,0 +1,221 @@ +Release 1.7 (dizzy) +=================== + +This section provides migration information for moving to the Yocto +Project 1.7 Release (codename "dizzy") from the prior release. + +.. _migration-1.7-changes-to-setting-qemu-packageconfig-options: + +Changes to Setting QEMU ``PACKAGECONFIG`` Options in ``local.conf`` +------------------------------------------------------------------- + +The QEMU recipe now uses a number of +:term:`PACKAGECONFIG` options to enable various +optional features. The method used to set defaults for these options +means that existing ``local.conf`` files will need to be modified to +append to ``PACKAGECONFIG`` for ``qemu-native`` and ``nativesdk-qemu`` +instead of setting it. In other words, to enable graphical output for +QEMU, you should now have these lines in ``local.conf``:: + + PACKAGECONFIG_append_pn-qemu-native = " sdl" + PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" + +.. _migration-1.7-minimum-git-version: + +Minimum Git version +------------------- + +The minimum :ref:`overview-manual/development-environment:git` +version required on the +build host is now 1.7.8 because the ``--list`` option is now required by +BitBake's Git fetcher. As always, if your host distribution does not +provide a version of Git that meets this requirement, you can use the +``buildtools-tarball`` that does. See the +":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`" +section for more information. + +.. _migration-1.7-autotools-class-changes: + +Autotools Class Changes +----------------------- + +The following :ref:`autotools ` class changes +occurred: + +- *A separate build directory is now used by default:* The + ``autotools`` class has been changed to use a directory for building + (:term:`B`), which is separate from the source directory + (:term:`S`). This is commonly referred to as ``B != S``, or + an out-of-tree build. + + If the software being built is already capable of building in a + directory separate from the source, you do not need to do anything. + However, if the software is not capable of being built in this + manner, you will need to either patch the software so that it can + build separately, or you will need to change the recipe to inherit + the :ref:`autotools-brokensep ` class + instead of the ``autotools`` or ``autotools_stage`` classes. + +- The ``--foreign`` option is no longer passed to ``automake`` when + running ``autoconf``: This option tells ``automake`` that a + particular software package does not follow the GNU standards and + therefore should not be expected to distribute certain files such as + ``ChangeLog``, ``AUTHORS``, and so forth. Because the majority of + upstream software packages already tell ``automake`` to enable + foreign mode themselves, the option is mostly superfluous. However, + some recipes will need patches for this change. You can easily make + the change by patching ``configure.ac`` so that it passes "foreign" + to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this + commit ` + for an example showing how to make the patch. + +.. _migration-1.7-binary-configuration-scripts-disabled: + +Binary Configuration Scripts Disabled +------------------------------------- + +Some of the core recipes that package binary configuration scripts now +disable the scripts due to the scripts previously requiring error-prone +path substitution. Software that links against these libraries using +these scripts should use the much more robust ``pkg-config`` instead. +The list of recipes changed in this version (and their configuration +scripts) is as follows:: + + directfb (directfb-config) + freetype (freetype-config) + gpgme (gpgme-config) + libassuan (libassuan-config) + libcroco (croco-6.0-config) + libgcrypt (libgcrypt-config) + libgpg-error (gpg-error-config) + libksba (ksba-config) + libpcap (pcap-config) + libpcre (pcre-config) + libpng (libpng-config, libpng16-config) + libsdl (sdl-config) + libusb-compat (libusb-config) + libxml2 (xml2-config) + libxslt (xslt-config) + ncurses (ncurses-config) + neon (neon-config) + npth (npth-config) + pth (pth-config) + taglib (taglib-config) + +Additionally, support for ``pkg-config`` has been added to some recipes in the +previous list in the rare cases where the upstream software package does +not already provide it. + +.. _migration-1.7-glibc-replaces-eglibc: + +``eglibc 2.19`` Replaced with ``glibc 2.20`` +-------------------------------------------- + +Because ``eglibc`` and ``glibc`` were already fairly close, this +replacement should not require any significant changes to other software +that links to ``eglibc``. However, there were a number of minor changes +in ``glibc 2.20`` upstream that could require patching some software +(e.g. the removal of the ``_BSD_SOURCE`` feature test macro). + +``glibc 2.20`` requires version 2.6.32 or greater of the Linux kernel. +Thus, older kernels will no longer be usable in conjunction with it. + +For full details on the changes in ``glibc 2.20``, see the upstream +release notes +`here `__. + +.. _migration-1.7-kernel-module-autoloading: + +Kernel Module Autoloading +------------------------- + +The :term:`module_autoload_* ` variable is now +deprecated and a new +:term:`KERNEL_MODULE_AUTOLOAD` variable +should be used instead. Also, :term:`module_conf_* ` +must now be used in conjunction with a new +:term:`KERNEL_MODULE_PROBECONF` variable. +The new variables no longer require you to specify the module name as +part of the variable name. This change not only simplifies usage but +also allows the values of these variables to be appropriately +incorporated into task signatures and thus trigger the appropriate tasks +to re-execute when changed. You should replace any references to +``module_autoload_*`` with :term:`KERNEL_MODULE_AUTOLOAD`, and add any +modules for which ``module_conf_*`` is specified to +:term:`KERNEL_MODULE_PROBECONF`. + +.. _migration-1.7-qa-check-changes: + +QA Check Changes +---------------- + +The following changes have occurred to the QA check process: + +- Additional QA checks ``file-rdeps`` and ``build-deps`` have been + added in order to verify that file dependencies are satisfied (e.g. + package contains a script requiring ``/bin/bash``) and build-time + dependencies are declared, respectively. For more information, please + see the ":doc:`/ref-manual/qa-checks`" chapter. + +- Package QA checks are now performed during a new + :ref:`ref-tasks-package_qa` task rather than being + part of the :ref:`ref-tasks-package` task. This allows + more parallel execution. This change is unlikely to be an issue + except for highly customized recipes that disable packaging tasks + themselves by marking them as ``noexec``. For those packages, you + will need to disable the ``do_package_qa`` task as well. + +- Files being overwritten during the + :ref:`ref-tasks-populate_sysroot` task now + trigger an error instead of a warning. Recipes should not be + overwriting files written to the sysroot by other recipes. If you + have these types of recipes, you need to alter them so that they do + not overwrite these files. + + You might now receive this error after changes in configuration or + metadata resulting in orphaned files being left in the sysroot. If + you do receive this error, the way to resolve the issue is to delete + your :term:`TMPDIR` or to move it out of the way and + then re-start the build. Anything that has been fully built up to + that point and does not need rebuilding will be restored from the + shared state cache and the rest of the build will be able to proceed + as normal. + +.. _migration-1.7-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed: + +- ``x-load``: This recipe has been superseded by U-Boot SPL for all + Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which + contains a maintained recipe, should be used instead. + +- ``ubootchart``: This recipe is obsolete. A ``bootchart2`` recipe has + been added to functionally replace it. + +- ``linux-yocto 3.4``: Support for the linux-yocto 3.4 kernel has been + dropped. Support for the 3.10 and 3.14 kernels remains, while support + for version 3.17 has been added. + +- ``eglibc`` has been removed in favor of ``glibc``. See the + ":ref:`migration-1.7-glibc-replaces-eglibc`" section for more information. + +.. _migration-1.7-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following miscellaneous change occurred: + +- The build history feature now writes ``build-id.txt`` instead of + ``build-id``. Additionally, ``build-id.txt`` now contains the full + build header as printed by BitBake upon starting the build. You + should manually remove old "build-id" files from your existing build + history repositories to avoid confusion. For information on the build + history feature, see the + ":ref:`dev-manual/common-tasks:maintaining build output quality`" + section in the Yocto Project Development Tasks Manual. + + diff --git a/poky/documentation/migration-guides/migration-1.8.rst b/poky/documentation/migration-guides/migration-1.8.rst new file mode 100644 index 000000000..51a13873e --- /dev/null +++ b/poky/documentation/migration-guides/migration-1.8.rst @@ -0,0 +1,183 @@ +Release 1.8 (fido) +================== + +This section provides migration information for moving to the Yocto +Project 1.8 Release (codename "fido") from the prior release. + +.. _migration-1.8-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed: + +- ``owl-video``: Functionality replaced by ``gst-player``. + +- ``gaku``: Functionality replaced by ``gst-player``. + +- ``gnome-desktop``: This recipe is now available in ``meta-gnome`` and + is no longer needed. + +- ``gsettings-desktop-schemas``: This recipe is now available in + ``meta-gnome`` and is no longer needed. + +- ``python-argparse``: The ``argparse`` module is already provided in + the default Python distribution in a package named + ``python-argparse``. Consequently, the separate ``python-argparse`` + recipe is no longer needed. + +- ``telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control``: + All these recipes have moved to ``meta-oe`` and are consequently no + longer needed by any recipes in OpenEmbedded-Core. + +- ``linux-yocto_3.10`` and ``linux-yocto_3.17``: Support for the + linux-yocto 3.10 and 3.17 kernels has been dropped. Support for the + 3.14 kernel remains, while support for 3.19 kernel has been added. + +- ``poky-feed-config-opkg``: This recipe has become obsolete and is no + longer needed. Use ``distro-feed-config`` from ``meta-oe`` instead. + +- ``libav 0.8.x``: ``libav 9.x`` is now used. + +- ``sed-native``: No longer needed. A working version of ``sed`` is + expected to be provided by the host distribution. + +.. _migration-1.8-bluez: + +BlueZ 4.x / 5.x Selection +------------------------- + +Proper built-in support for selecting BlueZ 5.x in preference to the +default of 4.x now exists. To use BlueZ 5.x, simply add "bluez5" to your +:term:`DISTRO_FEATURES` value. If you had +previously added append files (``*.bbappend``) to make this selection, +you can now remove them. + +Additionally, a ``bluetooth`` class has been added to make selection of +the appropriate bluetooth support within a recipe a little easier. If +you wish to make use of this class in a recipe, add something such as +the following:: + + inherit bluetooth + PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}" + PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" + PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5" + +.. _migration-1.8-kernel-build-changes: + +Kernel Build Changes +-------------------- + +The kernel build process was changed to place the source in a common +shared work area and to place build artifacts separately in the source +code tree. In theory, migration paths have been provided for most common +usages in kernel recipes but this might not work in all cases. In +particular, users need to ensure that ``${S}`` (source files) and +``${B}`` (build artifacts) are used correctly in functions such as +:ref:`ref-tasks-configure` and +:ref:`ref-tasks-install`. For kernel recipes that do not +inherit from ``kernel-yocto`` or include ``linux-yocto.inc``, you might +wish to refer to the ``linux.inc`` file in the ``meta-oe`` layer for the +kinds of changes you need to make. For reference, here is the +:oe_git:`commit ` +where the ``linux.inc`` file in ``meta-oe`` was updated. + +Recipes that rely on the kernel source code and do not inherit the +module classes might need to add explicit dependencies on the +``do_shared_workdir`` kernel task, for example:: + + do_configure[depends] += "virtual/kernel:do_shared_workdir" + +.. _migration-1.8-ssl: + +SSL 3.0 is Now Disabled in OpenSSL +---------------------------------- + +SSL 3.0 is now disabled when building OpenSSL. Disabling SSL 3.0 avoids +any lingering instances of the POODLE vulnerability. If you feel you +must re-enable SSL 3.0, then you can add an append file (``*.bbappend``) +for the ``openssl`` recipe to remove "-no-ssl3" from +:term:`EXTRA_OECONF`. + +.. _migration-1.8-default-sysroot-poisoning: + +Default Sysroot Poisoning +------------------------- + +``gcc's`` default sysroot and include directories are now "poisoned". In +other words, the sysroot and include directories are being redirected to +a non-existent location in order to catch when host directories are +being used due to the correct options not being passed. This poisoning +applies both to the cross-compiler used within the build and to the +cross-compiler produced in the SDK. + +If this change causes something in the build to fail, it almost +certainly means the various compiler flags and commands are not being +passed correctly to the underlying piece of software. In such cases, you +need to take corrective steps. + +.. _migration-1.8-rebuild-improvements: + +Rebuild Improvements +-------------------- + +Changes have been made to the :ref:`base `, +:ref:`autotools `, and +:ref:`cmake ` classes to clean out generated files +when the :ref:`ref-tasks-configure` task needs to be +re-executed. + +One of the improvements is to attempt to run "make clean" during the +``do_configure`` task if a ``Makefile`` exists. Some software packages +do not provide a working clean target within their make files. If you +have such recipes, you need to set +:term:`CLEANBROKEN` to "1" within the recipe, for example:: + + CLEANBROKEN = "1" + +.. _migration-1.8-qa-check-and-validation-changes: + +QA Check and Validation Changes +------------------------------- + +The following QA Check and Validation Changes have occurred: + +- Usage of ``PRINC`` previously triggered a warning. It now triggers an + error. You should remove any remaining usage of ``PRINC`` in any + recipe or append file. + +- An additional QA check has been added to detect usage of ``${D}`` in + :term:`FILES` values where :term:`D` values + should not be used at all. The same check ensures that ``$D`` is used + in ``pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm`` functions + instead of ``${D}``. + +- :term:`S` now needs to be set to a valid value within a + recipe. If :term:`S` is not set in the recipe, the directory is not + automatically created. If :term:`S` does not point to a directory that + exists at the time the :ref:`ref-tasks-unpack` task + finishes, a warning will be shown. + +- :term:`LICENSE` is now validated for correct + formatting of multiple licenses. If the format is invalid (e.g. + multiple licenses are specified with no operators to specify how the + multiple licenses interact), then a warning will be shown. + +.. _migration-1.8-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following miscellaneous changes have occurred: + +- The ``send-error-report`` script now expects a "-s" option to be + specified before the server address. This assumes a server address is + being specified. + +- The ``oe-pkgdata-util`` script now expects a "-p" option to be + specified before the ``pkgdata`` directory, which is now optional. If + the ``pkgdata`` directory is not specified, the script will run + BitBake to query :term:`PKGDATA_DIR` from the + build environment. + + diff --git a/poky/documentation/migration-guides/migration-2.0.rst b/poky/documentation/migration-guides/migration-2.0.rst new file mode 100644 index 000000000..721785377 --- /dev/null +++ b/poky/documentation/migration-guides/migration-2.0.rst @@ -0,0 +1,278 @@ +Release 2.0 (jethro) +==================== + +This section provides migration information for moving to the Yocto +Project 2.0 Release (codename "jethro") from the prior release. + +.. _migration-2.0-gcc-5: + +GCC 5 +----- + +The default compiler is now GCC 5.2. This change has required fixes for +compilation errors in a number of other recipes. + +One important example is a fix for when the Linux kernel freezes at boot +time on ARM when built with GCC 5. If you are using your own kernel +recipe or source tree and building for ARM, you will likely need to +apply this +`patch `__. +The standard ``linux-yocto`` kernel source tree already has a workaround +for the same issue. + +For further details, see https://gcc.gnu.org/gcc-5/changes.html +and the porting guide at +https://gcc.gnu.org/gcc-5/porting_to.html. + +Alternatively, you can switch back to GCC 4.9 or 4.8 by setting +:term:`GCCVERSION` in your configuration, as follows:: + + GCCVERSION = "4.9%" + +.. _migration-2.0-Gstreamer-0.10-removed: + +Gstreamer 0.10 Removed +---------------------- + +Gstreamer 0.10 has been removed in favor of Gstreamer 1.x. As part of +the change, recipes for Gstreamer 0.10 and related software are now +located in ``meta-multimedia``. This change results in Qt4 having Phonon +and Gstreamer support in QtWebkit disabled by default. + +.. _migration-2.0-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been moved or removed: + +- ``bluez4``: The recipe is obsolete and has been moved due to + ``bluez5`` becoming fully integrated. The ``bluez4`` recipe now + resides in ``meta-oe``. + +- ``gamin``: The recipe is obsolete and has been removed. + +- ``gnome-icon-theme``: The recipe's functionally has been replaced by + ``adwaita-icon-theme``. + +- Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have been removed + in favor of the recipes for Gstreamer 1.x. + +- ``insserv``: The recipe is obsolete and has been removed. + +- ``libunique``: The recipe is no longer used and has been moved to + ``meta-oe``. + +- ``midori``: The recipe's functionally has been replaced by + ``epiphany``. + +- ``python-gst``: The recipe is obsolete and has been removed since it + only contains bindings for Gstreamer 0.10. + +- ``qt-mobility``: The recipe is obsolete and has been removed since it + requires ``Gstreamer 0.10``, which has been replaced. + +- ``subversion``: All 1.6.x versions of this recipe have been removed. + +- ``webkit-gtk``: The older 1.8.3 version of this recipe has been + removed in favor of ``webkitgtk``. + +.. _migration-2.0-bitbake-datastore-improvements: + +BitBake datastore improvements +------------------------------ + +The method by which BitBake's datastore handles overrides has changed. +Overrides are now applied dynamically and ``bb.data.update_data()`` is +now a no-op. Thus, ``bb.data.update_data()`` is no longer required in +order to apply the correct overrides. In practice, this change is +unlikely to require any changes to Metadata. However, these minor +changes in behavior exist: + +- All potential overrides are now visible in the variable history as + seen when you run the following:: + + $ bitbake -e + +- ``d.delVar('VARNAME')`` and + ``d.setVar('VARNAME', None)`` result in the variable and all + of its overrides being cleared out. Before the change, only the + non-overridden values were cleared. + +.. _migration-2.0-shell-message-function-changes: + +Shell Message Function Changes +------------------------------ + +The shell versions of the BitBake message functions (i.e. ``bbdebug``, +``bbnote``, ``bbwarn``, ``bbplain``, ``bberror``, and ``bbfatal``) are +now connected through to their BitBake equivalents ``bb.debug()``, +``bb.note()``, ``bb.warn()``, ``bb.plain()``, ``bb.error()``, and +``bb.fatal()``, respectively. Thus, those message functions that you +would expect to be printed by the BitBake UI are now actually printed. +In practice, this change means two things: + +- If you now see messages on the console that you did not previously + see as a result of this change, you might need to clean up the calls + to ``bbwarn``, ``bberror``, and so forth. Or, you might want to + simply remove the calls. + +- The ``bbfatal`` message function now suppresses the full error log in + the UI, which means any calls to ``bbfatal`` where you still wish to + see the full error log should be replaced by ``die`` or + ``bbfatal_log``. + +.. _migration-2.0-extra-development-debug-package-cleanup: + +Extra Development/Debug Package Cleanup +--------------------------------------- + +The following recipes have had extra ``dev/dbg`` packages removed: + +- ``acl`` + +- ``apmd`` + +- ``aspell`` + +- ``attr`` + +- ``augeas`` + +- ``bzip2`` + +- ``cogl`` + +- ``curl`` + +- ``elfutils`` + +- ``gcc-target`` + +- ``libgcc`` + +- ``libtool`` + +- ``libxmu`` + +- ``opkg`` + +- ``pciutils`` + +- ``rpm`` + +- ``sysfsutils`` + +- ``tiff`` + +- ``xz`` + +All of the above recipes now conform to the standard packaging scheme +where a single ``-dev``, ``-dbg``, and ``-staticdev`` package exists per +recipe. + +.. _migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core: + +Recipe Maintenance Tracking Data Moved to OE-Core +------------------------------------------------- + +Maintenance tracking data for recipes that was previously part of +``meta-yocto`` has been moved to :term:`OpenEmbedded-Core (OE-Core)`. The change +includes ``package_regex.inc`` and ``distro_alias.inc``, which are +typically enabled when using the ``distrodata`` class. Additionally, the +contents of ``upstream_tracking.inc`` has now been split out to the +relevant recipes. + +.. _migration-2.0-automatic-stale-sysroot-file-cleanup: + +Automatic Stale Sysroot File Cleanup +------------------------------------ + +Stale files from recipes that no longer exist in the current +configuration are now automatically removed from sysroot as well as +removed from any other place managed by shared state. This automatic +cleanup means that the build system now properly handles situations such +as renaming the build system side of recipes, removal of layers from +``bblayers.conf``, and :term:`DISTRO_FEATURES` +changes. + +Additionally, work directories for old versions of recipes are now +pruned. If you wish to disable pruning old work directories, you can set +the following variable in your configuration:: + + SSTATE_PRUNE_OBSOLETEWORKDIR = "0" + +.. _migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source: + +``linux-yocto`` Kernel Metadata Repository Now Split from Source +---------------------------------------------------------------- + +The ``linux-yocto`` tree has up to now been a combined set of kernel +changes and configuration (meta) data carried in a single tree. While +this format is effective at keeping kernel configuration and source +modifications synchronized, it is not always obvious to developers how +to manipulate the Metadata as compared to the source. + +Metadata processing has now been removed from the +:ref:`kernel-yocto ` class and the external +Metadata repository ``yocto-kernel-cache``, which has always been used +to seed the ``linux-yocto`` "meta" branch. This separate ``linux-yocto`` +cache repository is now the primary location for this data. Due to this +change, ``linux-yocto`` is no longer able to process combined trees. +Thus, if you need to have your own combined kernel repository, you must +do the split there as well and update your recipes accordingly. See the +``meta/recipes-kernel/linux/linux-yocto_4.1.bb`` recipe for an example. + +.. _migration-2.0-additional-qa-checks: + +Additional QA checks +-------------------- + +The following QA checks have been added: + +- Added a "host-user-contaminated" check for ownership issues for + packaged files outside of ``/home``. The check looks for files that + are incorrectly owned by the user that ran BitBake instead of owned + by a valid user in the target system. + +- Added an "invalid-chars" check for invalid (non-UTF8) characters in + recipe metadata variable values (i.e. + :term:`DESCRIPTION`, + :term:`SUMMARY`, :term:`LICENSE`, and + :term:`SECTION`). Some package managers do not support + these characters. + +- Added an "invalid-packageconfig" check for any options specified in + :term:`PACKAGECONFIG` that do not match any + :term:`PACKAGECONFIG` option defined for the recipe. + +.. _migration-2.0-miscellaneous: + +Miscellaneous Changes +--------------------- + +These additional changes exist: + +- ``gtk-update-icon-cache`` has been renamed to ``gtk-icon-utils``. + +- The ``tools-profile`` :term:`IMAGE_FEATURES` + item as well as its corresponding packagegroup and + ``packagegroup-core-tools-profile`` no longer bring in ``oprofile``. + Bringing in ``oprofile`` was originally added to aid compilation on + resource-constrained targets. However, this aid has not been widely + used and is not likely to be used going forward due to the more + powerful target platforms and the existence of better + cross-compilation tools. + +- The :term:`IMAGE_FSTYPES` variable's default + value now specifies ``ext4`` instead of ``ext3``. + +- All support for the ``PRINC`` variable has been removed. + +- The ``packagegroup-core-full-cmdline`` packagegroup no longer brings + in ``lighttpd`` due to the fact that bringing in ``lighttpd`` is not + really in line with the packagegroup's purpose, which is to add full + versions of command-line tools that by default are provided by + ``busybox``. + + diff --git a/poky/documentation/migration-guides/migration-2.1.rst b/poky/documentation/migration-guides/migration-2.1.rst new file mode 100644 index 000000000..6c5ed965d --- /dev/null +++ b/poky/documentation/migration-guides/migration-2.1.rst @@ -0,0 +1,432 @@ +Release 2.1 (krogoth) +===================== + +This section provides migration information for moving to the Yocto +Project 2.1 Release (codename "krogoth") from the prior release. + +.. _migration-2.1-variable-expansion-in-python-functions: + +Variable Expansion in Python Functions +-------------------------------------- + +Variable expressions, such as ``${VARNAME}`` no longer expand +automatically within Python functions. Suppressing expansion was done to +allow Python functions to construct shell scripts or other code for +situations in which you do not want such expressions expanded. For any +existing code that relies on these expansions, you need to change the +expansions to expand the value of individual variables through +``d.getVar()``. To alternatively expand more complex expressions, use +``d.expand()``. + +.. _migration-2.1-overrides-must-now-be-lower-case: + +Overrides Must Now be Lower-Case +-------------------------------- + +The convention for overrides has always been for them to be lower-case +characters. This practice is now a requirement as BitBake's datastore +now assumes lower-case characters in order to give a slight performance +boost during parsing. In practical terms, this requirement means that +anything that ends up in :term:`OVERRIDES` must now +appear in lower-case characters (e.g. values for :term:`MACHINE`, +:term:`TARGET_ARCH`, :term:`DISTRO`, and also recipe names if +``_pn-``\ recipename overrides are to be effective). + +.. _migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory: + +Expand Parameter to ``getVar()`` and ``getVarFlag()`` is Now Mandatory +---------------------------------------------------------------------- + +The expand parameter to ``getVar()`` and ``getVarFlag()`` previously +defaulted to False if not specified. Now, however, no default exists so +one must be specified. You must change any ``getVar()`` calls that do +not specify the final expand parameter to calls that do specify the +parameter. You can run the following ``sed`` command at the base of a +layer to make this change:: + + sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *` + sed -e 's:\(\.getVarFlag([^,()]*,[^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *` + +.. note:: + + The reason for this change is that it prepares the way for changing + the default to True in a future Yocto Project release. This future + change is a much more sensible default than False. However, the + change needs to be made gradually as a sudden change of the default + would potentially cause side-effects that would be difficult to + detect. + +.. _migration-2.1-makefile-environment-changes: + +Makefile Environment Changes +---------------------------- + +:term:`EXTRA_OEMAKE` now defaults to "" instead of +"-e MAKEFLAGS=". Setting ``EXTRA_OEMAKE`` to "-e MAKEFLAGS=" by default +was a historical accident that has required many classes (e.g. +``autotools``, ``module``) and recipes to override this default in order +to work with sensible build systems. When upgrading to the release, you +must edit any recipe that relies upon this old default by either setting +``EXTRA_OEMAKE`` back to "-e MAKEFLAGS=" or by explicitly setting any +required variable value overrides using :term:`EXTRA_OEMAKE`, which is +typically only needed when a Makefile sets a default value for a +variable that is inappropriate for cross-compilation using the "=" +operator rather than the "?=" operator. + +.. _migration-2.1-libexecdir-reverted-to-prefix-libexec: + +``libexecdir`` Reverted to ``${prefix}/libexec`` +------------------------------------------------ + +The use of ``${libdir}/${BPN}`` as ``libexecdir`` is different as +compared to all other mainstream distributions, which either uses +``${prefix}/libexec`` or ``${libdir}``. The use is also contrary to the +GNU Coding Standards (i.e. +https://www.gnu.org/prep/standards/html_node/Directory-Variables.html) +that suggest ``${prefix}/libexec`` and also notes that any +package-specific nesting should be done by the package itself. Finally, +having ``libexecdir`` change between recipes makes it very difficult for +different recipes to invoke binaries that have been installed into +``libexecdir``. The Filesystem Hierarchy Standard (i.e. +https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html) now +recognizes the use of ``${prefix}/libexec/``, giving distributions the +choice between ``${prefix}/lib`` or ``${prefix}/libexec`` without +breaking FHS. + +.. _migration-2.1-ac-cv-sizeof-off-t-no-longer-cached-in-site-files: + +``ac_cv_sizeof_off_t`` is No Longer Cached in Site Files +-------------------------------------------------------- + +For recipes inheriting the :ref:`autotools ` +class, ``ac_cv_sizeof_off_t`` is no longer cached in the site files for +``autoconf``. The reason for this change is because the +``ac_cv_sizeof_off_t`` value is not necessarily static per architecture +as was previously assumed. Rather, the value changes based on whether +large file support is enabled. For most software that uses ``autoconf``, +this change should not be a problem. However, if you have a recipe that +bypasses the standard :ref:`ref-tasks-configure` task +from the ``autotools`` class and the software the recipe is building +uses a very old version of ``autoconf``, the recipe might be incapable +of determining the correct size of ``off_t`` during ``do_configure``. + +The best course of action is to patch the software as necessary to allow +the default implementation from the ``autotools`` class to work such +that ``autoreconf`` succeeds and produces a working configure script, +and to remove the overridden ``do_configure`` task such that the default +implementation does get used. + +.. _migration-2.1-image-generation-split-out-from-filesystem-generation: + +Image Generation is Now Split Out from Filesystem Generation +------------------------------------------------------------ + +Previously, for image recipes the :ref:`ref-tasks-rootfs` +task assembled the filesystem and then from that filesystem generated +images. With this Yocto Project release, image generation is split into +separate :ref:`ref-tasks-image` tasks for clarity both in +operation and in the code. + +For most cases, this change does not present any problems. However, if +you have made customizations that directly modify the ``do_rootfs`` task +or that mention ``do_rootfs``, you might need to update those changes. +In particular, if you had added any tasks after ``do_rootfs``, you +should make edits so that those tasks are after the +:ref:`ref-tasks-image-complete` task rather than +after ``do_rootfs`` so that your added tasks run at the correct +time. + +A minor part of this restructuring is that the post-processing +definitions and functions have been moved from the +:ref:`image ` class to the +:ref:`rootfs-postcommands ` class. Functionally, +however, they remain unchanged. + +.. _migration-2.1-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed in the 2.1 release: + +- ``gcc`` version 4.8: Versions 4.9 and 5.3 remain. + +- ``qt4``: All support for Qt 4.x has been moved out to a separate + ``meta-qt4`` layer because Qt 4 is no longer supported upstream. + +- ``x11vnc``: Moved to the ``meta-oe`` layer. + +- ``linux-yocto-3.14``: No longer supported. + +- ``linux-yocto-3.19``: No longer supported. + +- ``libjpeg``: Replaced by the ``libjpeg-turbo`` recipe. + +- ``pth``: Became obsolete. + +- ``liboil``: Recipe is no longer needed and has been moved to the + ``meta-multimedia`` layer. + +- ``gtk-theme-torturer``: Recipe is no longer needed and has been moved + to the ``meta-gnome`` layer. + +- ``gnome-mime-data``: Recipe is no longer needed and has been moved to + the ``meta-gnome`` layer. + +- ``udev``: Replaced by the ``eudev`` recipe for compatibility when + using ``sysvinit`` with newer kernels. + +- ``python-pygtk``: Recipe became obsolete. + +- ``adt-installer``: Recipe became obsolete. See the + ":ref:`migration-guides/migration-2.1:adt removed`" section for more information. + +.. _migration-2.1-class-changes: + +Class Changes +------------- + +The following classes have changed: + +- ``autotools_stage``: Removed because the + :ref:`autotools ` class now provides its + functionality. Recipes that inherited from ``autotools_stage`` should + now inherit from ``autotools`` instead. + +- ``boot-directdisk``: Merged into the ``image-vm`` class. The + ``boot-directdisk`` class was rarely directly used. Consequently, + this change should not cause any issues. + +- ``bootimg``: Merged into the + :ref:`image-live ` class. The ``bootimg`` + class was rarely directly used. Consequently, this change should not + cause any issues. + +- ``packageinfo``: Removed due to its limited use by the Hob UI, which + has itself been removed. + +.. _migration-2.1-build-system-ui-changes: + +Build System User Interface Changes +----------------------------------- + +The following changes have been made to the build system user interface: + +- *Hob GTK+-based UI*: Removed because it is unmaintained and based on + the outdated GTK+ 2 library. The Toaster web-based UI is much more + capable and is actively maintained. See the + ":ref:`toaster-manual/setup-and-use:using the toaster web interface`" + section in the Toaster User Manual for more information on this + interface. + +- *"puccho" BitBake UI*: Removed because is unmaintained and no longer + useful. + +.. _migration-2.1-adt-removed: + +ADT Removed +----------- + +The Application Development Toolkit (ADT) has been removed because its +functionality almost completely overlapped with the :ref:`standard +SDK ` and the +:ref:`extensible SDK `. For +information on these SDKs and how to build and use them, see the +:doc:`/sdk-manual/index` manual. + +.. note:: + + The Yocto Project Eclipse IDE Plug-in is still supported and is not + affected by this change. + +.. _migration-2.1-poky-reference-distribution-changes: + +Poky Reference Distribution Changes +----------------------------------- + +The following changes have been made for the Poky distribution: + +- The ``meta-yocto`` layer has been renamed to ``meta-poky`` to better + match its purpose, which is to provide the Poky reference + distribution. The ``meta-yocto-bsp`` layer retains its original name + since it provides reference machines for the Yocto Project and it is + otherwise unrelated to Poky. References to ``meta-yocto`` in your + ``conf/bblayers.conf`` should automatically be updated, so you should + not need to change anything unless you are relying on this naming + elsewhere. + +- The :ref:`uninative ` class is now enabled + by default in Poky. This class attempts to isolate the build system + from the host distribution's C library and makes re-use of native + shared state artifacts across different host distributions practical. + With this class enabled, a tarball containing a pre-built C library + is downloaded at the start of the build. + + The ``uninative`` class is enabled through the + ``meta/conf/distro/include/yocto-uninative.inc`` file, which for + those not using the Poky distribution, can include to easily enable + the same functionality. + + Alternatively, if you wish to build your own ``uninative`` tarball, + you can do so by building the ``uninative-tarball`` recipe, making it + available to your build machines (e.g. over HTTP/HTTPS) and setting a + similar configuration as the one set by ``yocto-uninative.inc``. + +- Static library generation, for most cases, is now disabled by default + in the Poky distribution. Disabling this generation saves some build + time as well as the size used for build output artifacts. + + Disabling this library generation is accomplished through a + ``meta/conf/distro/include/no-static-libs.inc``, which for those not + using the Poky distribution can easily include to enable the same + functionality. + + Any recipe that needs to opt-out of having the "--disable-static" + option specified on the configure command line either because it is + not a supported option for the configure script or because static + libraries are needed should set the following variable:: + + DISABLE_STATIC = "" + +- The separate ``poky-tiny`` distribution now uses the musl C library + instead of a heavily pared down ``glibc``. Using musl results in a + smaller distribution and facilitates much greater maintainability + because musl is designed to have a small footprint. + + If you have used ``poky-tiny`` and have customized the ``glibc`` + configuration you will need to redo those customizations with musl + when upgrading to the new release. + +.. _migration-2.1-packaging-changes: + +Packaging Changes +----------------- + +The following changes have been made to packaging: + +- The ``runuser`` and ``mountpoint`` binaries, which were previously in + the main ``util-linux`` package, have been split out into the + ``util-linux-runuser`` and ``util-linux-mountpoint`` packages, + respectively. + +- The ``python-elementtree`` package has been merged into the + ``python-xml`` package. + +.. _migration-2.1-tuning-file-changes: + +Tuning File Changes +------------------- + +The following changes have been made to the tuning files: + +- The "no-thumb-interwork" tuning feature has been dropped from the ARM + tune include files. Because interworking is required for ARM EABI, + attempting to disable it through a tuning feature no longer makes + sense. + + .. note:: + + Support for ARM OABI was deprecated in gcc 4.7. + +- The ``tune-cortexm*.inc`` and ``tune-cortexr4.inc`` files have been + removed because they are poorly tested. Until the OpenEmbedded build + system officially gains support for CPUs without an MMU, these tuning + files would probably be better maintained in a separate layer if + needed. + +.. _migration-2.1-supporting-gobject-introspection: + +Supporting GObject Introspection +-------------------------------- + +This release supports generation of GLib Introspective Repository (GIR) +files through GObject introspection, which is the standard mechanism for +accessing GObject-based software from runtime environments. You can +enable, disable, and test the generation of this data. See the +":ref:`dev-manual/common-tasks:enabling gobject introspection support`" +section in the Yocto Project Development Tasks Manual for more +information. + +.. _migration-2.1-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +These additional changes exist: + +- The minimum Git version has been increased to 1.8.3.1. If your host + distribution does not provide a sufficiently recent version, you can + install the buildtools, which will provide it. See the + :ref:`ref-manual/system-requirements:required git, tar, python and gcc versions` + section for more information on the buildtools tarball. + +- The buggy and incomplete support for the RPM version 4 package + manager has been removed. The well-tested and maintained support for + RPM version 5 remains. + +- Previously, the following list of packages were removed if + package-management was not in + :term:`IMAGE_FEATURES`, regardless of any + dependencies:: + + update-rc.d + base-passwd + shadow + update-alternatives + run-postinsts + + With the Yocto Project 2.1 release, these packages are + only removed if "read-only-rootfs" is in :term:`IMAGE_FEATURES`, since + they might still be needed for a read-write image even in the absence + of a package manager (e.g. if users need to be added, modified, or + removed at runtime). + +- The + :ref:`devtool modify ` + command now defaults to extracting the source since that is most + commonly expected. The "-x" or "--extract" options are now no-ops. If + you wish to provide your own existing source tree, you will now need + to specify either the "-n" or "--no-extract" options when running + ``devtool modify``. + +- If the formfactor for a machine is either not supplied or does not + specify whether a keyboard is attached, then the default is to assume + a keyboard is attached rather than assume no keyboard. This change + primarily affects the Sato UI. + +- The ``.debug`` directory packaging is now automatic. If your recipe + builds software that installs binaries into directories other than + the standard ones, you no longer need to take care of setting + ``FILES_${PN}-dbg`` to pick up the resulting ``.debug`` directories + as these directories are automatically found and added. + +- Inaccurate disk and CPU percentage data has been dropped from + ``buildstats`` output. This data has been replaced with + ``getrusage()`` data and corrected IO statistics. You will probably + need to update any custom code that reads the ``buildstats`` data. + +- The ``meta/conf/distro/include/package_regex.inc`` is now deprecated. + The contents of this file have been moved to individual recipes. + + .. note:: + + Because this file will likely be removed in a future Yocto Project + release, it is suggested that you remove any references to the + file that might be in your configuration. + +- The ``v86d/uvesafb`` has been removed from the ``genericx86`` and + ``genericx86-64`` reference machines, which are provided by the + ``meta-yocto-bsp`` layer. Most modern x86 boards do not rely on this + file and it only adds kernel error messages during startup. If you do + still need to support ``uvesafb``, you can simply add ``v86d`` to + your image. + +- Build sysroot paths are now removed from debug symbol files. Removing + these paths means that remote GDB using an unstripped build system + sysroot will no longer work (although this was never documented to + work). The supported method to accomplish something similar is to set + ``IMAGE_GEN_DEBUGFS`` to "1", which will generate a companion debug + image containing unstripped binaries and associated debug sources + alongside the image. + + diff --git a/poky/documentation/migration-guides/migration-2.2.rst b/poky/documentation/migration-guides/migration-2.2.rst new file mode 100644 index 000000000..d6dacdf34 --- /dev/null +++ b/poky/documentation/migration-guides/migration-2.2.rst @@ -0,0 +1,457 @@ +Release 2.2 (morty) +=================== + +This section provides migration information for moving to the Yocto +Project 2.2 Release (codename "morty") from the prior release. + +.. _migration-2.2-minimum-kernel-version: + +Minimum Kernel Version +---------------------- + +The minimum kernel version for the target system and for SDK is now +3.2.0, due to the upgrade to ``glibc 2.24``. Specifically, for +AArch64-based targets the version is 3.14. For Nios II-based targets, +the minimum kernel version is 3.19. + +.. note:: + + For x86 and x86_64, you can reset :term:`OLDEST_KERNEL` + to anything down to 2.6.32 if desired. + +.. _migration-2.2-staging-directories-in-sysroot-simplified: + +Staging Directories in Sysroot Has Been Simplified +-------------------------------------------------- + +The way directories are staged in sysroot has been simplified and +introduces the new :term:`SYSROOT_DIRS`, +:term:`SYSROOT_DIRS_NATIVE`, and +:term:`SYSROOT_DIRS_BLACKLIST`. See the +:oe_lists:`v2 patch series on the OE-Core Mailing List +` +for additional information. + +.. _migration-2.2-removal-of-old-images-from-tmp-deploy-now-enabled: + +Removal of Old Images and Other Files in ``tmp/deploy`` Now Enabled +------------------------------------------------------------------- + +Removal of old images and other files in ``tmp/deploy/`` is now enabled +by default due to a new staging method used for those files. As a result +of this change, the ``RM_OLD_IMAGE`` variable is now redundant. + +.. _migration-2.2-python-changes: + +Python Changes +-------------- + +The following changes for Python occurred: + +.. _migration-2.2-bitbake-now-requires-python-3.4: + +BitBake Now Requires Python 3.4+ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BitBake requires Python 3.4 or greater. + +.. _migration-2.2-utf-8-locale-required-on-build-host: + +UTF-8 Locale Required on Build Host +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A UTF-8 locale is required on the build host due to Python 3. Since +C.UTF-8 is not a standard, the default is en_US.UTF-8. + +.. _migration-2.2-metadata-now-must-use-python-3-syntax: + +Metadata Must Now Use Python 3 Syntax +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The metadata is now required to use Python 3 syntax. For help preparing +metadata, see any of the many Python 3 porting guides available. +Alternatively, you can reference the conversion commits for Bitbake and +you can use :term:`OpenEmbedded-Core (OE-Core)` as a guide for changes. Following are +particular areas of interest: + + - subprocess command-line pipes needing locale decoding + + - the syntax for octal values changed + + - the ``iter*()`` functions changed name + + - iterators now return views, not lists + + - changed names for Python modules + +.. _migration-2.2-target-python-recipes-switched-to-python-3: + +Target Python Recipes Switched to Python 3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Most target Python recipes have now been switched to Python 3. +Unfortunately, systems using RPM as a package manager and providing +online package-manager support through SMART still require Python 2. + +.. note:: + + Python 2 and recipes that use it can still be built for the target as + with previous versions. + +.. _migration-2.2-buildtools-tarball-includes-python-3: + +``buildtools-tarball`` Includes Python 3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``buildtools-tarball`` now includes Python 3. + +.. _migration-2.2-uclibc-replaced-by-musl: + +uClibc Replaced by musl +----------------------- + +uClibc has been removed in favor of musl. Musl has matured, is better +maintained, and is compatible with a wider range of applications as +compared to uClibc. + +.. _migration-2.2-B-no-longer-default-working-directory-for-tasks: + +``${B}`` No Longer Default Working Directory for Tasks +------------------------------------------------------ + +``${``\ :term:`B`\ ``}`` is no longer the default working +directory for tasks. Consequently, any custom tasks you define now need +to either have the +``[``\ :ref:`dirs `\ ``]`` flag +set, or the task needs to change into the appropriate working directory +manually (e.g using ``cd`` for a shell task). + +.. note:: + + The preferred method is to use the + [dirs] + flag. + +.. _migration-2.2-runqemu-ported-to-python: + +``runqemu`` Ported to Python +---------------------------- + +``runqemu`` has been ported to Python and has changed behavior in some +cases. Previous usage patterns continue to be supported. + +The new ``runqemu`` is a Python script. Machine knowledge is no longer +hardcoded into ``runqemu``. You can choose to use the ``qemuboot`` +configuration file to define the BSP's own arguments and to make it +bootable with ``runqemu``. If you use a configuration file, use the +following form:: + + image-name-machine.qemuboot.conf + +The configuration file +enables fine-grained tuning of options passed to QEMU without the +``runqemu`` script hard-coding any knowledge about different machines. +Using a configuration file is particularly convenient when trying to use +QEMU with machines other than the ``qemu*`` machines in +:term:`OpenEmbedded-Core (OE-Core)`. The ``qemuboot.conf`` file is generated by the +``qemuboot`` class when the root filesystem is being build (i.e. build +rootfs). QEMU boot arguments can be set in BSP's configuration file and +the ``qemuboot`` class will save them to ``qemuboot.conf``. + +If you want to use ``runqemu`` without a configuration file, use the +following command form:: + + $ runqemu machine rootfs kernel [options] + +Supported machines are as follows: + + - qemuarm + - qemuarm64 + - qemux86 + - qemux86-64 + - qemuppc + - qemumips + - qemumips64 + - qemumipsel + - qemumips64el + +Consider the +following example, which uses the ``qemux86-64`` machine, provides a +root filesystem, provides an image, and uses the ``nographic`` option:: + + $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tmp/deploy/images/qemux86-64/bzImage nographic + +Following is a list of variables that can be set in configuration files +such as ``bsp.conf`` to enable the BSP to be booted by ``runqemu``: + +.. note:: + + "QB" means "QEMU Boot". + +:: + + QB_SYSTEM_NAME: QEMU name (e.g. "qemu-system-i386") + QB_OPT_APPEND: Options to append to QEMU (e.g. "-show-cursor") + QB_DEFAULT_KERNEL: Default kernel to boot (e.g. "bzImage") + QB_DEFAULT_FSTYPE: Default FSTYPE to boot (e.g. "ext4") + QB_MEM: Memory (e.g. "-m 512") + QB_MACHINE: QEMU machine (e.g. "-machine virt") + QB_CPU: QEMU cpu (e.g. "-cpu qemu32") + QB_CPU_KVM: Similar to QB_CPU except used for kvm support (e.g. "-cpu kvm64") + QB_KERNEL_CMDLINE_APPEND: Options to append to the kernel's -append + option (e.g. "console=ttyS0 console=tty") + QB_DTB: QEMU dtb name + QB_AUDIO_DRV: QEMU audio driver (e.g. "alsa", set it when support audio) + QB_AUDIO_OPT: QEMU audio option (e.g. "-soundhw ac97,es1370"), which is used + when QB_AUDIO_DRV is set. + QB_KERNEL_ROOT: Kernel's root (e.g. /dev/vda) + QB_TAP_OPT: Network option for 'tap' mode (e.g. + "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-device,netdev=net0"). + runqemu will replace "@TAP@" with the one that is used, such as tap0, tap1 ... + QB_SLIRP_OPT: Network option for SLIRP mode (e.g. "-netdev user,id=net0 -device virtio-net-device,netdev=net0") + QB_ROOTFS_OPT: Used as rootfs (e.g. + "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"). + runqemu will replace "@ROOTFS@" with the one which is used, such as + core-image-minimal-qemuarm64.ext4. + QB_SERIAL_OPT: Serial port (e.g. "-serial mon:stdio") + QB_TCPSERIAL_OPT: tcp serial port option (e.g. + " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" + runqemu will replace "@PORT@" with the port number which is used. + +To use ``runqemu``, set :term:`IMAGE_CLASSES` as +follows and run ``runqemu``: + +.. note:: + + For command-line syntax, use ``runqemu help``. + +:: + + IMAGE_CLASSES += "qemuboot" + +.. _migration-2.2-default-linker-hash-style-changed: + +Default Linker Hash Style Changed +--------------------------------- + +The default linker hash style for ``gcc-cross`` is now "sysv" in order +to catch recipes that are building software without using the +OpenEmbedded :term:`LDFLAGS`. This change could result in +seeing some "No GNU_HASH in the elf binary" QA issues when building such +recipes. You need to fix these recipes so that they use the expected +:term:`LDFLAGS`. Depending on how the software is built, the build system +used by the software (e.g. a Makefile) might need to be patched. +However, sometimes making this fix is as simple as adding the following +to the recipe:: + + TARGET_CC_ARCH += "${LDFLAGS}" + +.. _migration-2.2-kernel-image-base-name-no-longer-uses-kernel-imagetype: + +``KERNEL_IMAGE_BASE_NAME`` no Longer Uses ``KERNEL_IMAGETYPE`` +-------------------------------------------------------------- + +The ``KERNEL_IMAGE_BASE_NAME`` variable no longer uses the +:term:`KERNEL_IMAGETYPE` variable to create the +image's base name. Because the OpenEmbedded build system can now build +multiple kernel image types, this part of the kernel image base name as +been removed leaving only the following:: + + KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" + +If you have recipes or +classes that use ``KERNEL_IMAGE_BASE_NAME`` directly, you might need to +update the references to ensure they continue to work. + +.. _migration-2.2-imgdeploydir-replaces-deploy-dir-image-for-most-use-cases: + +``IMGDEPLOYDIR`` Replaces ``DEPLOY_DIR_IMAGE`` for Most Use Cases +----------------------------------------------------------------- + +The :term:`IMGDEPLOYDIR` variable was introduced to allow sstate caching of +image creation results. Image recipes defining custom :term:`IMAGE_CMD` or +doing postprocessing on the generated images need to be adapted to use +``IMGDEPLOYDIR`` instead of :term:`DEPLOY_DIR_IMAGE`. ``IMAGE_MANIFEST`` +creation and symlinking of the most recent image file will fail otherwise. + +.. _migration-2.2-bitbake-changes: + +BitBake Changes +--------------- + +The following changes took place for BitBake: + +- The "goggle" UI and standalone image-writer tool have been removed as + they both require GTK+ 2.0 and were not being maintained. + +- The Perforce fetcher now supports :term:`SRCREV` for + specifying the source revision to use, be it + ``${``\ :term:`AUTOREV`\ ``}``, changelist number, + p4date, or label, in preference to separate + :term:`SRC_URI` parameters to specify these. This + change is more in-line with how the other fetchers work for source + control systems. Recipes that fetch from Perforce will need to be + updated to use :term:`SRCREV` in place of specifying the source revision + within ``SRC_URI``. + +- Some of BitBake's internal code structures for accessing the recipe + cache needed to be changed to support the new multi-configuration + functionality. These changes will affect external tools that use + BitBake's tinfoil module. For information on these changes, see the + changes made to the scripts supplied with OpenEmbedded-Core: + :yocto_git:`1 ` + and + :yocto_git:`2 `. + +- The task management code has been rewritten to avoid using ID + indirection in order to improve performance. This change is unlikely + to cause any problems for most users. However, the setscene + verification function as pointed to by + ``BB_SETSCENE_VERIFY_FUNCTION`` needed to change signature. + Consequently, a new variable named ``BB_SETSCENE_VERIFY_FUNCTION2`` + has been added allowing multiple versions of BitBake to work with + suitably written metadata, which includes OpenEmbedded-Core and Poky. + Anyone with custom BitBake task scheduler code might also need to + update the code to handle the new structure. + +.. _migration-2.2-swabber-has-been-removed: + +Swabber has Been Removed +------------------------ + +Swabber, a tool that was intended to detect host contamination in the +build process, has been removed, as it has been unmaintained and unused +for some time and was never particularly effective. The OpenEmbedded +build system has since incorporated a number of mechanisms including +enhanced QA checks that mean that there is less of a need for such a +tool. + +.. _migration-2.2-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed: + +- ``augeas``: No longer needed and has been moved to ``meta-oe``. + +- ``directfb``: Unmaintained and has been moved to ``meta-oe``. + +- ``gcc``: Removed 4.9 version. Versions 5.4 and 6.2 are still present. + +- ``gnome-doc-utils``: No longer needed. + +- ``gtk-doc-stub``: Replaced by ``gtk-doc``. + +- ``gtk-engines``: No longer needed and has been moved to + ``meta-gnome``. + +- ``gtk-sato-engine``: Became obsolete. + +- ``libglade``: No longer needed and has been moved to ``meta-oe``. + +- ``libmad``: Unmaintained and functionally replaced by ``libmpg123``. + ``libmad`` has been moved to ``meta-oe``. + +- ``libowl``: Became obsolete. + +- ``libxsettings-client``: No longer needed. + +- ``oh-puzzles``: Functionally replaced by ``puzzles``. + +- ``oprofileui``: Became obsolete. OProfile has been largely supplanted + by perf. + +- ``packagegroup-core-directfb.bb``: Removed. + +- ``core-image-directfb.bb``: Removed. + +- ``pointercal``: No longer needed and has been moved to ``meta-oe``. + +- ``python-imaging``: No longer needed and moved to ``meta-python`` + +- ``python-pyrex``: No longer needed and moved to ``meta-python``. + +- ``sato-icon-theme``: Became obsolete. + +- ``swabber-native``: Swabber has been removed. See the :ref:`entry on + Swabber `. + +- ``tslib``: No longer needed and has been moved to ``meta-oe``. + +- ``uclibc``: Removed in favor of musl. + +- ``xtscal``: No longer needed and moved to ``meta-oe`` + +.. _migration-2.2-removed-classes: + +Removed Classes +--------------- + +The following classes have been removed: + +- ``distutils-native-base``: No longer needed. + +- ``distutils3-native-base``: No longer needed. + +- ``sdl``: Only set :term:`DEPENDS` and + :term:`SECTION`, which are better set within the + recipe instead. + +- ``sip``: Mostly unused. + +- ``swabber``: See the :ref:`entry on + Swabber `. + +.. _migration-2.2-minor-packaging-changes: + +Minor Packaging Changes +----------------------- + +The following minor packaging changes have occurred: + +- ``grub``: Split ``grub-editenv`` into its own package. + +- ``systemd``: Split container and vm related units into a new package, + systemd-container. + +- ``util-linux``: Moved ``prlimit`` to a separate + ``util-linux-prlimit`` package. + +.. _migration-2.2-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following miscellaneous changes have occurred: + +- ``package_regex.inc``: Removed because the definitions + ``package_regex.inc`` previously contained have been moved to their + respective recipes. + +- Both ``devtool add`` and ``recipetool create`` now use a fixed + :term:`SRCREV` by default when fetching from a Git + repository. You can override this in either case to use + ``${``\ :term:`AUTOREV`\ ``}`` instead by using the + ``-a`` or ``--autorev`` command-line option + +- ``distcc``: GTK+ UI is now disabled by default. + +- ``packagegroup-core-tools-testapps``: Removed Piglit. + +- ``image.bbclass``: Renamed COMPRESS(ION) to CONVERSION. This change + means that ``COMPRESSIONTYPES``, ``COMPRESS_DEPENDS`` and + ``COMPRESS_CMD`` are deprecated in favor of ``CONVERSIONTYPES``, + ``CONVERSION_DEPENDS`` and ``CONVERSION_CMD``. The ``COMPRESS*`` + variable names will still work in the 2.2 release but metadata that + does not need to be backwards-compatible should be changed to use the + new names as the ``COMPRESS*`` ones will be removed in a future + release. + +- ``gtk-doc``: A full version of ``gtk-doc`` is now made available. + However, some old software might not be capable of using the current + version of ``gtk-doc`` to build documentation. You need to change + recipes that build such software so that they explicitly disable + building documentation with ``gtk-doc``. + + diff --git a/poky/documentation/migration-guides/migration-2.3.rst b/poky/documentation/migration-guides/migration-2.3.rst new file mode 100644 index 000000000..886d579f9 --- /dev/null +++ b/poky/documentation/migration-guides/migration-2.3.rst @@ -0,0 +1,517 @@ +Release 2.3 (pyro) +================== + +This section provides migration information for moving to the Yocto +Project 2.3 Release (codename "pyro") from the prior release. + +.. _migration-2.3-recipe-specific-sysroots: + +Recipe-specific Sysroots +------------------------ + +The OpenEmbedded build system now uses one sysroot per recipe to resolve +long-standing issues with configuration script auto-detection of +undeclared dependencies. Consequently, you might find that some of your +previously written custom recipes are missing declared dependencies, +particularly those dependencies that are incidentally built earlier in a +typical build process and thus are already likely to be present in the +shared sysroot in previous releases. + +Consider the following: + +- *Declare Build-Time Dependencies:* Because of this new feature, you + must explicitly declare all build-time dependencies for your recipe. + If you do not declare these dependencies, they are not populated into + the sysroot for the recipe. + +- *Specify Pre-Installation and Post-Installation Native Tool + Dependencies:* You must specifically specify any special native tool + dependencies of ``pkg_preinst`` and ``pkg_postinst`` scripts by using + the :term:`PACKAGE_WRITE_DEPS` variable. + Specifying these dependencies ensures that these tools are available + if these scripts need to be run on the build host during the + :ref:`ref-tasks-rootfs` task. + + As an example, see the ``dbus`` recipe. You will see that this recipe + has a ``pkg_postinst`` that calls ``systemctl`` if "systemd" is in + :term:`DISTRO_FEATURES`. In the example, + ``systemd-systemctl-native`` is added to :term:`PACKAGE_WRITE_DEPS`, + which is also conditional on "systemd" being in ``DISTRO_FEATURES``. + +- Examine Recipes that Use ``SSTATEPOSTINSTFUNCS``: You need to + examine any recipe that uses ``SSTATEPOSTINSTFUNCS`` and determine + steps to take. + + Functions added to ``SSTATEPOSTINSTFUNCS`` are still called as they + were in previous Yocto Project releases. However, since a separate + sysroot is now being populated for every recipe and if existing + functions being called through ``SSTATEPOSTINSTFUNCS`` are doing + relocation, then you will need to change these to use a + post-installation script that is installed by a function added to + :term:`SYSROOT_PREPROCESS_FUNCS`. + + For an example, see the ``pixbufcache`` class in ``meta/classes/`` in + the :ref:`overview-manual/development-environment:yocto project source repositories`. + + .. note:: + + The + SSTATEPOSTINSTFUNCS + variable itself is now deprecated in favor of the + do_populate_sysroot[postfuncs] + task. Consequently, if you do still have any function or functions + that need to be called after the sysroot component is created for + a recipe, then you would be well advised to take steps to use a + post installation script as described previously. Taking these + steps prepares your code for when + SSTATEPOSTINSTFUNCS + is removed in a future Yocto Project release. + +- *Specify the Sysroot when Using Certain External Scripts:* Because + the shared sysroot is now gone, the scripts + ``oe-find-native-sysroot`` and ``oe-run-native`` have been changed + such that you need to specify which recipe's + :term:`STAGING_DIR_NATIVE` is used. + +.. note:: + + You can find more information on how recipe-specific sysroots work in + the ":ref:`ref-classes-staging`" section. + +.. _migration-2.3-path-variable: + +``PATH`` Variable +----------------- + +Within the environment used to run build tasks, the environment variable +``PATH`` is now sanitized such that the normal native binary paths +(``/bin``, ``/sbin``, ``/usr/bin`` and so forth) are removed and a +directory containing symbolic links linking only to the binaries from +the host mentioned in the :term:`HOSTTOOLS` and +:term:`HOSTTOOLS_NONFATAL` variables is added +to ``PATH``. + +Consequently, any native binaries provided by the host that you need to +call needs to be in one of these two variables at the configuration +level. + +Alternatively, you can add a native recipe (i.e. ``-native``) that +provides the binary to the recipe's :term:`DEPENDS` +value. + +.. note:: + + PATH + is not sanitized in the same way within ``devshell``. + If it were, you would have difficulty running host tools for + development and debugging within the shell. + +.. _migration-2.3-scripts: + +Changes to Scripts +------------------ + +The following changes to scripts took place: + +- ``oe-find-native-sysroot``: The usage for the + ``oe-find-native-sysroot`` script has changed to the following:: + + $ . oe-find-native-sysroot recipe + + You must now supply a recipe for recipe + as part of the command. Prior to the Yocto Project 2.3 release, it + was not necessary to provide the script with the command. + +- ``oe-run-native``: The usage for the ``oe-run-native`` script has + changed to the following:: + + $ oe-run-native native_recipe tool + + You must + supply the name of the native recipe and the tool you want to run as + part of the command. Prior to the Yocto Project 2.3 release, it + was not necessary to provide the native recipe with the command. + +- ``cleanup-workdir``: The ``cleanup-workdir`` script has been + removed because the script was found to be deleting files it should + not have, which lead to broken build trees. Rather than trying to + delete portions of :term:`TMPDIR` and getting it wrong, + it is recommended that you delete :term:`TMPDIR` and have it restored + from shared state (sstate) on subsequent builds. + +- ``wipe-sysroot``: The ``wipe-sysroot`` script has been removed as + it is no longer needed with recipe-specific sysroots. + +.. _migration-2.3-functions: + +Changes to Functions +-------------------- + +The previously deprecated ``bb.data.getVar()``, ``bb.data.setVar()``, +and related functions have been removed in favor of ``d.getVar()``, +``d.setVar()``, and so forth. + +You need to fix any references to these old functions. + +.. _migration-2.3-bitbake-changes: + +BitBake Changes +--------------- + +The following changes took place for BitBake: + +- *BitBake's Graphical Dependency Explorer UI Replaced:* BitBake's + graphical dependency explorer UI ``depexp`` was replaced by + ``taskexp`` ("Task Explorer"), which provides a graphical way of + exploring the ``task-depends.dot`` file. The data presented by Task + Explorer is much more accurate than the data that was presented by + ``depexp``. Being able to visualize the data is an often requested + feature as standard ``*.dot`` file viewers cannot usual cope with the + size of the ``task-depends.dot`` file. + +- *BitBake "-g" Output Changes:* The ``package-depends.dot`` and + ``pn-depends.dot`` files as previously generated using the + ``bitbake -g`` command have been removed. A ``recipe-depends.dot`` + file is now generated as a collapsed version of ``task-depends.dot`` + instead. + + The reason for this change is because ``package-depends.dot`` and + ``pn-depends.dot`` largely date back to a time before task-based + execution and do not take into account task-level dependencies + between recipes, which could be misleading. + +- *Mirror Variable Splitting Changes:* Mirror variables including + :term:`MIRRORS`, :term:`PREMIRRORS`, + and :term:`SSTATE_MIRRORS` can now separate + values entirely with spaces. Consequently, you no longer need "\\n". + BitBake looks for pairs of values, which simplifies usage. There + should be no change required to existing mirror variable values + themselves. + +- *The Subversion (SVN) Fetcher Uses an "ssh" Parameter and Not an + "rsh" Parameter:* The SVN fetcher now takes an "ssh" parameter + instead of an "rsh" parameter. This new optional parameter is used + when the "protocol" parameter is set to "svn+ssh". You can only use + the new parameter to specify the ``ssh`` program used by SVN. The SVN + fetcher passes the new parameter through the ``SVN_SSH`` environment + variable during the :ref:`ref-tasks-fetch` task. + + See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:subversion (svn) fetcher (\`\`svn://\`\`)`" + section in the BitBake + User Manual for additional information. + +- ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2`` + Removed: Because the mechanism they were part of is no longer + necessary with recipe-specific sysroots, the + ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2`` + variables have been removed. + +.. _migration-2.3-absolute-symlinks: + +Absolute Symbolic Links +----------------------- + +Absolute symbolic links (symlinks) within staged files are no longer +permitted and now trigger an error. Any explicit creation of symlinks +can use the ``lnr`` script, which is a replacement for ``ln -r``. + +If the build scripts in the software that the recipe is building are +creating a number of absolute symlinks that need to be corrected, you +can inherit ``relative_symlinks`` within the recipe to turn those +absolute symlinks into relative symlinks. + +.. _migration-2.3-gplv2-and-gplv3-moves: + +GPLv2 Versions of GPLv3 Recipes Moved +------------------------------------- + +Older GPLv2 versions of GPLv3 recipes have moved to a separate +``meta-gplv2`` layer. + +If you use :term:`INCOMPATIBLE_LICENSE` to +exclude GPLv3 or set :term:`PREFERRED_VERSION` +to substitute a GPLv2 version of a GPLv3 recipe, then you must add the +``meta-gplv2`` layer to your configuration. + +.. note:: + + You can ``find meta-gplv2`` layer in the OpenEmbedded layer index at + :oe_layer:`/meta-gplv2`. + +These relocated GPLv2 recipes do not receive the same level of +maintenance as other core recipes. The recipes do not get security fixes +and upstream no longer maintains them. In fact, the upstream community +is actively hostile towards people that use the old versions of the +recipes. Moving these recipes into a separate layer both makes the +different needs of the recipes clearer and clearly identifies the number +of these recipes. + +.. note:: + + The long-term solution might be to move to BSD-licensed replacements + of the GPLv3 components for those that need to exclude GPLv3-licensed + components from the target system. This solution will be investigated + for future Yocto Project releases. + +.. _migration-2.3-package-management-changes: + +Package Management Changes +-------------------------- + +The following package management changes took place: + +- Smart package manager is replaced by DNF package manager. Smart has + become unmaintained upstream, is not ported to Python 3.x. + Consequently, Smart needed to be replaced. DNF is the only feasible + candidate. + + The change in functionality is that the on-target runtime package + management from remote package feeds is now done with a different + tool that has a different set of command-line options. If you have + scripts that call the tool directly, or use its API, they need to be + fixed. + + For more information, see the `DNF + Documentation `__. + +- Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons: + + - DNF is API-incompatible with Rpm 5.x and porting it and + maintaining the port is non-trivial. + + - Rpm 5.x itself has limited maintenance upstream, and the Yocto + Project is one of the very few remaining users. + +- Berkeley DB 6.x is removed and Berkeley DB 5.x becomes the default: + + - Version 6.x of Berkeley DB has largely been rejected by the open + source community due to its AGPLv3 license. As a result, most + mainstream open source projects that require DB are still + developed and tested with DB 5.x. + + - In OE-core, the only thing that was requiring DB 6.x was Rpm 5.x. + Thus, no reason exists to continue carrying DB 6.x in OE-core. + +- ``createrepo`` is replaced with ``createrepo_c``. + + ``createrepo_c`` is the current incarnation of the tool that + generates remote repository metadata. It is written in C as compared + to ``createrepo``, which is written in Python. ``createrepo_c`` is + faster and is maintained. + +- Architecture-independent RPM packages are "noarch" instead of "all". + + This change was made because too many places in DNF/RPM4 stack + already make that assumption. Only the filenames and the architecture + tag has changed. Nothing else has changed in OE-core system, + particularly in the :ref:`allarch.bbclass ` + class. + +- Signing of remote package feeds using ``PACKAGE_FEED_SIGN`` is not + currently supported. This issue will be fully addressed in a future + Yocto Project release. See :yocto_bugs:`defect 11209 ` + for more information on a solution to package feed signing with RPM + in the Yocto Project 2.3 release. + +- OPKG now uses the libsolv backend for resolving package dependencies + by default. This is vastly superior to OPKG's internal ad-hoc solver + that was previously used. This change does have a small impact on + disk (around 500 KB) and memory footprint. + + .. note:: + + For further details on this change, see the + :yocto_git:`commit message `. + +.. _migration-2.3-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed: + +- ``linux-yocto 4.8``: Version 4.8 has been removed. Versions 4.1 + (LTSI), 4.4 (LTS), 4.9 (LTS/LTSI) and 4.10 are now present. + +- ``python-smartpm``: Functionally replaced by ``dnf``. + +- ``createrepo``: Replaced by the ``createrepo-c`` recipe. + +- ``rpmresolve``: No longer needed with the move to RPM 4 as RPM + itself is used instead. + +- ``gstreamer``: Removed the GStreamer Git version recipes as they + have been stale. ``1.10.``\ x recipes are still present. + +- ``alsa-conf-base``: Merged into ``alsa-conf`` since ``libasound`` + depended on both. Essentially, no way existed to install only one of + these. + +- ``tremor``: Moved to ``meta-multimedia``. Fixed-integer Vorbis + decoding is not needed by current hardware. Thus, GStreamer's ivorbis + plugin has been disabled by default eliminating the need for the + ``tremor`` recipe in :term:`OpenEmbedded-Core (OE-Core)`. + +- ``gummiboot``: Replaced by ``systemd-boot``. + +.. _migration-2.3-wic-changes: + +Wic Changes +----------- + +The following changes have been made to Wic: + +.. note:: + + For more information on Wic, see the + ":ref:`dev-manual/common-tasks:creating partitioned images using wic`" + section in the Yocto Project Development Tasks Manual. + +- *Default Output Directory Changed:* Wic's default output directory is + now the current directory by default instead of the unusual + ``/var/tmp/wic``. + + The "-o" and "--outdir" options remain unchanged and are used to + specify your preferred output directory if you do not want to use the + default directory. + +- *fsimage Plug-in Removed:* The Wic fsimage plugin has been removed as + it duplicates functionality of the rawcopy plugin. + +.. _migration-2.3-qa-changes: + +QA Changes +---------- + +The following QA checks have changed: + +- ``unsafe-references-in-binaries``: The + ``unsafe-references-in-binaries`` QA check, which was disabled by + default, has now been removed. This check was intended to detect + binaries in ``/bin`` that link to libraries in ``/usr/lib`` and have + the case where the user has ``/usr`` on a separate filesystem to + ``/``. + + The removed QA check was buggy. Additionally, ``/usr`` residing on a + separate partition from ``/`` is now a rare configuration. + Consequently, ``unsafe-references-in-binaries`` was removed. + +- ``file-rdeps``: The ``file-rdeps`` QA check is now an error by + default instead of a warning. Because it is an error instead of a + warning, you need to address missing runtime dependencies. + + For additional information, see the + :ref:`insane ` class and the + ":ref:`ref-manual/qa-checks:errors and warnings`" section. + +.. _migration-2.3-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following miscellaneous changes have occurred: + +- In this release, a number of recipes have been changed to ignore the + ``largefile`` :term:`DISTRO_FEATURES` item, + enabling large file support unconditionally. This feature has always + been enabled by default. Disabling the feature has not been widely + tested. + + .. note:: + + Future releases of the Yocto Project will remove entirely the + ability to disable the + largefile + feature, which would make it unconditionally enabled everywhere. + +- If the :term:`DISTRO_VERSION` value contains + the value of the :term:`DATE` variable, which is the + default between Poky releases, the :term:`DATE` value is explicitly + excluded from ``/etc/issue`` and ``/etc/issue.net``, which is + displayed at the login prompt, in order to avoid conflicts with + Multilib enabled. Regardless, the :term:`DATE` value is inaccurate if the + ``base-files`` recipe is restored from shared state (sstate) rather + than rebuilt. + + If you need the build date recorded in ``/etc/issue*`` or anywhere + else in your image, a better method is to define a post-processing + function to do it and have the function called from + :term:`ROOTFS_POSTPROCESS_COMMAND`. + Doing so ensures the value is always up-to-date with the created + image. + +- Dropbear's ``init`` script now disables DSA host keys by default. + This change is in line with the systemd service file, which supports + RSA keys only, and with recent versions of OpenSSH, which deprecates + DSA host keys. + +- The :ref:`buildhistory ` class now + correctly uses tabs as separators between all columns in + ``installed-package-sizes.txt`` in order to aid import into other + tools. + +- The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig" + :term:`DISTRO_FEATURES` feature. Distributions that previously set:: + + USE_LDCONFIG = "0" + + should now instead use the following:: + + DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig" + +- The default value of + :term:`COPYLEFT_LICENSE_INCLUDE` now + includes all versions of AGPL licenses in addition to GPL and LGPL. + + .. note:: + + The default list is not intended to be guaranteed as a complete + safe list. You should seek legal advice based on what you are + distributing if you are unsure. + +- Kernel module packages are now suffixed with the kernel version in + order to allow module packages from multiple kernel versions to + co-exist on a target system. If you wish to return to the previous + naming scheme that does not include the version suffix, use the + following:: + + KERNEL_MODULE_PACKAGE_SUFFIX = "" + +- Removal of ``libtool`` ``*.la`` files is now enabled by default. The + ``*.la`` files are not actually needed on Linux and relocating them + is an unnecessary burden. + + If you need to preserve these ``.la`` files (e.g. in a custom + distribution), you must change + :term:`INHERIT_DISTRO` such that + "remove-libtool" is not included in the value. + +- Extensible SDKs built for GCC 5+ now refuse to install on a + distribution where the host GCC version is 4.8 or 4.9. This change + resulted from the fact that the installation is known to fail due to + the way the ``uninative`` shared state (sstate) package is built. See + the :ref:`uninative ` class for additional + information. + +- All native and nativesdk recipes now use a separate + :term:`DISTRO_FEATURES` value instead of sharing the value used by + recipes for the target, in order to avoid unnecessary rebuilds. + + The :term:`DISTRO_FEATURES` for ``native`` recipes is + :term:`DISTRO_FEATURES_NATIVE` added to + an intersection of :term:`DISTRO_FEATURES` and + :term:`DISTRO_FEATURES_FILTER_NATIVE`. + + For nativesdk recipes, the corresponding variables are + :term:`DISTRO_FEATURES_NATIVESDK` + and + :term:`DISTRO_FEATURES_FILTER_NATIVESDK`. + +- The ``FILESDIR`` variable, which was previously deprecated and rarely + used, has now been removed. You should change any recipes that set + ``FILESDIR`` to set :term:`FILESPATH` instead. + +- The ``MULTIMACH_HOST_SYS`` variable has been removed as it is no + longer needed with recipe-specific sysroots. + + diff --git a/poky/documentation/migration-guides/migration-2.4.rst b/poky/documentation/migration-guides/migration-2.4.rst new file mode 100644 index 000000000..07f2bef62 --- /dev/null +++ b/poky/documentation/migration-guides/migration-2.4.rst @@ -0,0 +1,327 @@ +Release 2.4 (rocko) +=================== + +This section provides migration information for moving to the Yocto +Project 2.4 Release (codename "rocko") from the prior release. + +.. _migration-2.4-memory-resident-mode: + +Memory Resident Mode +-------------------- + +A persistent mode is now available in BitBake's default operation, +replacing its previous "memory resident mode" (i.e. +``oe-init-build-env-memres``). Now you only need to set +:term:`BB_SERVER_TIMEOUT` to a timeout (in +seconds) and BitBake's server stays resident for that amount of time +between invocations. The ``oe-init-build-env-memres`` script has been +removed since a separate environment setup script is no longer needed. + +.. _migration-2.4-packaging-changes: + +Packaging Changes +----------------- + +This section provides information about packaging changes that have +occurred: + +- ``python3`` Changes: + + - The main "python3" package now brings in all of the standard + Python 3 distribution rather than a subset. This behavior matches + what is expected based on traditional Linux distributions. If you + wish to install a subset of Python 3, specify ``python-core`` plus + one or more of the individual packages that are still produced. + + - ``python3``: The ``bz2.py``, ``lzma.py``, and + ``_compression.py`` scripts have been moved from the + ``python3-misc`` package to the ``python3-compression`` package. + +- ``binutils``: The ``libbfd`` library is now packaged in a separate + "libbfd" package. This packaging saves space when certain tools (e.g. + ``perf``) are installed. In such cases, the tools only need + ``libbfd`` rather than all the packages in ``binutils``. + +- ``util-linux`` Changes: + + - The ``su`` program is now packaged in a separate "util-linux-su" + package, which is only built when "pam" is listed in the + :term:`DISTRO_FEATURES` variable. + ``util-linux`` should not be installed unless it is needed because + ``su`` is normally provided through the shadow file format. The + main ``util-linux`` package has runtime dependencies (i.e. + :term:`RDEPENDS`) on the ``util-linux-su`` package + when "pam" is in ``DISTRO_FEATURES``. + + - The ``switch_root`` program is now packaged in a separate + "util-linux-switch-root" package for small initramfs images that + do not need the whole ``util-linux`` package or the busybox + binary, which are both much larger than ``switch_root``. The main + ``util-linux`` package has a recommended runtime dependency (i.e. + :term:`RRECOMMENDS`) on the + ``util-linux-switch-root`` package. + + - The ``ionice`` program is now packaged in a separate + "util-linux-ionice" package. The main ``util-linux`` package has a + recommended runtime dependency (i.e. :term:`RRECOMMENDS`) on the + ``util-linux-ionice`` package. + +- ``initscripts``: The ``sushell`` program is now packaged in a + separate "initscripts-sushell" package. This packaging change allows + systems to pull ``sushell`` in when ``selinux`` is enabled. The + change also eliminates needing to pull in the entire ``initscripts`` + package. The main ``initscripts`` package has a runtime dependency + (i.e. :term:`RDEPENDS`) on the ``sushell`` package when "selinux" is in + ``DISTRO_FEATURES``. + +- ``glib-2.0``: The ``glib-2.0`` package now has a recommended + runtime dependency (i.e. ``RRECOMMENDS``) on the ``shared-mime-info`` + package, since large portions of GIO are not useful without the MIME + database. You can remove the dependency by using the + :term:`BAD_RECOMMENDATIONS` variable if + ``shared-mime-info`` is too large and is not required. + +- *Go Standard Runtime:* The Go standard runtime has been split out + from the main ``go`` recipe into a separate ``go-runtime`` recipe. + +.. _migration-2.4-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed: + +- ``acpitests``: This recipe is not maintained. + +- ``autogen-native``: No longer required by Grub, oe-core, or + meta-oe. + +- ``bdwgc``: Nothing in OpenEmbedded-Core requires this recipe. It + has moved to meta-oe. + +- ``byacc``: This recipe was only needed by rpm 5.x and has moved to + meta-oe. + +- ``gcc (5.4)``: The 5.4 series dropped the recipe in favor of 6.3 / + 7.2. + +- ``gnome-common``: Deprecated upstream and no longer needed. + +- ``go-bootstrap-native``: Go 1.9 does its own bootstrapping so this + recipe has been removed. + +- ``guile``: This recipe was only needed by ``autogen-native`` and + ``remake``. The recipe is no longer needed by either of these + programs. + +- ``libclass-isa-perl``: This recipe was previously needed for LSB 4, + no longer needed. + +- ``libdumpvalue-perl``: This recipe was previously needed for LSB 4, + no longer needed. + +- ``libenv-perl``: This recipe was previously needed for LSB 4, no + longer needed. + +- ``libfile-checktree-perl``: This recipe was previously needed for + LSB 4, no longer needed. + +- ``libi18n-collate-perl``: This recipe was previously needed for LSB + 4, no longer needed. + +- ``libiconv``: This recipe was only needed for ``uclibc``, which was + removed in the previous release. ``glibc`` and ``musl`` have their + own implementations. ``meta-mingw`` still needs ``libiconv``, so it + has been moved to ``meta-mingw``. + +- ``libpng12``: This recipe was previously needed for LSB. The + current ``libpng`` is 1.6.x. + +- ``libpod-plainer-perl``: This recipe was previously needed for LSB + 4, no longer needed. + +- ``linux-yocto (4.1)``: This recipe was removed in favor of 4.4, + 4.9, 4.10 and 4.12. + +- ``mailx``: This recipe was previously only needed for LSB + compatibility, and upstream is defunct. + +- ``mesa (git version only)``: The git version recipe was stale with + respect to the release version. + +- ``ofono (git version only)``: The git version recipe was stale with + respect to the release version. + +- ``portmap``: This recipe is obsolete and is superseded by + ``rpcbind``. + +- ``python3-pygpgme``: This recipe is old and unmaintained. It was + previously required by ``dnf``, which has switched to official + ``gpgme`` Python bindings. + +- ``python-async``: This recipe has been removed in favor of the + Python 3 version. + +- ``python-gitdb``: This recipe has been removed in favor of the + Python 3 version. + +- ``python-git``: This recipe was removed in favor of the Python 3 + version. + +- ``python-mako``: This recipe was removed in favor of the Python 3 + version. + +- ``python-pexpect``: This recipe was removed in favor of the Python + 3 version. + +- ``python-ptyprocess``: This recipe was removed in favor of Python + the 3 version. + +- ``python-pycurl``: Nothing is using this recipe in + OpenEmbedded-Core (i.e. ``meta-oe``). + +- ``python-six``: This recipe was removed in favor of the Python 3 + version. + +- ``python-smmap``: This recipe was removed in favor of the Python 3 + version. + +- ``remake``: Using ``remake`` as the provider of ``virtual/make`` is + broken. Consequently, this recipe is not needed in OpenEmbedded-Core. + +.. _migration-2.4-kernel-device-tree-move: + +Kernel Device Tree Move +----------------------- + +Kernel Device Tree support is now easier to enable in a kernel recipe. +The Device Tree code has moved to a +:ref:`kernel-devicetree ` class. +Functionality is automatically enabled for any recipe that inherits the +:ref:`kernel ` class and sets the +:term:`KERNEL_DEVICETREE` variable. The +previous mechanism for doing this, +``meta/recipes-kernel/linux/linux-dtb.inc``, is still available to avoid +breakage, but triggers a deprecation warning. Future releases of the +Yocto Project will remove ``meta/recipes-kernel/linux/linux-dtb.inc``. +It is advisable to remove any ``require`` statements that request +``meta/recipes-kernel/linux/linux-dtb.inc`` from any custom kernel +recipes you might have. This will avoid breakage in post 2.4 releases. + +.. _migration-2.4-package-qa-changes: + +Package QA Changes +------------------ + +The following package QA changes took place: + +- The "unsafe-references-in-scripts" QA check has been removed. + +- If you refer to ``${COREBASE}/LICENSE`` within + :term:`LIC_FILES_CHKSUM` you receive a + warning because this file is a description of the license for + OE-Core. Use ``${COMMON_LICENSE_DIR}/MIT`` if your recipe is + MIT-licensed and you cannot use the preferred method of referring to + a file within the source tree. + +.. _migration-2.4-readme-changes: + +``README`` File Changes +----------------------- + +The following are changes to ``README`` files: + +- The main Poky ``README`` file has been moved to the ``meta-poky`` + layer and has been renamed ``README.poky``. A symlink has been + created so that references to the old location work. + +- The ``README.hardware`` file has been moved to ``meta-yocto-bsp``. A + symlink has been created so that references to the old location work. + +- A ``README.qemu`` file has been created with coverage of the + ``qemu*`` machines. + +.. _migration-2.4-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following are additional changes: + +- The ``ROOTFS_PKGMANAGE_BOOTSTRAP`` variable and any references to it + have been removed. You should remove this variable from any custom + recipes. + +- The ``meta-yocto`` directory has been removed. + + .. note:: + + In the Yocto Project 2.1 release + meta-yocto + was renamed to + meta-poky + and the + meta-yocto + subdirectory remained to avoid breaking existing configurations. + +- The ``maintainers.inc`` file, which tracks maintainers by listing a + primary person responsible for each recipe in OE-Core, has been moved + from ``meta-poky`` to OE-Core (i.e. from + ``meta-poky/conf/distro/include`` to ``meta/conf/distro/include``). + +- The :ref:`buildhistory ` class now makes + a single commit per build rather than one commit per subdirectory in + the repository. This behavior assumes the commits are enabled with + :term:`BUILDHISTORY_COMMIT` = "1", which + is typical. Previously, the ``buildhistory`` class made one commit + per subdirectory in the repository in order to make it easier to see + the changes for a particular subdirectory. To view a particular + change, specify that subdirectory as the last parameter on the + ``git show`` or ``git diff`` commands. + +- The ``x86-base.inc`` file, which is included by all x86-based machine + configurations, now sets :term:`IMAGE_FSTYPES` + using ``?=`` to "live" rather than appending with ``+=``. This change + makes the default easier to override. + +- BitBake fires multiple "BuildStarted" events when multiconfig is + enabled (one per configuration). For more information, see the + ":ref:`Events `" section in the BitBake User + Manual. + +- By default, the ``security_flags.inc`` file sets a + :term:`GCCPIE` variable with an option to enable + Position Independent Executables (PIE) within ``gcc``. Enabling PIE + in the GNU C Compiler (GCC), makes Return Oriented Programming (ROP) + attacks much more difficult to execute. + +- OE-Core now provides a ``bitbake-layers`` plugin that implements a + "create-layer" subcommand. The implementation of this subcommand has + resulted in the ``yocto-layer`` script being deprecated and will + likely be removed in the next Yocto Project release. + +- The ``vmdk``, ``vdi``, and ``qcow2`` image file types are now used in + conjunction with the "wic" image type through ``CONVERSION_CMD``. + Consequently, the equivalent image types are now ``wic.vmdk``, + ``wic.vdi``, and ``wic.qcow2``, respectively. + +- ``do_image_[depends]`` has replaced ``IMAGE_DEPENDS_``. + If you have your own classes that implement custom image types, then + you need to update them. + +- OpenSSL 1.1 has been introduced. However, the default is still 1.0.x + through the :term:`PREFERRED_VERSION` + variable. This preference is set is due to the remaining + compatibility issues with other software. The + :term:`PROVIDES` variable in the openssl 1.0 recipe + now includes "openssl10" as a marker that can be used in + :term:`DEPENDS` within recipes that build software + that still depend on OpenSSL 1.0. + +- To ensure consistent behavior, BitBake's "-r" and "-R" options (i.e. + prefile and postfile), which are used to read or post-read additional + configuration files from the command line, now only affect the + current BitBake command. Before these BitBake changes, these options + would "stick" for future executions. + + diff --git a/poky/documentation/migration-guides/migration-2.5.rst b/poky/documentation/migration-guides/migration-2.5.rst new file mode 100644 index 000000000..d14580df2 --- /dev/null +++ b/poky/documentation/migration-guides/migration-2.5.rst @@ -0,0 +1,308 @@ +Release 2.5 (sumo) +================== + +This section provides migration information for moving to the Yocto +Project 2.5 Release (codename "sumo") from the prior release. + +.. _migration-2.5-packaging-changes: + +Packaging Changes +----------------- + +This section provides information about packaging changes that have +occurred: + +- ``bind-libs``: The libraries packaged by the bind recipe are in a + separate ``bind-libs`` package. + +- ``libfm-gtk``: The ``libfm`` GTK+ bindings are split into a + separate ``libfm-gtk`` package. + +- ``flex-libfl``: The flex recipe splits out libfl into a separate + ``flex-libfl`` package to avoid too many dependencies being pulled in + where only the library is needed. + +- ``grub-efi``: The ``grub-efi`` configuration is split into a + separate ``grub-bootconf`` recipe. However, the dependency + relationship from ``grub-efi`` is through a virtual/grub-bootconf + provider making it possible to have your own recipe provide the + dependency. Alternatively, you can use a BitBake append file to bring + the configuration back into the ``grub-efi`` recipe. + +- *armv7a Legacy Package Feed Support:* Legacy support is removed for + transitioning from ``armv7a`` to ``armv7a-vfp-neon`` in package + feeds, which was previously enabled by setting + ``PKGARCHCOMPAT_ARMV7A``. This transition occurred in 2011 and active + package feeds should by now be updated to the new naming. + +.. _migration-2.5-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed: + +- ``gcc``: The version 6.4 recipes are replaced by 7.x. + +- ``gst-player``: Renamed to ``gst-examples`` as per upstream. + +- ``hostap-utils``: This software package is obsolete. + +- ``latencytop``: This recipe is no longer maintained upstream. The + last release was in 2009. + +- ``libpfm4``: The only file that requires this recipe is + ``oprofile``, which has been removed. + +- ``linux-yocto``: The version 4.4, 4.9, and 4.10 recipes have been + removed. Versions 4.12, 4.14, and 4.15 remain. + +- ``man``: This recipe has been replaced by modern ``man-db`` + +- ``mkelfimage``: This tool has been removed in the upstream coreboot + project, and is no longer needed with the removal of the ELF image + type. + +- ``nativesdk-postinst-intercept``: This recipe is not maintained. + +- ``neon``: This software package is no longer maintained upstream + and is no longer needed by anything in OpenEmbedded-Core. + +- ``oprofile``: The functionality of this recipe is replaced by + ``perf`` and keeping compatibility on an ongoing basis with ``musl`` + is difficult. + +- ``pax``: This software package is obsolete. + +- ``stat``: This software package is not maintained upstream. + ``coreutils`` provides a modern stat binary. + +- ``zisofs-tools-native``: This recipe is no longer needed because + the compressed ISO image feature has been removed. + +.. _migration-2.5-scripts-and-tools-changes: + +Scripts and Tools Changes +------------------------- + +The following are changes to scripts and tools: + +- ``yocto-bsp``, ``yocto-kernel``, and ``yocto-layer``: The + ``yocto-bsp``, ``yocto-kernel``, and ``yocto-layer`` scripts + previously shipped with poky but not in OpenEmbedded-Core have been + removed. These scripts are not maintained and are outdated. In many + cases, they are also limited in scope. The + ``bitbake-layers create-layer`` command is a direct replacement for + ``yocto-layer``. See the documentation to create a BSP or kernel + recipe in the ":ref:`bsp-guide/bsp:bsp kernel recipe example`" section. + +- ``devtool finish``: ``devtool finish`` now exits with an error if + there are uncommitted changes or a rebase/am in progress in the + recipe's source repository. If this error occurs, there might be + uncommitted changes that will not be included in updates to the + patches applied by the recipe. A -f/--force option is provided for + situations that the uncommitted changes are inconsequential and you + want to proceed regardless. + +- ``scripts/oe-setup-rpmrepo`` script: The functionality of + ``scripts/oe-setup-rpmrepo`` is replaced by + ``bitbake package-index``. + +- ``scripts/test-dependencies.sh`` script: The script is largely made + obsolete by the recipe-specific sysroots functionality introduced in + the previous release. + +.. _migration-2.5-bitbake-changes: + +BitBake Changes +--------------- + +The following are BitBake changes: + +- The ``--runall`` option has changed. There are two different + behaviors people might want: + + - *Behavior A:* For a given target (or set of targets) look through + the task graph and run task X only if it is present and will be + built. + + - *Behavior B:* For a given target (or set of targets) look through + the task graph and run task X if any recipe in the taskgraph has + such a target, even if it is not in the original task graph. + + The ``--runall`` option now performs "Behavior B". Previously + ``--runall`` behaved like "Behavior A". A ``--runonly`` option has + been added to retain the ability to perform "Behavior A". + +- Several explicit "run this task for all recipes in the dependency + tree" tasks have been removed (e.g. ``fetchall``, ``checkuriall``, + and the ``*all`` tasks provided by the ``distrodata`` and + ``archiver`` classes). There is a BitBake option to complete this for + any arbitrary task. For example:: + + bitbake -c fetchall + + should now be replaced with:: + + bitbake --runall=fetch + +.. _migration-2.5-python-and-python3-changes: + +Python and Python 3 Changes +--------------------------- + +The following are auto-packaging changes to Python and Python 3: + +The script-managed ``python-*-manifest.inc`` files that were previously +used to generate Python and Python 3 packages have been replaced with a +JSON-based file that is easier to read and maintain. A new task is +available for maintainers of the Python recipes to update the JSON file +when upgrading to new Python versions. You can now edit the file +directly instead of having to edit a script and run it to update the +file. + +One particular change to note is that the Python recipes no longer have +build-time provides for their packages. This assumes ``python-foo`` is +one of the packages provided by the Python recipe. You can no longer run +``bitbake python-foo`` or have a +:term:`DEPENDS` on ``python-foo``, +but doing either of the following causes the package to work as +expected:: + + IMAGE_INSTALL_append = " python-foo" + +or :: + + RDEPENDS_${PN} = "python-foo" + +The earlier build-time provides behavior was a quirk of the +way the Python manifest file was created. For more information on this +change please see :yocto_git:`this commit +`. + +.. _migration-2.5-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following are additional changes: + +- The ``kernel`` class supports building packages for multiple kernels. + If your kernel recipe or ``.bbappend`` file mentions packaging at + all, you should replace references to the kernel in package names + with ``${KERNEL_PACKAGE_NAME}``. For example, if you disable + automatic installation of the kernel image using + ``RDEPENDS_kernel-base = ""`` you can avoid warnings using + ``RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""`` instead. + +- The ``buildhistory`` class commits changes to the repository by + default so you no longer need to set ``BUILDHISTORY_COMMIT = "1"``. + If you want to disable commits you need to set + ``BUILDHISTORY_COMMIT = "0"`` in your configuration. + +- The ``beaglebone`` reference machine has been renamed to + ``beaglebone-yocto``. The ``beaglebone-yocto`` BSP is a reference + implementation using only mainline components available in + OpenEmbedded-Core and ``meta-yocto-bsp``, whereas Texas Instruments + maintains a full-featured BSP in the ``meta-ti`` layer. This rename + avoids the previous name clash that existed between the two BSPs. + +- The ``update-alternatives`` class no longer works with SysV ``init`` + scripts because this usage has been problematic. Also, the + ``sysklogd`` recipe no longer uses ``update-alternatives`` because it + is incompatible with other implementations. + +- By default, the :ref:`cmake ` class uses + ``ninja`` instead of ``make`` for building. This improves build + performance. If a recipe is broken with ``ninja``, then the recipe + can set ``OECMAKE_GENERATOR = "Unix Makefiles"`` to change back to + ``make``. + +- The previously deprecated ``base_*`` functions have been removed in + favor of their replacements in ``meta/lib/oe`` and + ``bitbake/lib/bb``. These are typically used from recipes and + classes. Any references to the old functions must be updated. The + following table shows the removed functions and their replacements: + + +------------------------------+----------------------------------------------------------+ + | *Removed* | *Replacement* | + +==============================+==========================================================+ + | base_path_join() | oe.path.join() | + +------------------------------+----------------------------------------------------------+ + | base_path_relative() | oe.path.relative() | + +------------------------------+----------------------------------------------------------+ + | base_path_out() | oe.path.format_display() | + +------------------------------+----------------------------------------------------------+ + | base_read_file() | oe.utils.read_file() | + +------------------------------+----------------------------------------------------------+ + | base_ifelse() | oe.utils.ifelse() | + +------------------------------+----------------------------------------------------------+ + | base_conditional() | oe.utils.conditional() | + +------------------------------+----------------------------------------------------------+ + | base_less_or_equal() | oe.utils.less_or_equal() | + +------------------------------+----------------------------------------------------------+ + | base_version_less_or_equal() | oe.utils.version_less_or_equal() | + +------------------------------+----------------------------------------------------------+ + | base_contains() | bb.utils.contains() | + +------------------------------+----------------------------------------------------------+ + | base_both_contain() | oe.utils.both_contain() | + +------------------------------+----------------------------------------------------------+ + | base_prune_suffix() | oe.utils.prune_suffix() | + +------------------------------+----------------------------------------------------------+ + | oe_filter() | oe.utils.str_filter() | + +------------------------------+----------------------------------------------------------+ + | oe_filter_out() | oe.utils.str_filter_out() (or use the \_remove operator) | + +------------------------------+----------------------------------------------------------+ + +- Using ``exit 1`` to explicitly defer a postinstall script until first + boot is now deprecated since it is not an obvious mechanism and can + mask actual errors. If you want to explicitly defer a postinstall to + first boot on the target rather than at ``rootfs`` creation time, use + ``pkg_postinst_ontarget()`` or call + ``postinst_intercept delay_to_first_boot`` from ``pkg_postinst()``. + Any failure of a ``pkg_postinst()`` script (including ``exit 1``) + will trigger a warning during ``do_rootfs``. + + For more information, see the + ":ref:`dev-manual/common-tasks:post-installation scripts`" + section in the Yocto Project Development Tasks Manual. + +- The ``elf`` image type has been removed. This image type was removed + because the ``mkelfimage`` tool that was required to create it is no + longer provided by coreboot upstream and required updating every time + ``binutils`` updated. + +- Support for .iso image compression (previously enabled through + ``COMPRESSISO = "1"``) has been removed. The userspace tools + (``zisofs-tools``) are unmaintained and ``squashfs`` provides better + performance and compression. In order to build a live image with + squashfs+lz4 compression enabled you should now set + ``LIVE_ROOTFS_TYPE = "squashfs-lz4"`` and ensure that ``live`` is in + ``IMAGE_FSTYPES``. + +- Recipes with an unconditional dependency on ``libpam`` are only + buildable with ``pam`` in :term:`DISTRO_FEATURES`. If the dependency is + truly optional then it is recommended that the dependency be + conditional upon ``pam`` being in ``DISTRO_FEATURES``. + +- For EFI-based machines, the bootloader (``grub-efi`` by default) is + installed into the image at /boot. Wic can be used to split the + bootloader into separate boot and rootfs partitions if necessary. + +- Patches whose context does not match exactly (i.e. where patch + reports "fuzz" when applying) will generate a warning. For an example + of this see :yocto_git:`this commit + `. + +- Layers are expected to set ``LAYERSERIES_COMPAT_layername`` to match + the version(s) of OpenEmbedded-Core they are compatible with. This is + specified as codenames using spaces to separate multiple values (e.g. + "rocko sumo"). If a layer does not set + ``LAYERSERIES_COMPAT_layername``, a warning will is shown. If a layer + sets a value that does not include the current version ("sumo" for + the 2.5 release), then an error will be produced. + +- The ``TZ`` environment variable is set to "UTC" within the build + environment in order to fix reproducibility problems in some recipes. + + diff --git a/poky/documentation/migration-guides/migration-2.6.rst b/poky/documentation/migration-guides/migration-2.6.rst new file mode 100644 index 000000000..3216ed5ae --- /dev/null +++ b/poky/documentation/migration-guides/migration-2.6.rst @@ -0,0 +1,452 @@ +Release 2.6 (thud) +================== + +This section provides migration information for moving to the Yocto +Project 2.6 Release (codename "thud") from the prior release. + +.. _migration-2.6-gcc-changes: + +GCC 8.2 is Now Used by Default +------------------------------ + +The GNU Compiler Collection version 8.2 is now used by default for +compilation. For more information on what has changed in the GCC 8.x +release, see https://gcc.gnu.org/gcc-8/changes.html. + +If you still need to compile with version 7.x, GCC 7.3 is also provided. +You can select this version by setting the and can be selected by +setting the :term:`GCCVERSION` variable to "7.%" in +your configuration. + +.. _migration-2.6-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed: + +- *beecrypt*: No longer needed since moving to RPM 4. +- *bigreqsproto*: Replaced by ``xorgproto``. +- *calibrateproto*: Removed in favor of ``xinput``. +- *compositeproto*: Replaced by ``xorgproto``. +- *damageproto*: Replaced by ``xorgproto``. +- *dmxproto*: Replaced by ``xorgproto``. +- *dri2proto*: Replaced by ``xorgproto``. +- *dri3proto*: Replaced by ``xorgproto``. +- *eee-acpi-scripts*: Became obsolete. +- *fixesproto*: Replaced by ``xorgproto``. +- *fontsproto*: Replaced by ``xorgproto``. +- *fstests*: Became obsolete. +- *gccmakedep*: No longer used. +- *glproto*: Replaced by ``xorgproto``. +- *gnome-desktop3*: No longer needed. This recipe has moved to ``meta-oe``. +- *icon-naming-utils*: No longer used since the Sato theme was removed in 2016. +- *inputproto*: Replaced by ``xorgproto``. +- *kbproto*: Replaced by ``xorgproto``. +- *libusb-compat*: Became obsolete. +- *libuser*: Became obsolete. +- *libnfsidmap*: No longer an external requirement since ``nfs-utils`` 2.2.1. ``libnfsidmap`` is now integrated. +- *libxcalibrate*: No longer needed with ``xinput`` +- *mktemp*: Became obsolete. The ``mktemp`` command is provided by both ``busybox`` and ``coreutils``. +- *ossp-uuid*: Is not being maintained and has mostly been replaced by ``uuid.h`` in ``util-linux``. +- *pax-utils*: No longer needed. Previous QA tests that did use this recipe are now done at build time. +- *pcmciautils*: Became obsolete. +- *pixz*: No longer needed. ``xz`` now supports multi-threaded compression. +- *presentproto*: Replaced by ``xorgproto``. +- *randrproto*: Replaced by ``xorgproto``. +- *recordproto*: Replaced by ``xorgproto``. +- *renderproto*: Replaced by ``xorgproto``. +- *resourceproto*: Replaced by ``xorgproto``. +- *scrnsaverproto*: Replaced by ``xorgproto``. +- *trace-cmd*: Became obsolete. ``perf`` replaced this recipe's functionally. +- *videoproto*: Replaced by ``xorgproto``. +- *wireless-tools*: Became obsolete. Superseded by ``iw``. +- *xcmiscproto*: Replaced by ``xorgproto``. +- *xextproto*: Replaced by ``xorgproto``. +- *xf86dgaproto*: Replaced by ``xorgproto``. +- *xf86driproto*: Replaced by ``xorgproto``. +- *xf86miscproto*: Replaced by ``xorgproto``. +- *xf86-video-omapfb*: Became obsolete. Use kernel modesetting driver instead. +- *xf86-video-omap*: Became obsolete. Use kernel modesetting driver instead. +- *xf86vidmodeproto*: Replaced by ``xorgproto``. +- *xineramaproto*: Replaced by ``xorgproto``. +- *xproto*: Replaced by ``xorgproto``. +- *yasm*: No longer needed since previous usages are now satisfied by ``nasm``. + +.. _migration-2.6-packaging-changes: + +Packaging Changes +----------------- + +The following packaging changes have been made: + +- *cmake*: ``cmake.m4`` and ``toolchain`` files have been moved to + the main package. + +- *iptables*: The ``iptables`` modules have been split into + separate packages. + +- *alsa-lib*: ``libasound`` is now in the main ``alsa-lib`` package + instead of ``libasound``. + +- *glibc*: ``libnss-db`` is now in its own package along with a + ``/var/db/makedbs.sh`` script to update databases. + +- *python and python3*: The main package has been removed from + the recipe. You must install specific packages or ``python-modules`` + / ``python3-modules`` for everything. + +- *systemtap*: Moved ``systemtap-exporter`` into its own package. + +.. _migration-2.6-xorg-protocol-dependencies: + +XOrg Protocol dependencies +-------------------------- + +The ``*proto`` upstream repositories have been combined into one +"xorgproto" repository. Thus, the corresponding recipes have also been +combined into a single ``xorgproto`` recipe. Any recipes that depend +upon the older ``*proto`` recipes need to be changed to depend on the +newer ``xorgproto`` recipe instead. + +For names of recipes removed because of this repository change, see the +:ref:`migration-guides/migration-2.6:removed recipes` section. + +.. _migration-2.6-distutils-distutils3-fetching-dependencies: + +``distutils`` and ``distutils3`` Now Prevent Fetching Dependencies During the ``do_configure`` Task +--------------------------------------------------------------------------------------------------- + +Previously, it was possible for Python recipes that inherited the +``distutils`` and +:ref:`distutils3 ` classes to fetch code +during the :ref:`ref-tasks-configure` task to satisfy +dependencies mentioned in ``setup.py`` if those dependencies were not +provided in the sysroot (i.e. recipes providing the dependencies were +missing from :term:`DEPENDS`). + +.. note:: + + This change affects classes beyond just the two mentioned (i.e. + ``distutils`` and ``distutils3``). Any recipe that inherits ``distutils*`` + classes are affected. For example, the ``setuptools`` and ``setuptools3`` + recipes are affected since they inherit the ``distutils*`` classes. + +Fetching these types of dependencies that are not provided in the +sysroot negatively affects the ability to reproduce builds. This type of +fetching is now explicitly disabled. Consequently, any missing +dependencies in Python recipes that use these classes now result in an +error during the ``do_configure`` task. + +.. _migration-2.6-linux-yocto-configuration-audit-issues-now-correctly-reported: + +``linux-yocto`` Configuration Audit Issues Now Correctly Reported +----------------------------------------------------------------- + +Due to a bug, the kernel configuration audit functionality was not +writing out any resulting warnings during the build. This issue is now +corrected. You might notice these warnings now if you have a custom +kernel configuration with a ``linux-yocto`` style kernel recipe. + +.. _migration-2.6-image-kernel-artifact-naming-changes: + +Image/Kernel Artifact Naming Changes +------------------------------------ + +The following changes have been made: + +- Name variables (e.g. :term:`IMAGE_NAME`) use a new + :term:`IMAGE_VERSION_SUFFIX` variable instead of + :term:`DATETIME`. Using :term:`IMAGE_VERSION_SUFFIX` + allows easier and more direct changes. + + The :term:`IMAGE_VERSION_SUFFIX` variable is set in the ``bitbake.conf`` + configuration file as follows:: + + IMAGE_VERSION_SUFFIX = "-${DATETIME}" + +- Several variables have changed names for consistency:: + + Old Variable Name New Variable Name + ======================================================== + KERNEL_IMAGE_BASE_NAME KERNEL_IMAGE_NAME + KERNEL_IMAGE_SYMLINK_NAME KERNEL_IMAGE_LINK_NAME + MODULE_TARBALL_BASE_NAME MODULE_TARBALL_NAME + MODULE_TARBALL_SYMLINK_NAME MODULE_TARBALL_LINK_NAME + INITRAMFS_BASE_NAME INITRAMFS_NAME + +- The ``MODULE_IMAGE_BASE_NAME`` variable has been removed. The module + tarball name is now controlled directly with the + :term:`MODULE_TARBALL_NAME` variable. + +- The :term:`KERNEL_DTB_NAME` and + :term:`KERNEL_DTB_LINK_NAME` variables + have been introduced to control kernel Device Tree Binary (DTB) + artifact names instead of mangling ``KERNEL_IMAGE_*`` variables. + +- The :term:`KERNEL_FIT_NAME` and + :term:`KERNEL_FIT_LINK_NAME` variables + have been introduced to specify the name of flattened image tree + (FIT) kernel images similar to other deployed artifacts. + +- The :term:`MODULE_TARBALL_NAME` and + :term:`MODULE_TARBALL_LINK_NAME` + variable values no longer include the "module-" prefix or ".tgz" + suffix. These parts are now hardcoded so that the values are + consistent with other artifact naming variables. + +- Added the :term:`INITRAMFS_LINK_NAME` + variable so that the symlink can be controlled similarly to other + artifact types. + +- :term:`INITRAMFS_NAME` now uses + "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" instead + of "${PV}-${PR}-${MACHINE}-${DATETIME}", which makes it consistent + with other variables. + +.. _migration-2.6-serial-console-deprecated: + +``SERIAL_CONSOLE`` Deprecated +----------------------------- + +The :term:`SERIAL_CONSOLE` variable has been +functionally replaced by the +:term:`SERIAL_CONSOLES` variable for some time. +With the Yocto Project 2.6 release, :term:`SERIAL_CONSOLE` has been +officially deprecated. + +:term:`SERIAL_CONSOLE` will continue to work as before for the 2.6 release. +However, for the sake of future compatibility, it is recommended that +you replace all instances of :term:`SERIAL_CONSOLE` with +:term:`SERIAL_CONSOLES`. + +.. note:: + + The only difference in usage is that :term:`SERIAL_CONSOLES` + expects entries to be separated using semicolons as compared to + :term:`SERIAL_CONSOLE`, which expects spaces. + +.. _migration-2.6-poky-sets-unknown-configure-option-to-qa-error: + +Configure Script Reports Unknown Options as Errors +-------------------------------------------------- + +If the configure script reports an unknown option, this now triggers a +QA error instead of a warning. Any recipes that previously got away with +specifying such unknown options now need to be fixed. + +.. _migration-2.6-override-changes: + +Override Changes +---------------- + +The following changes have occurred: + +- The ``virtclass-native`` and ``virtclass-nativesdk`` Overrides Have + Been Removed: The ``virtclass-native`` and ``virtclass-nativesdk`` + overrides have been deprecated since 2012 in favor of + ``class-native`` and ``class-nativesdk``, respectively. Both + ``virtclass-native`` and ``virtclass-nativesdk`` are now dropped. + + .. note:: + + The ``virtclass-multilib-`` overrides for multilib are still valid. + +- The ``forcevariable`` Override Now Has a Higher Priority Than + ``libc`` Overrides: The ``forcevariable`` override is documented to + be the highest priority override. However, due to a long-standing + quirk of how :term:`OVERRIDES` is set, the ``libc`` + overrides (e.g. ``libc-glibc``, ``libc-musl``, and so forth) + erroneously had a higher priority. This issue is now corrected. + + It is likely this change will not cause any problems. However, it is + possible with some unusual configurations that you might see a change + in behavior if you were relying on the previous behavior. Be sure to + check how you use ``forcevariable`` and ``libc-*`` overrides in your + custom layers and configuration files to ensure they make sense. + +- The ``build-${BUILD_OS}`` Override Has Been Removed: The + ``build-${BUILD_OS}``, which is typically ``build-linux``, override + has been removed because building on a host operating system other + than a recent version of Linux is neither supported nor recommended. + Dropping the override avoids giving the impression that other host + operating systems might be supported. + +- The "_remove" operator now preserves whitespace. Consequently, when + specifying list items to remove, be aware that leading and trailing + whitespace resulting from the removal is retained. + + See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:removal (override style syntax)`" + section in the BitBake User Manual for a detailed example. + +.. _migration-2.6-systemd-configuration-now-split-out-to-system-conf: + +``systemd`` Configuration is Now Split Into ``systemd-conf`` +------------------------------------------------------------ + +The configuration for the ``systemd`` recipe has been moved into a +``system-conf`` recipe. Moving this configuration to a separate recipe +avoids the ``systemd`` recipe from becoming machine-specific for cases +where machine-specific configurations need to be applied (e.g. for +``qemu*`` machines). + +Currently, the new recipe packages the following files:: + + ${sysconfdir}/machine-id + ${sysconfdir}/systemd/coredump.conf + ${sysconfdir}/systemd/journald.conf + ${sysconfdir}/systemd/logind.conf + ${sysconfdir}/systemd/system.conf + ${sysconfdir}/systemd/user.conf + +If you previously used bbappend files to append the ``systemd`` recipe to +change any of the listed files, you must do so for the ``systemd-conf`` +recipe instead. + +.. _migration-2.6-automatic-testing-changes: + +Automatic Testing Changes +------------------------- + +This section provides information about automatic testing changes: + +- ``TEST_IMAGE`` Variable Removed: Prior to this release, you set the + ``TEST_IMAGE`` variable to "1" to enable automatic testing for + successfully built images. The ``TEST_IMAGE`` variable no longer + exists and has been replaced by the + :term:`TESTIMAGE_AUTO` variable. + +- Inheriting the ``testimage`` and ``testsdk`` Classes: Best + practices now dictate that you use the + :term:`IMAGE_CLASSES` variable rather than the + :term:`INHERIT` variable when you inherit the + :ref:`testimage ` and + :ref:`testsdk ` classes used for automatic + testing. + +.. _migration-2.6-openssl-changes: + +OpenSSL Changes +--------------- + +`OpenSSL `__ has been upgraded from 1.0 to +1.1. By default, this upgrade could cause problems for recipes that have +both versions in their dependency chains. The problem is that both +versions cannot be installed together at build time. + +.. note:: + + It is possible to have both versions of the library at runtime. + +.. _migration-2.6-bitbake-changes: + +BitBake Changes +--------------- + +The server logfile ``bitbake-cookerdaemon.log`` is now always placed in +the :term:`Build Directory` instead of the current +directory. + +.. _migration-2.6-security-changes: + +Security Changes +---------------- + +The Poky distribution now uses security compiler flags by default. +Inclusion of these flags could cause new failures due to stricter +checking for various potential security issues in code. + +.. _migration-2.6-post-installation-changes: + +Post Installation Changes +------------------------- + +You must explicitly mark post installs to defer to the target. If you +want to explicitly defer a postinstall to first boot on the target +rather than at rootfs creation time, use ``pkg_postinst_ontarget()`` or +call ``postinst_intercept delay_to_first_boot`` from ``pkg_postinst()``. +Any failure of a ``pkg_postinst()`` script (including exit 1) triggers +an error during the :ref:`ref-tasks-rootfs` task. + +For more information on post-installation behavior, see the +":ref:`dev-manual/common-tasks:post-installation scripts`" +section in the Yocto Project Development Tasks Manual. + +.. _migration-2.6-python-3-profile-guided-optimizations: + +Python 3 Profile-Guided Optimization +------------------------------------ + +The ``python3`` recipe now enables profile-guided optimization. Using +this optimization requires a little extra build time in exchange for +improved performance on the target at runtime. Additionally, the +optimization is only enabled if the current +:term:`MACHINE` has support for user-mode emulation in +QEMU (i.e. "qemu-usermode" is in +:term:`MACHINE_FEATURES`, which it is by +default). + +If you wish to disable Python profile-guided optimization regardless of +the value of :term:`MACHINE_FEATURES`, then ensure that +:term:`PACKAGECONFIG` for the ``python3`` recipe +does not contain "pgo". You could accomplish the latter using the +following at the configuration level:: + + PACKAGECONFIG_remove_pn-python3 = "pgo" + +Alternatively, you can set :term:`PACKAGECONFIG` using an append file +for the ``python3`` recipe. + +.. _migration-2.6-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following miscellaneous changes occurred: + +- Default to using the Thumb-2 instruction set for armv7a and above. If + you have any custom recipes that build software that needs to be + built with the ARM instruction set, change the recipe to set the + instruction set as follows:: + + ARM_INSTRUCTION_SET = "arm" + +- ``run-postinsts`` no longer uses ``/etc/*-postinsts`` for + ``dpkg/opkg`` in favor of built-in postinst support. RPM behavior + remains unchanged. + +- The ``NOISO`` and ``NOHDD`` variables are no longer used. You now + control building ``*.iso`` and ``*.hddimg`` image types directly by + using the :term:`IMAGE_FSTYPES` variable. + +- The ``scripts/contrib/mkefidisk.sh`` has been removed in favor of + Wic. + +- ``kernel-modules`` has been removed from + :term:`RRECOMMENDS` for ``qemumips`` and + ``qemumips64`` machines. Removal also impacts the ``x86-base.inc`` + file. + + .. note:: + + ``genericx86`` and ``genericx86-64`` retain ``kernel-modules`` as part of + the ``RRECOMMENDS`` variable setting. + +- The ``LGPLv2_WHITELIST_GPL-3.0`` variable has been removed. If you + are setting this variable in your configuration, set or append it to + the ``WHITELIST_GPL-3.0`` variable instead. + +- ``${ASNEEDED}`` is now included in the + :term:`TARGET_LDFLAGS` variable directly. The + remaining definitions from ``meta/conf/distro/include/as-needed.inc`` + have been moved to corresponding recipes. + +- Support for DSA host keys has been dropped from the OpenSSH recipes. + If you are still using DSA keys, you must switch over to a more + secure algorithm as recommended by OpenSSH upstream. + +- The ``dhcp`` recipe now uses the ``dhcpd6.conf`` configuration file + in ``dhcpd6.service`` for IPv6 DHCP rather than re-using + ``dhcpd.conf``, which is now reserved for IPv4. + + diff --git a/poky/documentation/migration-guides/migration-2.7.rst b/poky/documentation/migration-guides/migration-2.7.rst new file mode 100644 index 000000000..25d92296c --- /dev/null +++ b/poky/documentation/migration-guides/migration-2.7.rst @@ -0,0 +1,180 @@ +Release 2.7 (warrior) +===================== + +This section provides migration information for moving to the Yocto +Project 2.7 Release (codename "warrior") from the prior release. + +.. _migration-2.7-bitbake-changes: + +BitBake Changes +--------------- + +The following changes have been made to BitBake: + +- BitBake now checks anonymous Python functions and pure Python + functions (e.g. ``def funcname:``) in the metadata for tab + indentation. If found, BitBake produces a warning. + +- Bitbake now checks + :term:`BBFILE_COLLECTIONS` for duplicate + entries and triggers an error if any are found. + +.. _migration-2.7-eclipse-support-dropped: + +Eclipse Support Removed +----------------------- + +Support for the Eclipse IDE has been removed. Support continues for +those releases prior to 2.7 that did include support. The 2.7 release +does not include the Eclipse Yocto plugin. + +.. _migration-2.7-qemu-native-splits-system-and-user-mode-parts: + +``qemu-native`` Splits the System and User-Mode Parts +----------------------------------------------------- + +The system and user-mode parts of ``qemu-native`` are now split. +``qemu-native`` provides the user-mode components and +``qemu-system-native`` provides the system components. If you have +recipes that depend on QEMU's system emulation functionality at build +time, they should now depend upon ``qemu-system-native`` instead of +``qemu-native``. + +.. _migration-2.7-upstream-tracking.inc-removed: + +The ``upstream-tracking.inc`` File Has Been Removed +--------------------------------------------------- + +The previously deprecated ``upstream-tracking.inc`` file is now removed. +Any ``UPSTREAM_TRACKING*`` variables are now set in the corresponding +recipes instead. + +Remove any references you have to the ``upstream-tracking.inc`` file in +your configuration. + +.. _migration-2.7-distro-features-libc-removed: + +The ``DISTRO_FEATURES_LIBC`` Variable Has Been Removed +------------------------------------------------------ + +The ``DISTRO_FEATURES_LIBC`` variable is no longer used. The ability to +configure glibc using kconfig has been removed for quite some time +making the ``libc-*`` features set no longer effective. + +Remove any references you have to ``DISTRO_FEATURES_LIBC`` in your own +layers. + +.. _migration-2.7-license-values: + +License Value Corrections +------------------------- + +The following corrections have been made to the +:term:`LICENSE` values set by recipes: + +- *socat*: Corrected ``LICENSE`` to be "GPLv2" rather than "GPLv2+". +- *libgfortran*: Set license to "GPL-3.0-with-GCC-exception". +- *elfutils*: Removed "Elfutils-Exception" and set to "GPLv2" for shared libraries + +.. _migration-2.7-packaging-changes: + +Packaging Changes +----------------- + +This section provides information about packaging changes. + +- ``bind``: The ``nsupdate`` binary has been moved to the + ``bind-utils`` package. + +- Debug split: The default debug split has been changed to create + separate source packages (i.e. package_name\ ``-dbg`` and + package_name\ ``-src``). If you are currently using ``dbg-pkgs`` in + :term:`IMAGE_FEATURES` to bring in debug + symbols and you still need the sources, you must now also add + ``src-pkgs`` to :term:`IMAGE_FEATURES`. Source packages remain in the + target portion of the SDK by default, unless you have set your own + value for :term:`SDKIMAGE_FEATURES` that + does not include ``src-pkgs``. + +- Mount all using ``util-linux``: ``/etc/default/mountall`` has moved + into the -mount sub-package. + +- Splitting binaries using ``util-linux``: ``util-linux`` now splits + each binary into its own package for fine-grained control. The main + ``util-linux`` package pulls in the individual binary packages using + the :term:`RRECOMMENDS` and + :term:`RDEPENDS` variables. As a result, existing + images should not see any changes assuming + :term:`NO_RECOMMENDATIONS` is not set. + +- ``netbase/base-files``: ``/etc/hosts`` has moved from ``netbase`` to + ``base-files``. + +- ``tzdata``: The main package has been converted to an empty meta + package that pulls in all ``tzdata`` packages by default. + +- ``lrzsz``: This package has been removed from + ``packagegroup-self-hosted`` and + ``packagegroup-core-tools-testapps``. The X/Y/ZModem support is less + likely to be needed on modern systems. If you are relying on these + packagegroups to include the ``lrzsz`` package in your image, you now + need to explicitly add the package. + +.. _migration-2.7-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed: + +- *gcc*: Drop version 7.3 recipes. Version 8.3 now remains. +- *linux-yocto*: Drop versions 4.14 and 4.18 recipes. Versions 4.19 and 5.0 remain. +- *go*: Drop version 1.9 recipes. Versions 1.11 and 1.12 remain. +- *xvideo-tests*: Became obsolete. +- *libart-lgpl*: Became obsolete. +- *gtk-icon-utils-native*: These tools are now provided by gtk+3-native +- *gcc-cross-initial*: No longer needed. gcc-cross/gcc-crosssdk is now used instead. +- *gcc-crosssdk-initial*: No longer needed. gcc-cross/gcc-crosssdk is now used instead. +- *glibc-initial*: Removed because the benefits of having it for site_config are currently outweighed by the cost of building the recipe. + +.. _migration-2.7-removed-classes: + +Removed Classes +--------------- + +The following classes have been removed: + +- *distutils-tools*: This class was never used. +- *bugzilla.bbclass*: Became obsolete. +- *distrodata*: This functionally has been replaced by a more modern tinfoil-based implementation. + +.. _migration-2.7-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following miscellaneous changes occurred: + +- The ``distro`` subdirectory of the Poky repository has been removed + from the top-level ``scripts`` directory. + +- Perl now builds for the target using + `perl-cross `_ for better + maintainability and improved build performance. This change should + not present any problems unless you have heavily customized your Perl + recipe. + +- ``arm-tunes``: Removed the "-march" option if mcpu is already added. + +- ``update-alternatives``: Convert file renames to + :term:`PACKAGE_PREPROCESS_FUNCS` + +- ``base/pixbufcache``: Obsolete ``sstatecompletions`` code has been + removed. + +- :ref:`native ` class: + :term:`RDEPENDS` handling has been enabled. + +- ``inetutils``: This recipe has rsh disabled. + + diff --git a/poky/documentation/migration-guides/migration-3.0.rst b/poky/documentation/migration-guides/migration-3.0.rst new file mode 100644 index 000000000..163c6201c --- /dev/null +++ b/poky/documentation/migration-guides/migration-3.0.rst @@ -0,0 +1,319 @@ +Release 3.0 (zeus) +================== + +This section provides migration information for moving to the Yocto +Project 3.0 Release (codename "zeus") from the prior release. + +.. _migration-3.0-init-system-selection: + +Init System Selection +--------------------- + +Changing the init system manager previously required setting a number of +different variables. You can now change the manager by setting the +``INIT_MANAGER`` variable and the corresponding include files (i.e. +``conf/distro/include/init-manager-*.conf``). Include files are provided +for four values: "none", "sysvinit", "systemd", and "mdev-busybox". The +default value, "none", for ``INIT_MANAGER`` should allow your current +settings to continue working. However, it is advisable to explicitly set +``INIT_MANAGER``. + +.. _migration-3.0-lsb-support-removed: + +LSB Support Removed +------------------- + +Linux Standard Base (LSB) as a standard is not current, and is not well +suited for embedded applications. Support can be continued in a separate +layer if needed. However, presently LSB support has been removed from +the core. + +As a result of this change, the ``poky-lsb`` derivative distribution +configuration that was also used for testing alternative configurations +has been replaced with a ``poky-altcfg`` distribution that has LSB parts +removed. + +.. _migration-3.0-removed-recipes: + +Removed Recipes +--------------- + +The following recipes have been removed. + +- ``core-image-lsb-dev``: Part of removed LSB support. + +- ``core-image-lsb``: Part of removed LSB support. + +- ``core-image-lsb-sdk``: Part of removed LSB support. + +- ``cve-check-tool``: Functionally replaced by the ``cve-update-db`` + recipe and ``cve-check`` class. + +- ``eglinfo``: No longer maintained. ``eglinfo`` from ``mesa-demos`` is + an adequate and maintained alternative. + +- ``gcc-8.3``: Version 8.3 removed. Replaced by 9.2. + +- ``gnome-themes-standard``: Only needed by gtk+ 2.x, which has been + removed. + +- ``gtk+``: GTK+ 2 is obsolete and has been replaced by gtk+3. + +- ``irda-utils``: Has become obsolete. IrDA support has been removed + from the Linux kernel in version 4.17 and later. + +- ``libnewt-python``: ``libnewt`` Python support merged into main + ``libnewt`` recipe. + +- ``libsdl``: Replaced by newer ``libsdl2``. + +- ``libx11-diet``: Became obsolete. + +- ``libxx86dga``: Removed obsolete client library. + +- ``libxx86misc``: Removed. Library is redundant. + +- ``linux-yocto``: Version 5.0 removed, which is now redundant (5.2 / + 4.19 present). + +- ``lsbinitscripts``: Part of removed LSB support. + +- ``lsb``: Part of removed LSB support. + +- ``lsbtest``: Part of removed LSB support. + +- ``openssl10``: Replaced by newer ``openssl`` version 1.1. + +- ``packagegroup-core-lsb``: Part of removed LSB support. + +- ``python-nose``: Removed the Python 2.x version of the recipe. + +- ``python-numpy``: Removed the Python 2.x version of the recipe. + +- ``python-scons``: Removed the Python 2.x version of the recipe. + +- ``source-highlight``: No longer needed. + +- ``stress``: Replaced by ``stress-ng``. + +- ``vulkan``: Split into ``vulkan-loader``, ``vulkan-headers``, and + ``vulkan-tools``. + +- ``weston-conf``: Functionality moved to ``weston-init``. + +.. _migration-3.0-packaging-changes: + +Packaging Changes +----------------- + +The following packaging changes have occurred. + +- The `Epiphany `__ browser + has been dropped from ``packagegroup-self-hosted`` as it has not been + needed inside ``build-appliance-image`` for quite some time and was + causing resource problems. + +- ``libcap-ng`` Python support has been moved to a separate + ``libcap-ng-python`` recipe to streamline the build process when the + Python bindings are not needed. + +- ``libdrm`` now packages the file ``amdgpu.ids`` into a separate + ``libdrm-amdgpu`` package. + +- ``python3``: The ``runpy`` module is now in the ``python3-core`` + package as it is required to support the common "python3 -m" command + usage. + +- ``distcc`` now provides separate ``distcc-client`` and + ``distcc-server`` packages as typically one or the other are needed, + rather than both. + +- ``python*-setuptools`` recipes now separately package the + ``pkg_resources`` module in a ``python-pkg-resources`` / + ``python3-pkg-resources`` package as the module is useful independent + of the rest of the setuptools package. The main ``python-setuptools`` + / ``python3-setuptools`` package depends on this new package so you + should only need to update dependencies unless you want to take + advantage of the increased granularity. + +.. _migration-3.0-cve-checking: + +CVE Checking +------------ + +``cve-check-tool`` has been functionally replaced by a new +``cve-update-db`` recipe and functionality built into the ``cve-check`` +class. The result uses NVD JSON data feeds rather than the deprecated +XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring, +and makes other improvements. + +Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced +by ``CVE_CHECK_WHITELIST``. + +.. _migration-3.0-bitbake-changes: + +Bitbake Changes +--------------- + +The following BitBake changes have occurred. + +- ``addtask`` statements now properly validate dependent tasks. + Previously, an invalid task was silently ignored. With this change, + the invalid task generates a warning. + +- Other invalid ``addtask`` and ``deltask`` usages now trigger these + warnings: "multiple target tasks arguments with addtask / deltask", + and "multiple before/after clauses". + +- The "multiconfig" prefix is now shortened to "mc". "multiconfig" will + continue to work, however it may be removed in a future release. + +- The ``bitbake -g`` command no longer generates a + ``recipe-depends.dot`` file as the contents (i.e. a reprocessed + version of ``task-depends.dot``) were confusing. + +- The ``bb.build.FuncFailed`` exception, previously raised by + ``bb.build.exec_func()`` when certain other exceptions have occurred, + has been removed. The real underlying exceptions will be raised + instead. If you have calls to ``bb.build.exec_func()`` in custom + classes or ``tinfoil-using`` scripts, any references to + ``bb.build.FuncFailed`` should be cleaned up. + +- Additionally, the ``bb.build.exec_func()`` no longer accepts the + "pythonexception" parameter. The function now always raises + exceptions. Remove this argument in any calls to + ``bb.build.exec_func()`` in custom classes or scripts. + +- The ``BB_SETSCENE_VERIFY_FUNCTION2`` variable is no longer used. In + the unlikely event that you have any references to it, they should be + removed. + +- The ``RunQueueExecuteScenequeue`` and ``RunQueueExecuteTasks`` events + have been removed since setscene tasks are now executed as part of + the normal runqueue. Any event handling code in custom classes or + scripts that handles these two events need to be updated. + +- The arguments passed to functions used with + :term:`bitbake:BB_HASHCHECK_FUNCTION` + have changed. If you are using your own custom hash check function, + see :yocto_git:`/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725` + for details. + +- Task specifications in ``BB_TASKDEPDATA`` and class implementations + used in signature generator classes now use ":" everywhere + rather than the "." delimiter that was being used in some places. + This change makes it consistent with all areas in the code. Custom + signature generator classes and code that reads ``BB_TASKDEPDATA`` + need to be updated to use ':' as a separator rather than '.'. + +.. _migration-3.0-sanity-checks: + +Sanity Checks +------------- + +The following sanity check changes occurred. + +- :term:`SRC_URI` is now checked for usage of two + problematic items: + + - "${PN}" prefix/suffix use - Warnings always appear if ${PN} is + used. You must fix the issue regardless of whether multiconfig or + anything else that would cause prefixing/suffixing to happen. + + - Github archive tarballs - these are not guaranteed to be stable. + Consequently, it is likely that the tarballs will be refreshed and + thus the SRC_URI checksums will fail to apply. It is recommended + that you fetch either an official release tarball or a specific + revision from the actual Git repository instead. + + Either one of these items now trigger a warning by default. If you + wish to disable this check, remove ``src-uri-bad`` from + :term:`WARN_QA`. + +- The ``file-rdeps`` runtime dependency check no longer expands + :term:`RDEPENDS` recursively as there is no mechanism + to ensure they can be fully computed, and thus races sometimes result + in errors either showing up or not. Thus, you might now see errors + for missing runtime dependencies that were previously satisfied + recursively. Here is an example: package A contains a shell script + starting with ``#!/bin/bash`` but has no dependency on bash. However, + package A depends on package B, which does depend on bash. You need + to add the missing dependency or dependencies to resolve the warning. + +- Setting ``DEPENDS_${PN}`` anywhere (i.e. typically in a recipe) now + triggers an error. The error is triggered because + :term:`DEPENDS` is not a package-specific variable + unlike RDEPENDS. You should set ``DEPENDS`` instead. + +- systemd currently does not work well with the musl C library because + only upstream officially supports linking the library with glibc. + Thus, a warning is shown when building systemd in conjunction with + musl. + +.. _migration-3.0-miscellaneous-changes: + +Miscellaneous Changes +--------------------- + +The following miscellaneous changes have occurred. + +- The ``gnome`` class has been removed because it now does very little. + You should update recipes that previously inherited this class to do + the following: inherit gnomebase gtk-icon-cache gconf mime + +- The ``meta/recipes-kernel/linux/linux-dtb.inc`` file has been + removed. This file was previously deprecated in favor of setting + :term:`KERNEL_DEVICETREE` in any kernel + recipe and only produced a warning. Remove any ``include`` or + ``require`` statements pointing to this file. + +- :term:`TARGET_CFLAGS`, + :term:`TARGET_CPPFLAGS`, + :term:`TARGET_CXXFLAGS`, and + :term:`TARGET_LDFLAGS` are no longer exported + to the external environment. This change did not require any changes + to core recipes, which is a good indicator that no changes will be + required. However, if for some reason the software being built by one + of your recipes is expecting these variables to be set, then building + the recipe will fail. In such cases, you must either export the + variable or variables in the recipe or change the scripts so that + exporting is not necessary. + +- You must change the host distro identifier used in + :term:`NATIVELSBSTRING` to use all lowercase + characters even if it does not contain a version number. This change + is necessary only if you are not using ``uninative`` and + :term:`SANITY_TESTED_DISTROS`. + +- In the ``base-files`` recipe, writing the hostname into + ``/etc/hosts`` and ``/etc/hostname`` is now done within the main + :ref:`ref-tasks-install` function rather than in the + ``do_install_basefilesissue`` function. The reason for the change is + because ``do_install_basefilesissue`` is more easily overridden + without having to duplicate the hostname functionality. If you have + done the latter (e.g. in a ``base-files`` bbappend), then you should + remove it from your customized ``do_install_basefilesissue`` + function. + +- The ``wic --expand`` command now uses commas to separate "key:value" + pairs rather than hyphens. + + .. note:: + + The wic command-line help is not updated. + + You must update any scripts or commands where you use + ``wic --expand`` with multiple "key:value" pairs. + +- UEFI image variable settings have been moved from various places to a + central ``conf/image-uefi.conf``. This change should not influence + any existing configuration as the ``meta/conf/image-uefi.conf`` in + the core metadata sets defaults that can be overridden in the same + manner as before. + +- ``conf/distro/include/world-broken.inc`` has been removed. For cases + where certain recipes need to be disabled when using the musl C + library, these recipes now have ``COMPATIBLE_HOST_libc-musl`` set + with a comment that explains why. + + diff --git a/poky/documentation/migration-guides/migration-3.1.rst b/poky/documentation/migration-guides/migration-3.1.rst new file mode 100644 index 000000000..80b8f6baa --- /dev/null +++ b/poky/documentation/migration-guides/migration-3.1.rst @@ -0,0 +1,275 @@ +Release 3.1 (dunfell) +===================== + +This section provides migration information for moving to the Yocto +Project 3.1 Release (codename "dunfell") from the prior release. + +.. _migration-3.1-minimum-system-requirements: + +Minimum system requirements +--------------------------- + +The following versions / requirements of build host components have been +updated: + +- gcc 5.0 + +- python 3.5 + +- tar 1.28 + +- ``rpcgen`` is now required on the host (part of the ``libc-dev-bin`` + package on Ubuntu, Debian and related distributions, and the + ``glibc`` package on RPM-based distributions). + +Additionally, the ``makeinfo`` and ``pod2man`` tools are *no longer* +required on the host. + +.. _migration-3.1-mpc8315e-rdb-removed: + +mpc8315e-rdb machine removed +---------------------------- + +The MPC8315E-RDB machine is old/obsolete and unobtainable, thus given +the maintenance burden the ``mpc8315e-rdb`` machine configuration that +supported it has been removed in this release. The removal does leave a +gap in official PowerPC reference hardware support; this may change in +future if a suitable machine with accompanying support resources is +found. + +.. _migration-3.1-python-2-removed: + +Python 2 removed +---------------- + +Due to the expiration of upstream support in January 2020, support for +Python 2 has now been removed; it is recommended that you use Python 3 +instead. If absolutely needed there is a meta-python2 community layer +containing Python 2, related classes and various Python 2-based modules, +however it should not be considered as supported. + +.. _migration-3.1-reproducible-builds: + +Reproducible builds now enabled by default +------------------------------------------ + +In order to avoid unnecessary differences in output files (aiding binary +reproducibility), the Poky distribution configuration +(``DISTRO = "poky"``) now inherits the ``reproducible_build`` class by +default. + +.. _migration-3.1-ptest-feature-impact: + +Impact of ptest feature is now more significant +----------------------------------------------- + +The Poky distribution configuration (``DISTRO = "poky"``) enables ptests +by default to enable runtime testing of various components. In this +release, a dependency needed to be added that has resulted in a +significant increase in the number of components that will be built just +when building a simple image such as core-image-minimal. If you do not +need runtime tests enabled for core components, then it is recommended +that you remove "ptest" from +:term:`DISTRO_FEATURES` to save a significant +amount of build time e.g. by adding the following in your configuration:: + + DISTRO_FEATURES_remove = "ptest" + +.. _migration-3.1-removed-recipes: + +Removed recipes +--------------- + +The following recipes have been removed: + +- ``chkconfig``: obsolete + +- ``console-tools``: obsolete + +- ``enchant``: replaced by ``enchant2`` + +- ``foomatic-filters``: obsolete + +- ``libidn``: no longer needed, moved to meta-oe + +- ``libmodulemd``: replaced by ``libmodulemd-v1`` + +- ``linux-yocto``: drop 4.19, 5.2 version recipes (5.4 now provided) + +- ``nspr``: no longer needed, moved to meta-oe + +- ``nss``: no longer needed, moved to meta-oe + +- ``python``: Python 2 removed (Python 3 preferred) + +- ``python-setuptools``: Python 2 version removed (python3-setuptools + preferred) + +- ``sysprof``: no longer needed, moved to meta-oe + +- ``texi2html``: obsolete + +- ``u-boot-fw-utils``: functionally replaced by ``libubootenv`` + +.. _migration-3.1-features-check: + +features_check class replaces distro_features_check +--------------------------------------------------- + +The ``distro_features_check`` class has had its functionality expanded, +now supporting ``ANY_OF_MACHINE_FEATURES``, +``REQUIRED_MACHINE_FEATURES``, ``CONFLICT_MACHINE_FEATURES``, +``ANY_OF_COMBINED_FEATURES``, ``REQUIRED_COMBINED_FEATURES``, +``CONFLICT_COMBINED_FEATURES``. As a result the class has now been +renamed to ``features_check``; the ``distro_features_check`` class still +exists but generates a warning and redirects to the new class. In +preparation for a future removal of the old class it is recommended that +you update recipes currently inheriting ``distro_features_check`` to +inherit ``features_check`` instead. + +.. _migration-3.1-removed-classes: + +Removed classes +--------------- + +The following classes have been removed: + +- ``distutils-base``: moved to meta-python2 + +- ``distutils``: moved to meta-python2 + +- ``libc-common``: merged into the glibc recipe as nothing else used + it. + +- ``python-dir``: moved to meta-python2 + +- ``pythonnative``: moved to meta-python2 + +- ``setuptools``: moved to meta-python2 + +- ``tinderclient``: dropped as it was obsolete. + +.. _migration-3.1-src-uri-checksums: + +SRC_URI checksum behaviour +-------------------------- + +Previously, recipes by tradition included both SHA256 and MD5 checksums +for remotely fetched files in :term:`SRC_URI`, even +though only one is actually mandated. However, the MD5 checksum does not +add much given its inherent weakness; thus when a checksum fails only +the SHA256 sum will now be printed. The md5sum will still be verified if +it is specified. + +.. _migration-3.1-npm: + +npm fetcher changes +------------------- + +The npm fetcher has been completely reworked in this release. The npm +fetcher now only fetches the package source itself and no longer the +dependencies; there is now also an npmsw fetcher which explicitly +fetches the shrinkwrap file and the dependencies. This removes the +slightly awkward ``NPM_LOCKDOWN`` and ``NPM_SHRINKWRAP`` variables which +pointed to local files; the lockdown file is no longer needed at all. +Additionally, the package name in ``npm://`` entries in +:term:`SRC_URI` is now specified using a ``package`` +parameter instead of the earlier ``name`` which overlapped with the +generic ``name`` parameter. All recipes using the npm fetcher will need +to be changed as a result. + +An example of the new scheme:: + + SRC_URI = "npm://registry.npmjs.org;package=array-flatten;version=1.1.1 \ + npmsw://${THISDIR}/npm-shrinkwrap.json" + +Another example where the sources are fetched from git rather than an npm repository:: + + SRC_URI = "git://github.com/foo/bar.git;protocol=https \ + npmsw://${THISDIR}/npm-shrinkwrap.json" + +devtool and recipetool have also been updated to match with the npm +fetcher changes. Other than producing working and more complete recipes +for npm sources, there is also a minor change to the command line for +devtool: the ``--fetch-dev`` option has been renamed to ``--npm-dev`` as +it is npm-specific. + +.. _migration-3.1-packaging-changes: + +Packaging changes +----------------- + +- ``intltool`` has been removed from ``packagegroup-core-sdk`` as it is + rarely needed to build modern software - gettext can do most of the + things it used to be needed for. ``intltool`` has also been removed + from ``packagegroup-core-self-hosted`` as it is not needed to for + standard builds. + +- git: ``git-am``, ``git-difftool``, ``git-submodule``, and + ``git-request-pull`` are no longer perl-based, so are now installed + with the main ``git`` package instead of within ``git-perltools``. + +- The ``ldconfig`` binary built as part of glibc has now been moved to + its own ``ldconfig`` package (note no ``glibc-`` prefix). This + package is in the :term:`RRECOMMENDS` of the main + ``glibc`` package if ``ldconfig`` is present in + :term:`DISTRO_FEATURES`. + +- ``libevent`` now splits each shared library into its own package (as + Debian does). Since these are shared libraries and will be pulled in + through the normal shared library dependency handling, there should + be no impact to existing configurations other than less unnecessary + libraries being installed in some cases. + +- linux-firmware now has a new package for ``bcm4366c`` and includes + available NVRAM config files into the ``bcm43340``, ``bcm43362``, + ``bcm43430`` and ``bcm4356-pcie`` packages. + +- ``harfbuzz`` now splits the new ``libharfbuzz-subset.so`` library + into its own package to reduce the main package size in cases where + ``libharfbuzz-subset.so`` is not needed. + +.. _migration-3.1-package-qa-warnings: + +Additional warnings +------------------- + +Warnings will now be shown at ``do_package_qa`` time in the following +circumstances: + +- A recipe installs ``.desktop`` files containing ``MimeType`` keys but + does not inherit the new ``mime-xdg`` class + +- A recipe installs ``.xml`` files into ``${datadir}/mime/packages`` + but does not inherit the ``mime`` class + +.. _migration-3.1-x86-live-wic: + +``wic`` image type now used instead of ``live`` by default for x86 +------------------------------------------------------------------ + +``conf/machine/include/x86-base.inc`` (inherited by most x86 machine +configurations) now specifies ``wic`` instead of ``live`` by default in +:term:`IMAGE_FSTYPES`. The ``live`` image type will +likely be removed in a future release so it is recommended that you use +``wic`` instead. + +.. _migration-3.1-misc: + +Miscellaneous changes +--------------------- + +- The undocumented ``SRC_DISTRIBUTE_LICENSES`` variable has now been + removed in favour of a new :term:`AVAILABLE_LICENSES` variable which is + dynamically set based upon license files found in + ``${COMMON_LICENSE_DIR}`` and ``${LICENSE_PATH}``. + +- The tune definition for big-endian microblaze machines is now + ``microblaze`` instead of ``microblazeeb``. + +- ``newlib`` no longer has built-in syscalls. ``libgloss`` should then + provide the syscalls, ``crt0.o`` and other functions that are no + longer part of ``newlib`` itself. If you are using + ``TCLIBC = "newlib"`` this now means that you must link applications + with both ``newlib`` and ``libgloss``, whereas before ``newlib`` + would run in many configurations by itself. diff --git a/poky/documentation/migration-guides/migration-3.2.rst b/poky/documentation/migration-guides/migration-3.2.rst new file mode 100644 index 000000000..a940f2323 --- /dev/null +++ b/poky/documentation/migration-guides/migration-3.2.rst @@ -0,0 +1,313 @@ +Release 3.2 (gatesgarth) +======================== + +This section provides migration information for moving to the Yocto +Project 3.2 Release (codename "gatesgarth") from the prior release. + +.. _migration-3.2-minimum-system-requirements: + +Minimum system requirements +--------------------------- + +``gcc`` version 6.0 is now required at minimum on the build host. For older +host distributions where this is not available, you can use the +``buildtools-extended-tarball`` (easily installable using +``scripts/install-buildtools``). + + +.. _migration-3.2-removed-recipes: + +Removed recipes +--------------- + +The following recipes have been removed: + +- ``bjam-native``: replaced by ``boost-build-native`` +- ``avahi-ui``: folded into the main ``avahi`` recipe - the GTK UI can be disabled using :term:`PACKAGECONFIG` for ``avahi``. +- ``build-compare``: no longer needed with the removal of the ``packagefeed-stability`` class +- ``dhcp``: obsolete, functionally replaced by ``dhcpcd`` and ``kea`` +- ``libmodulemd-v1``: replaced by ``libmodulemd`` +- ``packagegroup-core-device-devel``: obsolete + + +.. _migration-3.2-removed-classes: + +Removed classes +--------------- + +The following classes (.bbclass files) have been removed: + +- ``spdx``: obsolete - the Yocto Project is a strong supporter of SPDX, but this class was old code using a dated approach and had the potential to be misleading. The ``meta-sdpxscanner`` layer is a much more modern and active approach to handling this and is recommended as a replacement. + +- ``packagefeed-stability``: this class had become obsolete with the advent of hash equivalence and reproducible builds. + + +pseudo path filtering and mismatch behaviour +-------------------------------------------- + +pseudo now operates on a filtered subset of files. This is a significant change +to the way pseudo operates within OpenEmbedded - by default, pseudo monitors and +logs (adds to its database) any file created or modified whilst in a ``fakeroot`` +environment. However, there are large numbers of files that we simply don't care +about the permissions of whilst in that ``fakeroot`` context, for example ${:term:`S`}, ${:term:`B`}, ${:term:`T`}, +${:term:`SSTATE_DIR`}, the central sstate control directories, and others. + +As of this release, new functionality in pseudo is enabled to ignore these +directory trees (controlled using a new :term:`PSEUDO_IGNORE_PATHS` variable) +resulting in a cleaner database with less chance of "stray" mismatches if files +are modified outside pseudo context. It also should reduce some overhead from +pseudo as the interprocess round trip to the server is avoided. + +There is a possible complication where some existing recipe may break, for +example, a recipe was found to be writing to ``${B}/install`` for +``make install`` in ``do_install`` and since ``${B}`` is listed as not to be tracked, +there were errors trying to ``chown root`` for files in this location. Another +example was the ``tcl`` recipe where the source directory :term:`S` is set to a +subdirectory of the source tree but files were written out to the directory +structure above that subdirectory. For these types of cases in your own recipes, +extend :term:`PSEUDO_IGNORE_PATHS` to cover additional paths that pseudo should not +be monitoring. + +In addition, pseudo's behaviour on mismatches has now been changed - rather +than doing what turns out to be a rather dangerous "fixup" if it sees a file +with a different path but the same inode as another file it has previously seen, +pseudo will throw an ``abort()`` and direct you to a :yocto_wiki:`wiki page ` +that explains how to deal with this. + + +.. _migration-3.2-multilib-mlprefix: + +``MLPREFIX`` now required for multilib when runtime dependencies conditionally added +------------------------------------------------------------------------------------ + +In order to solve some previously intractable problems with runtime +dependencies and multilib, a change was made that now requires the :term:`MLPREFIX` +value to be explicitly prepended to package names being added as +dependencies (e.g. in :term:`RDEPENDS` and :term:`RRECOMMENDS` values) +where the dependency is conditionally added. + +If you have anonymous python or in-line python conditionally adding +dependencies in your custom recipes, and you intend for those recipes to +work with multilib, then you will need to ensure that ``${MLPREFIX}`` +is prefixed on the package names in the dependencies, for example +(from the ``glibc`` recipe):: + + RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}" + +This also applies when conditionally adding packages to :term:`PACKAGES` where +those packages have dependencies, for example (from the ``alsa-plugins`` recipe):: + + PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}" + ... + RDEPENDS_${PN}-pulseaudio-conf += "\ + ${MLPREFIX}libasound-module-conf-pulse \ + ${MLPREFIX}libasound-module-ctl-pulse \ + ${MLPREFIX}libasound-module-pcm-pulse \ + " + + +.. _migration-3.2-packagegroup-core-device-devel: + +packagegroup-core-device-devel no longer included in images built for qemu* machines +------------------------------------------------------------------------------------ + +``packagegroup-core-device-devel`` was previously added automatically to +images built for ``qemu*`` machines, however the purpose of the group and what +it should contain is no longer clear, and in general, adding userspace +development items to images is best done at the image/class level; thus this +packagegroup was removed. + +This packagegroup previously pulled in the following: + +- ``distcc-config`` +- ``nfs-export-root`` +- ``bash`` +- ``binutils-symlinks`` + +If you still need any of these in your image built for a ``qemu*`` machine +then you will add them explicitly to :term:`IMAGE_INSTALL` or another +appropriate place in the dependency chain for your image (if you have not +already done so). + + +.. _migration-3.2-dhcp: + +DHCP server/client replaced +--------------------------- + +The ``dhcp`` software package has become unmaintained and thus has been +functionally replaced by ``dhcpcd`` (client) and ``kea`` (server). You will +need to replace references to the recipe/package names as appropriate - most +commonly, at the package level ``dhcp-client`` should be replaced by +``dhcpcd`` and ``dhcp-server`` should be replaced by ``kea``. If you have any +custom configuration files for these they will need to be adapted - refer to +the upstream documentation for ``dhcpcd`` and ``kea`` for further details. + + +.. _migration-3.2-packaging-changes: + +Packaging changes +----------------- + +- ``python3``: the ``urllib`` python package has now moved into the core package, as it is used more commonly than just netclient (e.g. email, xml, mimetypes, pydoc). In addition, the ``pathlib`` module is now also part of the core package. + +- ``iptables``: ``iptables-apply`` and ``ip6tables-apply`` have been split out to their own package to avoid a bash dependency in the main ``iptables`` package + + +.. _migration-3.2-package-qa-checks: + +Package QA check changes +------------------------ + +Previously, the following package QA checks triggered warnings, however they can +be indicators of genuine underlying problems and are therefore now treated as +errors: + +- :ref:`already-stripped ` +- :ref:`compile-host-path ` +- :ref:`installed-vs-shipped ` +- :ref:`ldflags ` +- :ref:`pn-overrides ` +- :ref:`rpaths ` +- :ref:`staticdev ` +- :ref:`unknown-configure-option ` +- :ref:`useless-rpaths ` + +In addition, the following new checks were added and default to triggering an error: + +- :ref:`shebang-size `: Check for shebang (#!) lines longer than 128 characters, which can give an error at runtime depending on the operating system. + +- :ref:`unhandled-features-check `: Check if any of the variables supported by the :ref:`features_check ` class is set while not inheriting the class itself. + +- :ref:`missing-update-alternatives `: Check if the recipe sets the :term:`ALTERNATIVE` variable for any of its packages, and does not inherit the :ref:`update-alternatives ` class. + +- A trailing slash or duplicated slashes in the value of :term:`S` or :term:`B` will now trigger a warning so that they can be removed and path comparisons can be more reliable - remove any instances of these in your recipes if the warning is displayed. + + +.. _migration-3.2-src-uri-file-globbing: + +Globbing no longer supported in ``file://`` entries in ``SRC_URI`` +------------------------------------------------------------------ + +Globbing (``*`` and ``?`` wildcards) in ``file://`` URLs within :term:`SRC_URI` +did not properly support file checksums, thus changes to the source files +would not always change the do_fetch task checksum, and consequently would +not ensure that the changed files would be incorporated in subsequent builds. + +Unfortunately it is not practical to make globbing work generically here, so +the decision was taken to remove support for globs in ``file://`` URLs. +If you have any usage of these in your recipes, then you will now need to +either add each of the files that you expect to match explicitly, or +alternatively if you still need files to be pulled in dynamically, put the +files into a subdirectory and reference that instead. + + +.. _migration-3.2-deploydir-clean: + +deploy class now cleans ``DEPLOYDIR`` before ``do_deploy`` +---------------------------------------------------------- + +``do_deploy`` as implemented in the :ref:`deploy ` class now cleans up ${:term:`DEPLOYDIR`} before running, just as ``do_install`` cleans up ${:term:`D`} before running. This reduces the risk of :term:`DEPLOYDIR` being accidentally contaminated by files from previous runs, possibly even with different config, in case of incremental builds. + +Most recipes and classes that inherit the ``deploy`` class or interact with ``do_deploy`` are unlikely to be affected by this unless they add ``prefuncs`` to ``do_deploy`` *which also* put files into ``${DEPLOYDIR}`` - these should be refactored to use ``do_deploy_prepend`` instead. + + +.. _migration-3.2-nativesdk-sdk-provides-dummy: + +Custom SDK / SDK-style recipes need to include ``nativesdk-sdk-provides-dummy`` +------------------------------------------------------------------------------- + +All ``nativesdk`` packages require ``/bin/sh`` due to their postinstall scriptlets, thus this package has to be dummy-provided within the SDK and ``nativesdk-sdk-provides-dummy`` now does this. If you have a custom SDK recipe (or your own SDK-style recipe similar to e.g. ``buildtools-tarball``), you will need to ensure ``nativesdk-sdk-provides-dummy`` or an equivalent is included in :term:`TOOLCHAIN_HOST_TASK`. + + +``ld.so.conf`` now moved back to main ``glibc`` package +------------------------------------------------------- + +There are cases where one doesn't want ``ldconfig`` on target (e.g. for +read-only root filesystems, it's rather pointless), yet one still +needs ``/etc/ld.so.conf`` to be present at image build time: + +When some recipe installs libraries to a non-standard location, and +therefore installs in a file in ``/etc/ld.so.conf.d/foo.conf``, we +need ``/etc/ld.so.conf`` containing:: + + include /etc/ld.so.conf.d/*.conf + +in order to get those other locations picked up. + +Thus ``/etc/ld.so.conf`` is now in the main ``glibc`` package so that +there's always an ``ld.so.conf`` present when the build-time ``ldconfig`` +runs towards the end of image construction. + +The ``ld.so.conf`` and ``ld.so.conf.d/*.conf`` files do not take up +significant space (at least not compared to the ~700kB ``ldconfig`` binary), and they +might be needed in case ``ldconfig`` is installable, so they are left +in place after the image is built. Technically it would be possible to +remove them if desired, though it would not be trivial if you still +wanted the build-time ldconfig to function (:term:`ROOTFS_POSTPROCESS_COMMAND` +will not work as ``ldconfig`` is run after the functions referred to +by that variable). + + +.. _migration-3.2-virgl: + +Host DRI drivers now used for GL support within ``runqemu`` +----------------------------------------------------------- + +``runqemu`` now uses the mesa-native libraries everywhere virgl is used +(i.e. when ``gl``, ``gl-es`` or ``egl-headless`` options are specified), +but instructs them to load DRI drivers from the host. Unfortunately this +may not work well with proprietary graphics drivers such as those from +Nvidia; if you are using such drivers then you may need to switch to an +alternative (such as Nouveau in the case of Nvidia hardware) or avoid +using the GL options. + + +.. _migration-3.2-initramfs-suffix: + +initramfs images now use a blank suffix +--------------------------------------- + +The reference initramfs images (``core-image-minimal-initramfs``, +``core-image-tiny-initramfs`` and ``core-image-testmaster-initramfs``) now +set an empty string for :term:`IMAGE_NAME_SUFFIX`, which otherwise defaults +to ``".rootfs"``. These images aren't root filesystems and thus the rootfs +label didn't make sense. If you are looking for the output files generated +by these image recipes directly then you will need to adapt to the new +naming without the ``.rootfs`` part. + + +.. _migration-3.2-image-artifact-names: + +Image artifact name variables now centralised in image-artifact-names class +--------------------------------------------------------------------------- + +The defaults for the following image artifact name variables have been moved +from bitbake.conf to a new ``image-artifact-names`` class: + +- :term:`IMAGE_BASENAME` +- :term:`IMAGE_LINK_NAME` +- :term:`IMAGE_NAME` +- :term:`IMAGE_NAME_SUFFIX` +- :term:`IMAGE_VERSION_SUFFIX` + +Image-related classes now inherit this class, and typically these variables +are only referenced within image recipes so those will be unaffected by this +change. However if you have references to these variables in either a recipe +that is not an image or a class that is enabled globally, then those will +now need to be changed to ``inherit image-artifact-names``. + + +.. _migration-3.2-misc: + +Miscellaneous changes +--------------------- + +- Support for the long-deprecated ``PACKAGE_GROUP`` variable has now been removed - replace any remaining instances with :term:`FEATURE_PACKAGES`. +- The ``FILESPATHPKG`` variable, having been previously deprecated, has now been removed. Replace any remaining references with appropriate use of :term:`FILESEXTRAPATHS`. +- Erroneous use of ``inherit +=`` (instead of ``INHERIT +=``) in a configuration file now triggers an error instead of silently being ignored. +- ptest support has been removed from the ``kbd`` recipe, as upstream has moved to autotest which is difficult to work with in a cross-compilation environment. +- ``oe.utils.is_machine_specific()`` and ``oe.utils.machine_paths()`` have been removed as their utility was questionable. In the unlikely event that you have references to these in your own code, then the code will need to be reworked. +- The ``i2ctransfer`` module is now disabled by default when building ``busybox`` in order to be consistent with disabling the other i2c tools there. If you do wish the i2ctransfer module to be built in BusyBox then add ``CONFIG_I2CTRANSFER=y`` to your custom BusyBox configuration. +- In the ``Upstream-Status`` header convention for patches, ``Accepted`` has been replaced with ``Backport`` as these almost always mean the same thing i.e. the patch is already upstream and may need to be removed in a future recipe upgrade. If you are adding these headers to your own patches then use ``Backport`` to indicate that the patch has been sent upstream. +- The ``tune-supersparc.inc`` tune file has been removed as it does not appear to be widely used and no longer works. diff --git a/poky/documentation/migration-guides/migration-3.3.rst b/poky/documentation/migration-guides/migration-3.3.rst new file mode 100644 index 000000000..28857e820 --- /dev/null +++ b/poky/documentation/migration-guides/migration-3.3.rst @@ -0,0 +1,168 @@ +Release 3.3 (hardknott) +======================= + +This section provides migration information for moving to the Yocto +Project 3.3 Release (codename "hardknott") from the prior release. + + +.. _migration-3.3-minimum-system-requirements: + +Minimum system requirements +--------------------------- + +You will now need at least Python 3.6 installed on your build host. Most recent +distributions provide this, but should you be building on a distribution that +does not have it, you can use the ``buildtools-tarball`` (easily installable +using ``scripts/install-buildtools``) - see +:ref:`ref-manual/system-requirements:required git, tar, python and gcc versions` +for details. + + +.. _migration-3.3-removed-recipes: + +Removed recipes +--------------- + +The following recipes have been removed: + +- ``go-dep``: obsolete with the advent of go modules +- ``gst-validate``: replaced by ``gst-devtools`` +- ``linux-yocto``: removed 5.8 version recipes (5.4 / 5.10 still provided) +- ``vulkan-demos``: replaced by ``vulkan-samples`` + + +.. _migration-3.3-common-license-only-versions: + +Single version common license file naming +----------------------------------------- + +Some license files in ``meta/files/common-licenses`` have been renamed to match +current SPDX naming conventions: + +- AGPL-3.0 -> AGPL-3.0-only +- GPL-1.0 -> GPL-1.0-only +- GPL-2.0 -> GPL-2.0-only +- GPL-3.0 -> GPL-3.0-only +- LGPL-2.0 -> LGPL-2.0-only +- LGPL-2.1 -> LGPL-2.1-only +- LGPL-3.0 -> LGPL-3.0-only + +Additionally, corresponding "-or-later" suffixed files have been added e.g. +``GPL-2.0-or-later``. + +It is not required that you change :term:`LICENSE` values as there are mappings +from the original names in place; however, in rare cases where you have a recipe +which sets :term:`LIC_FILES_CHKSUM` to point to file(s) in +``meta/files/common-licenses`` (which in any case is not recommended) you will +need to update those. + + +.. _migration-3.3-python3targetconfig: + +New ``python3targetconfig`` class +--------------------------------- + +A new :ref:`python3targetconfig ` class has been +created for situations where you would previously have inherited the +``python3native`` class but need access to target configuration data (such as +correct installation directories). Recipes where this situation applies should +be changed to inherit ``python3targetconfig`` instead of ``python3native``. This +also adds a dependency on target ``python3``, so it should only be used where +appropriate in order to avoid unnecessarily lengthening builds. + +Some example recipes where this change has been made: ``gpgme``, ``libcap-ng``, +``python3-pycairo``. + + +.. _migration-3.3-distutils-path: + +``setup.py`` path for python modules +------------------------------------ + +In a Python module, sometimes ``setup.py`` can be buried deep in the +source tree. Previously this was handled in recipes by setting :term:`S` to +point to the subdirectory within the source where ``setup.py`` is located. +However with the recent :ref:`pseudo ` +changes, some Python modules make changes to files beneath ``${S}``, for +example:: + + S = "${WORKDIR}/git/python/pythonmodule" + +then in ``setup.py`` it works with source code in a relative fashion, such +as ``../../src``. This causes pseudo to abort as it isn't able to track +the paths properly. This release introduces a new :term:`DISTUTILS_SETUP_PATH` +variable so that recipes can specify it explicitly, for example:: + + S = "${WORKDIR}/git" + DISTUTILS_SETUP_PATH = "${S}/python/pythonmodule" + +Recipes that inherit from :ref:`distutils3 ` (or +:ref:`setuptools3 ` which itself inherits +:ref:`distutils3 `) that also set :term:`S` to +point to a Python module within a subdirectory in the aforementioned +manner should be changed to set :term:`DISTUTILS_SETUP_PATH` instead. + + +.. _migration-3.3-bitbake: + +BitBake changes +--------------- + +- BitBake is now configured to use a default ``umask`` of ``022`` for all tasks + (specified via a new :term:`BB_DEFAULT_UMASK` variable). If needed, ``umask`` can + still be set on a per-task basis via the ``umask`` varflag on the task + function, but that is unlikely to be necessary in most cases. + +- If a version specified in :term:`PREFERRED_VERSION` is not available this + will now trigger a warning instead of just a note, making such issues more + visible. + + +.. _migration-3.3-packaging: + +Packaging changes +----------------- + +The following packaging changes have been made; in all cases the main package +still depends upon the split out packages so you should not need to do anything +unless you want to take advantage of the improved granularity: + +- ``dbus``: ``-common`` and ``-tools`` split out +- ``iproute2``: split ``ip`` binary to its own package +- ``net-tools``: split ``mii-tool`` into its own package +- ``procps``: split ``ps`` and ``sysctl`` into their own packages +- ``rpm``: split build and extra functionality into separate packages +- ``sudo``: split ``sudo`` binary into ``sudo-sudo`` and libs into ``sudo-lib`` +- ``systemtap``: examples, python scripts and runtime material split out +- ``util-linux``: ``libuuid`` has been split out to its own + ``util-linux-libuuid`` recipe (and corresponding packages) to avoid circular + dependencies if ``libgcrypt`` support is enabled in ``util-linux``. + (``util-linux`` depends upon ``util-linux-libuuid``.) + + +.. _migration-3.3-misc: + +Miscellaneous changes +--------------------- + +- The default poky :term:`DISTRO_VERSION` value now uses the core metadata's + git hash (i.e. :term:`METADATA_REVISION`) rather than the date (i.e. + :term:`DATE`) to reduce one small source of non-reproducibility. You can + of course specify your own :term:`DISTRO_VERSION` value as desired + (particularly if you create your own custom distro configuration). +- ``adwaita-icon-theme`` version 3.34.3 has been added back, and is selected + as the default via :term:`PREFERRED_VERSION` in + ``meta/conf/distro/include/default-versions.inc`` due to newer versions + not working well with ``librsvg`` 2.40. ``librsvg`` is not practically + upgradeable at the moment as it has been ported to Rust, and Rust is not + (yet) in OE-Core, but this will change in a future release. +- ``ffmpeg`` is now configured to disable GPL-licensed portions by default + to make it harder to accidentally violate the GPL. To explicitly enable GPL + licensed portions, add ``gpl`` to :term:`PACKAGECONFIG` for ``ffmpeg`` + using a bbappend (or use ``PACKAGECONFIG_append_pn-ffmpeg = " gpl"`` in + your configuration.) +- ``connman`` is now set to conflict with ``systemd-networkd`` as they + overlap functionally and may interfere with each other at runtime. +- Canonical SPDX license names are now used in image license manifests in + order to avoid aliases of the same license from showing up together (e.g. + ``GPLv2`` and ``GPL-2.0``) diff --git a/poky/documentation/migration-guides/migration-general.rst b/poky/documentation/migration-guides/migration-general.rst new file mode 100644 index 000000000..182482ec4 --- /dev/null +++ b/poky/documentation/migration-guides/migration-general.rst @@ -0,0 +1,54 @@ +General Migration Considerations +================================ + +Some considerations are not tied to a specific Yocto Project release. +This section presents information you should consider when migrating to +any new Yocto Project release. + +- *Dealing with Customized Recipes*: + + Issues could arise if you take + older recipes that contain customizations and simply copy them + forward expecting them to work after you migrate to new Yocto Project + metadata. For example, suppose you have a recipe in your layer that + is a customized version of a core recipe copied from the earlier + release, rather than through the use of an append file. When you + migrate to a newer version of Yocto Project, the metadata (e.g. + perhaps an include file used by the recipe) could have changed in a + way that would break the build. Say, for example, a function is + removed from an include file and the customized recipe tries to call + that function. + + You could "forward-port" all your customizations in your recipe so + that everything works for the new release. However, this is not the + optimal solution as you would have to repeat this process with each + new release if changes occur that give rise to problems. + + The better solution (where practical) is to use append files + (``*.bbappend``) to capture any customizations you want to make to a + recipe. Doing so, isolates your changes from the main recipe making + them much more manageable. However, sometimes it is not practical to + use an append file. A good example of this is when introducing a + newer or older version of a recipe in another layer. + +- *Updating Append Files*: + + Since append files generally only contain + your customizations, they often do not need to be adjusted for new + releases. However, if the ``.bbappend`` file is specific to a + particular version of the recipe (i.e. its name does not use the % + wildcard) and the version of the recipe to which it is appending has + changed, then you will at a minimum need to rename the append file to + match the name of the recipe file. A mismatch between an append file + and its corresponding recipe file (``.bb``) will trigger an error + during parsing. + + Depending on the type of customization the append file applies, other + incompatibilities might occur when you upgrade. For example, if your + append file applies a patch and the recipe to which it is appending + is updated to a newer version, the patch might no longer apply. If + this is the case and assuming the patch is still needed, you must + modify the patch file so that it does apply. + + + diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst index e5bdcdad2..642ef15fe 100644 --- a/poky/documentation/overview-manual/concepts.rst +++ b/poky/documentation/overview-manual/concepts.rst @@ -332,7 +332,7 @@ created by an autobuilder: One useful scenario for using the ``conf/site.conf`` file is to extend your :term:`BBPATH` variable to include the path to a ``conf/site.conf``. Then, when BitBake looks - for Metadata using ``BBPATH``, it finds the ``conf/site.conf`` file + for Metadata using :term:`BBPATH`, it finds the ``conf/site.conf`` file and applies your common configurations found in the file. To override configurations in a particular build directory, alter the similar configurations within that build directory's ``conf/local.conf`` @@ -532,7 +532,7 @@ to build software. A combination of the two is also possible. BitBake uses the :term:`SRC_URI` variable to point to source files regardless of their location. Each -recipe must have a ``SRC_URI`` variable that points to the source. +recipe must have a :term:`SRC_URI` variable that points to the source. Another area that plays a significant role in where source files come from is pointed to by the @@ -540,13 +540,13 @@ from is pointed to by the a cache that can hold previously downloaded source. You can also instruct the OpenEmbedded build system to create tarballs from Git repositories, which is not the default behavior, and store them in the -``DL_DIR`` by using the +:term:`DL_DIR` by using the :term:`BB_GENERATE_MIRROR_TARBALLS` variable. -Judicious use of a ``DL_DIR`` directory can save the build system a trip +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 ``DL_DIR`` point to an area outside of +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. @@ -747,7 +747,7 @@ Build Directory's hierarchy: architecture of the built package or packages. Depending on the eventual destination of the package or packages (i.e. machine architecture, :term:`Build Host`, SDK, or - specific machine), ``PACKAGE_ARCH`` varies. See the variable's + specific machine), :term:`PACKAGE_ARCH` varies. See the variable's description for details. - :term:`TARGET_OS`: The operating @@ -756,7 +756,7 @@ Build Directory's hierarchy: - :term:`PN`: The name of the recipe used to build the package. This variable can have multiple meanings. - However, when used in the context of input files, ``PN`` represents + However, when used in the context of input files, :term:`PN` represents the name of the recipe. - :term:`WORKDIR`: The location @@ -773,7 +773,7 @@ Build Directory's hierarchy: files for a given recipe. - :term:`BPN`: The name of the recipe - used to build the package. The ``BPN`` variable is a version of + used to build the package. The :term:`BPN` variable is a version of the ``PN`` variable but with common prefixes and suffixes removed. - :term:`PV`: The version of the @@ -803,13 +803,13 @@ and the :term:`FILESPATH` variable to locate applicable patch files. Default processing for patch files assumes the files have either -``*.patch`` or ``*.diff`` file types. You can use ``SRC_URI`` parameters +``*.patch`` or ``*.diff`` file types. You can use :term:`SRC_URI` parameters to change the way the build system recognizes patch files. See the :ref:`ref-tasks-patch` task for more information. BitBake finds and applies multiple patches for a single recipe in the -order in which it locates the patches. The ``FILESPATH`` variable +order in which it locates the patches. The :term:`FILESPATH` variable defines the default set of directories that the build system uses to search for patch files. Once found, patches are applied to the recipe's source files, which are located in the @@ -877,12 +877,12 @@ This step in the build process consists of the following tasks: :ref:`ref-tasks-compile` task. Compilation occurs in the directory pointed to by the :term:`B` variable. Realize that the - ``B`` directory is, by default, the same as the + :term:`B` directory is, by default, the same as the :term:`S` directory. - *do_install*: After compilation completes, BitBake executes the :ref:`ref-tasks-install` task. - This task copies files from the ``B`` directory and places them in a + This task copies files from the :term:`B` directory and places them in a holding area pointed to by the :term:`D` variable. Packaging occurs later using files from this holding directory. @@ -928,7 +928,7 @@ the analysis and package splitting process use several areas: - :term:`PKGDATA_DIR`: A shared, global-state directory that holds packaging metadata generated during the packaging process. The packaging process copies metadata from - ``PKGDESTWORK`` to the ``PKGDATA_DIR`` area where it becomes globally + :term:`PKGDESTWORK` to the :term:`PKGDATA_DIR` area where it becomes globally available. - :term:`STAGING_DIR_HOST`: @@ -1008,7 +1008,7 @@ actually install: With :term:`IMAGE_ROOTFS` pointing to the location of the filesystem under construction and the -``PACKAGE_INSTALL`` variable providing the final list of packages to +:term:`PACKAGE_INSTALL` variable providing the final list of packages to install, the root file system is created. Package installation is under control of the package manager (e.g. @@ -1057,7 +1057,7 @@ based on the image types specified in the The process turns everything into an image file or a set of image files and can compress the root filesystem image to reduce the overall size of the image. The formats used for the root filesystem depend on the -``IMAGE_FSTYPES`` variable. Compression depends on whether the formats +:term:`IMAGE_FSTYPES` variable. Compression depends on whether the formats support compression. As an example, a dynamically created task when creating a particular @@ -1066,7 +1066,7 @@ image type would take the following form:: do_image_type So, if the type -as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically +as specified by the :term:`IMAGE_FSTYPES` were ``ext4``, the dynamically generated task would be as follows:: do_image_ext4 @@ -1171,9 +1171,9 @@ the task is rerun. the sstate cache mechanism adds is a way to cache task output that can then be shared between build machines. -Since ``STAMPS_DIR`` is usually a subdirectory of ``TMPDIR``, removing -``TMPDIR`` will also remove ``STAMPS_DIR``, which means tasks will -properly be rerun to repopulate ``TMPDIR``. +Since :term:`STAMPS_DIR` is usually a subdirectory of :term:`TMPDIR`, removing +:term:`TMPDIR` will also remove :term:`STAMPS_DIR`, which means tasks will +properly be rerun to repopulate :term:`TMPDIR`. If you want some task to always be considered "out of date", you can mark it with the :ref:`nostamp ` @@ -1408,7 +1408,7 @@ This next list, shows the variables associated with a standard SDK: - :term:`TOOLCHAIN_HOST_TASK`: Lists packages that make up the host part of the SDK (i.e. the part - that runs on the ``SDKMACHINE``). When you use + that runs on the :term:`SDKMACHINE`). When you use ``bitbake -c populate_sdk imagename`` to create the SDK, a set of default packages apply. This variable allows you to add more packages. @@ -1462,12 +1462,9 @@ cross-compiler that is used internally within BitBake only. .. note:: - The extensible SDK does not use - gcc-cross-canadian + The extensible SDK does not use ``gcc-cross-canadian`` since this SDK ships a copy of the OpenEmbedded build system and the - sysroot within it contains - gcc-cross - . + sysroot within it contains ``gcc-cross``. The chain of events that occurs when the standard toolchain is bootstrapped:: @@ -1614,7 +1611,7 @@ them if they are deemed to be valid. :term:`PR` information as part of the shared state packages. Consequently, there are considerations that affect maintaining shared state feeds. For information on how the - build system works with packages and can track incrementing ``PR`` + build system works with packages and can track incrementing :term:`PR` information, see the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`" section in the Yocto Project Development Tasks Manual. @@ -1671,8 +1668,8 @@ objective of making native or cross packages relocatable. build host. However, cross packages generate output for the target architecture. -The checksum therefore needs to exclude ``WORKDIR``. The simplistic -approach for excluding the work directory is to set ``WORKDIR`` to some +The checksum therefore needs to exclude :term:`WORKDIR`. The simplistic +approach for excluding the work directory is to set :term:`WORKDIR` to some fixed value and create the checksum for the "run" script. Another problem results from the "run" scripts containing functions that @@ -1690,7 +1687,7 @@ contains code that first figures out the variable and function dependencies, and then creates a checksum for the data used as the input to the task. -Like the ``WORKDIR`` case, there can be situations where dependencies should be +Like the :term:`WORKDIR` case, there can be situations where dependencies should be ignored. For these situations, you can instruct the build process to ignore a dependency by using a line like the following:: @@ -1707,7 +1704,7 @@ following:: PACKAGE_ARCHS[vardeps] = "MACHINE" This example explicitly -adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``. +adds the :term:`MACHINE` variable as a dependency for :term:`PACKAGE_ARCHS`. As an example, consider a case with in-line Python where BitBake is not able to figure out dependencies. When running in debug mode (i.e. using @@ -1761,7 +1758,7 @@ through this setting in the ``bitbake.conf`` file:: BB_SIGNATURE_HANDLER ?= "OEBasicHash" -The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same +The "OEBasicHash" :term:`BB_SIGNATURE_HANDLER` is the same as the "OEBasic" version but adds the task hash to the :ref:`stamp files `. This results in any metadata change that changes the task hash, automatically causing @@ -1782,7 +1779,7 @@ the build. This information includes: - ``BBHASHDEPS_``\ filename\ ``:``\ taskname: The task dependencies for each task. -- ``BB_TASKHASH``: The hash of the currently running task. +- :term:`BB_TASKHASH`: The hash of the currently running task. Shared State ------------ @@ -1851,7 +1848,7 @@ The following list explains the previous example: ``do_deploy`` is in the shared state cache and its signature indicates that the cached output is still valid (i.e. if no relevant task inputs have changed), then the contents of the shared state cache copies - directly to ${``DEPLOY_DIR_IMAGE``} by the ``do_deploy_setscene`` task + directly to ${:term:`DEPLOY_DIR_IMAGE`} by the ``do_deploy_setscene`` task instead, skipping the ``do_deploy`` task. - The following task definition is glue logic needed to make the @@ -1897,8 +1894,8 @@ The following list explains the previous example: - ``sstate-inputdirs`` and ``sstate-outputdirs`` can also be used with multiple directories. For example, the following declares - ``PKGDESTWORK`` and ``SHLIBWORK`` as shared state input directories, - which populates the shared state cache, and ``PKGDATA_DIR`` and + :term:`PKGDESTWORK` and ``SHLIBWORK`` as shared state input directories, + which populates the shared state cache, and :term:`PKGDATA_DIR` and ``SHLIBSDIR`` as the corresponding shared state output directories:: do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}" @@ -1925,7 +1922,7 @@ shared state files. Here is an example:: subdirectories, where the subdirectory names are based on the first two characters of the hash. If the shared state directory structure for a mirror has the same structure - as ``SSTATE_DIR``, you must specify "PATH" as part of the URI to enable the build + as :term:`SSTATE_DIR`, you must specify "PATH" as part of the URI to enable the build system to map to the appropriate subdirectory. The shared state package validity can be detected just by looking at the @@ -1976,7 +1973,7 @@ dependencies, you must manually declare the dependencies. Simultaneously, all executables and shared libraries installed by the recipe are inspected to see what shared libraries they link against. - For each shared library dependency that is found, ``PKGDATA_DIR`` is + For each shared library dependency that is found, :term:`PKGDATA_DIR` is queried to see if some package (likely from a different recipe) contains the shared library. If such a package is found, a runtime dependency is added from the package that depends on the shared @@ -1985,7 +1982,7 @@ dependencies, you must manually declare the dependencies. The automatically added runtime dependency also includes a version restriction. This version restriction specifies that at least the current version of the package that provides the shared library must - be used, as if "package (>= version)" had been added to ``RDEPENDS``. + be used, as if "package (>= version)" had been added to :term:`RDEPENDS`. This forces an upgrade of the package containing the shared library when installing the package that depends on the library, if needed. @@ -1999,14 +1996,14 @@ dependencies, you must manually declare the dependencies. pkg-config modules (``*.pc`` files) installed by the recipe are located. For each module, the package that contains the module is registered as providing the module. The resulting module-to-package - mapping is saved globally in ``PKGDATA_DIR`` by the + mapping is saved globally in :term:`PKGDATA_DIR` by the ``do_packagedata`` task. Simultaneously, all pkg-config modules installed by the recipe are inspected to see what other pkg-config modules they depend on. A module is seen as depending on another module if it contains a "Requires:" line that specifies the other module. For each module - dependency, ``PKGDATA_DIR`` is queried to see if some package + dependency, :term:`PKGDATA_DIR` is queried to see if some package contains the module. If such a package is found, a runtime dependency is added from the package that depends on the module to the package that contains the module. @@ -2046,7 +2043,7 @@ recipe in :term:`DEPENDS` through use of a ``[``\ :ref:`deptask `\ ``]`` declaration, which guarantees that the required shared-library/module-to-package mapping information will be available -when needed as long as ``DEPENDS`` has been correctly set. +when needed as long as :term:`DEPENDS` has been correctly set. Fakeroot and Pseudo =================== diff --git a/poky/documentation/overview-manual/yp-intro.rst b/poky/documentation/overview-manual/yp-intro.rst index 28ed07994..d20a4ab09 100644 --- a/poky/documentation/overview-manual/yp-intro.rst +++ b/poky/documentation/overview-manual/yp-intro.rst @@ -248,8 +248,7 @@ accomplish this through a recipe that is a BitBake append .. note:: For general information on BSP layer structure, see the - :doc:`/bsp-guide/index` - . + :doc:`/bsp-guide/index`. The :term:`Source Directory` contains both general layers and BSP layers right out of the box. You diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst index 6dd0cbbd4..09878c480 100644 --- a/poky/documentation/ref-manual/classes.rst +++ b/poky/documentation/ref-manual/classes.rst @@ -50,7 +50,7 @@ splitting out of debug symbols during packaging). ``do_package_write_*`` tasks to have different signatures for the machines with different tunings. Additionally, unnecessary rebuilds occur every time an image for a - different ``MACHINE`` is built even when the recipe never changes. + different :term:`MACHINE` is built even when the recipe never changes. By default, all recipes inherit the :ref:`base ` and :ref:`package ` classes, which enable @@ -110,7 +110,7 @@ It's useful to have some idea of how the tasks defined by the - :ref:`ref-tasks-configure` - Regenerates the configure script (using ``autoreconf``) and then launches it with a standard set of arguments used during cross-compilation. You can pass - additional parameters to ``configure`` through the ``EXTRA_OECONF`` + additional parameters to ``configure`` through the :term:`EXTRA_OECONF` or :term:`PACKAGECONFIG_CONFARGS` variables. @@ -168,7 +168,7 @@ example use for this class. the "subpath" parameter limits the checkout to a specific subpath of the tree. Here is an example where ``${BP}`` is used so that the files are extracted into the subdirectory expected by the default value of - ``S``:: + :term:`S`:: SRC_URI = "git://example.com/downloads/somepackage.rpm;subpath=${BP}" @@ -256,7 +256,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 ``USER_CLASSES`` list. +remove "buildstats" from the :term:`USER_CLASSES` list. .. _ref-classes-buildstats-summary: @@ -289,21 +289,6 @@ is used during the build process for ``nativesdk``, ``cross``, and ``cross-canadian`` recipes to change ``RPATH`` records within binaries in order to make them relocatable. -.. _ref-classes-clutter: - -``clutter.bbclass`` -=================== - -The ``clutter`` class consolidates the major and minor version naming -and other common items used by Clutter and related recipes. - -.. note:: - - Unlike some other classes related to specific libraries, recipes - building other software that uses Clutter do not need to inherit this - class unless they use the same recipe versioning scheme that the - Clutter and related recipes do. - .. _ref-classes-cmake: ``cmake.bbclass`` @@ -448,7 +433,7 @@ deployed to :term:`DEPLOYDIR`, and use ``addtask`` to add the task at the appropriate place, which is usually after :ref:`ref-tasks-compile` or :ref:`ref-tasks-install`. The class then takes care of -staging the files from ``DEPLOYDIR`` to ``DEPLOY_DIR_IMAGE``. +staging the files from :term:`DEPLOYDIR` to :term:`DEPLOY_DIR_IMAGE`. .. _ref-classes-devshell: @@ -489,7 +474,7 @@ The class currently only supports creating a development variant of the target recipe, not ``native`` or ``nativesdk`` variants. -The ``BBCLASSEXTEND`` syntax (i.e. ``devupstream:target``) provides +The :term:`BBCLASSEXTEND` syntax (i.e. ``devupstream:target``) provides support for ``native`` and ``nativesdk`` variants. Consequently, this functionality can be added in a future release. @@ -534,13 +519,13 @@ and to build it, respectively. When your recipe inherits the ``externalsrc`` class, you use the :term:`EXTERNALSRC` and :term:`EXTERNALSRC_BUILD` variables to -ultimately define ``S`` and ``B``. +ultimately define :term:`S` and :term:`B`. By default, this class expects the source code to support recipe builds that use the :term:`B` variable to point to the directory in which the OpenEmbedded build system places the generated objects built -from the recipes. By default, the ``B`` directory is set to the -following, which is separate from the source directory (``S``):: +from the recipes. By default, the :term:`B` directory is set to the +following, which is separate from the source directory (:term:`S`):: ${WORKDIR}/${BPN}/{PV}/ @@ -704,8 +689,8 @@ introspection. This functionality is only enabled if the .. note:: This functionality is backfilled by default and, if not applicable, - should be disabled through ``DISTRO_FEATURES_BACKFILL_CONSIDERED`` or - ``MACHINE_FEATURES_BACKFILL_CONSIDERED``, respectively. + should be disabled through :term:`DISTRO_FEATURES_BACKFILL_CONSIDERED` or + :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED`, respectively. .. _ref-classes-grub-efi: @@ -853,7 +838,7 @@ using an empty :term:`PARALLEL_MAKE` variable. Inheriting the ``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 ``SSTATE_MIRRORS``, then all developers and the build +reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build system need to either inherit the ``icecc`` class or nobody should. At the distribution level, you can inherit the ``icecc`` class to be @@ -881,10 +866,10 @@ 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. -- The ``IMAGE_FSTYPES`` variable controls the types of images to +- The :term:`IMAGE_FSTYPES` variable controls the types of images to generate. -- The ``IMAGE_INSTALL`` variable controls the list of packages to +- The :term:`IMAGE_INSTALL` variable controls the list of packages to install into the image. For information on customizing images, see the @@ -931,7 +916,7 @@ The ``image_types`` class also handles conversion and compression of images. .. note:: To build a VMware VMDK image, you need to add "wic.vmdk" to - ``IMAGE_FSTYPES``. This would also be similar for Virtual Box Virtual Disk + :term:`IMAGE_FSTYPES`. This would also be similar for Virtual Box Virtual Disk Image ("vdi") and QEMU Copy On Write Version 2 ("qcow2") images. .. _ref-classes-image-live: @@ -1009,7 +994,7 @@ Please keep in mind that the QA checks are meant to detect real or potential problems in the packaged output. So exercise caution when disabling these checks. -Here are the tests you can list with the ``WARN_QA`` and +Here are the tests you can list with the :term:`WARN_QA` and ``ERROR_QA`` variables: - ``already-stripped:`` Checks that produced binaries have not @@ -1142,13 +1127,13 @@ Here are the tests you can list with the ``WARN_QA`` and PACKAGECONFIG[foo] = "..." -- ``la:`` Checks ``.la`` files for any ``TMPDIR`` paths. Any ``.la`` +- ``la:`` Checks ``.la`` files for any :term:`TMPDIR` paths. Any ``.la`` file containing these paths is incorrect since ``libtool`` adds the correct sysroot prefix when using the files automatically itself. - ``ldflags:`` Ensures that the binaries were linked with the :term:`LDFLAGS` options provided by the build system. - If this test fails, check that the ``LDFLAGS`` variable is being + If this test fails, check that the :term:`LDFLAGS` variable is being passed to the linker command. - ``libdir:`` Checks for libraries being installed into incorrect @@ -1188,7 +1173,7 @@ Here are the tests you can list with the ``WARN_QA`` and invalid characters (i.e. characters other than 0-9, a-z, ., +, and -). -- ``pkgv-undefined:`` Checks to see if the ``PKGV`` variable is +- ``pkgv-undefined:`` Checks to see if the :term:`PKGV` variable is undefined during :ref:`ref-tasks-package`. - ``pkgvarcheck:`` Checks through the variables @@ -1208,8 +1193,8 @@ Here are the tests you can list with the ``WARN_QA`` and - ``pn-overrides:`` Checks that a recipe does not have a name (:term:`PN`) value that appears in :term:`OVERRIDES`. If a recipe is named such that - its ``PN`` value matches something already in ``OVERRIDES`` (e.g. - ``PN`` happens to be the same as :term:`MACHINE` or + its :term:`PN` value matches something already in :term:`OVERRIDES` (e.g. + :term:`PN` happens to be the same as :term:`MACHINE` or :term:`DISTRO`), it can have unexpected consequences. For example, assignments such as ``FILES_${PN} = "xyz"`` effectively turn into ``FILES = "xyz"``. @@ -1740,7 +1725,7 @@ To use this class, inherit it globally and specify SOURCE_MIRROR_URL = "http://example.com/my-source-mirror" You can specify only a single URL -in ``SOURCE_MIRROR_URL``. +in :term:`SOURCE_MIRROR_URL`. .. _ref-classes-package: @@ -1764,7 +1749,7 @@ package-specific classes: use this class. You can control the list of resulting package formats by using the -``PACKAGE_CLASSES`` variable defined in your ``conf/local.conf`` +: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 @@ -1785,7 +1770,7 @@ the same or similar package. This comparison takes into account a 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 ``PACKAGE_CLASSES`` to +manager. Consequently, you might consider setting :term:`PACKAGE_CLASSES` to "package_ipk" if you are building smaller systems. Before making your package manager decision, however, you should @@ -1867,7 +1852,7 @@ variable in the ``local.conf`` file. .. note:: You cannot specify the ``package_tar`` class first using the - ``PACKAGE_CLASSES`` variable. You must use ``.deb``, ``.ipk``, or ``.rpm`` + :term:`PACKAGE_CLASSES` variable. You must use ``.deb``, ``.ipk``, or ``.rpm`` file formats for your image or SDK. .. _ref-classes-packagedata: @@ -1889,7 +1874,7 @@ This class is enabled by default because it is inherited by the ======================== The ``packagegroup`` class sets default values appropriate for package -group recipes (e.g. ``PACKAGES``, ``PACKAGE_ARCH``, ``ALLOW_EMPTY``, and +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. @@ -2208,7 +2193,7 @@ modifying and building source code out of the work directory for a recipe, enabling ``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 -or recipes you are working on to the ``RM_WORK_EXCLUDE`` variable, which +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:: RM_WORK_EXCLUDE += "busybox glibc" @@ -2323,11 +2308,11 @@ results so these tests can be skipped over but still make the correct values available. The ``meta/site directory`` contains test results sorted into different categories such as architecture, endianness, and the ``libc`` used. Site information provides a list of files containing -data relevant to the current build in the ``CONFIG_SITE`` variable that +data relevant to the current build in the :term:`CONFIG_SITE` variable that Autotools automatically picks up. -The class also provides variables like ``SITEINFO_ENDIANNESS`` and -``SITEINFO_BITS`` that can be used elsewhere in the metadata. +The class also provides variables like :term:`SITEINFO_ENDIANNESS` and +:term:`SITEINFO_BITS` that can be used elsewhere in the metadata. .. _ref-classes-sstate: @@ -2378,7 +2363,7 @@ stages: .. note:: Additionally, a recipe can customize the files further by - declaring a processing function in the ``SYSROOT_PREPROCESS_FUNCS`` + declaring a processing function in the :term:`SYSROOT_PREPROCESS_FUNCS` variable. A shared state (sstate) object is built from these files and the @@ -2420,11 +2405,11 @@ stages: recommended for general use, the files do allow some issues such as user creation and module indexes to be addressed. - Because recipes can have other dependencies outside of ``DEPENDS`` + Because recipes can have other dependencies outside of :term:`DEPENDS` (e.g. ``do_unpack[depends] += "tar-native:do_populate_sysroot"``), the sysroot creation function ``extend_recipe_sysroot`` is also added as a pre-function for those tasks whose dependencies are not through - ``DEPENDS`` but operate similarly. + :term:`DEPENDS` but operate similarly. When installing dependencies into the sysroot, the code traverses the dependency graph and processes dependencies in exactly the same way @@ -2750,8 +2735,8 @@ 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. -Three variables control this class: ``INITSCRIPT_PACKAGES``, -``INITSCRIPT_NAME`` and ``INITSCRIPT_PARAMS``. See the variable links +Three variables control this class: :term:`INITSCRIPT_PACKAGES`, +:term:`INITSCRIPT_NAME` and :term:`INITSCRIPT_PARAMS`. See the variable links for details. .. _ref-classes-useradd: @@ -2805,9 +2790,9 @@ additional information. .. note:: You do not use the ``useradd-staticids`` class directly. You either enable - or disable the class by setting the ``USERADDEXTENSION`` variable. If you + 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 ``TMPDIR`` + contain incorrect ``uid`` and ``gid`` values. Deleting the :term:`TMPDIR` directory will correct this condition. .. _ref-classes-utility-tasks: diff --git a/poky/documentation/ref-manual/faq.rst b/poky/documentation/ref-manual/faq.rst index f1b564a60..640ef77d0 100644 --- a/poky/documentation/ref-manual/faq.rst +++ b/poky/documentation/ref-manual/faq.rst @@ -108,10 +108,10 @@ the team can place sources there so builds continue to work. but the package is being marked as machine-specific in all cases, how do I prevent this? -**A:** Set ``SRC_URI_OVERRIDES_PACKAGE_ARCH`` = "0" in the ``.bb`` file +**A:** Set :term:`SRC_URI_OVERRIDES_PACKAGE_ARCH` = "0" in the ``.bb`` file but make sure the package is manually marked as machine-specific for the case that needs it. The code that handles -``SRC_URI_OVERRIDES_PACKAGE_ARCH`` is in the +:term:`SRC_URI_OVERRIDES_PACKAGE_ARCH` is in the ``meta/classes/base.bbclass`` file. **Q:** I'm behind a firewall and need to use a proxy server. How do I do @@ -250,7 +250,7 @@ size, you need to set various configurations: :term:`IMAGE_ROOTFS_EXTRA_SPACE` variable to add additional free space to the image. The build system adds this space to the image after it determines its - ``IMAGE_ROOTFS_SIZE``. + :term:`IMAGE_ROOTFS_SIZE`. **Q:** Why don't you support directories with spaces in the pathnames? @@ -262,11 +262,11 @@ situation changes, the team will not support spaces in pathnames. **Q:** How do I use an external toolchain? **A:** The toolchain configuration is very flexible and customizable. It -is primarily controlled with the ``TCMODE`` variable. This variable +is primarily controlled with the :term:`TCMODE` variable. This variable controls which ``tcmode-*.inc`` file to include from the ``meta/conf/distro/include`` directory within the :term:`Source Directory`. -The default value of ``TCMODE`` is "default", which tells the +The default value of :term:`TCMODE` is "default", which tells the OpenEmbedded build system to use its internally built toolchain (i.e. ``tcmode-default.inc``). However, other patterns are accepted. In particular, "external-\*" refers to external toolchains. One example is @@ -325,7 +325,7 @@ Here is another technique:: BB_FETCH_PREMIRRORONLY = "1" This statement -limits the build system to pulling source from the ``PREMIRRORS`` only. +limits the build system to pulling source from the :term:`PREMIRRORS` only. Again, this technique is useful for reproducing builds. Here is another technique:: @@ -339,7 +339,7 @@ however, the technique can simply waste time during the build. Finally, consider an example where you are behind an HTTP-only firewall. You could make the following changes to the ``local.conf`` configuration -file as long as the ``PREMIRRORS`` server is current:: +file as long as the :term:`PREMIRRORS` server is current:: PREMIRRORS_prepend = "\ ftp://.*/.* http://www.yoctoproject.org/sources/ \n \ @@ -349,7 +349,7 @@ file as long as the ``PREMIRRORS`` server is current:: These changes would cause the build system to successfully fetch source over HTTP and any network accesses to anything other than the -``PREMIRRORS`` would fail. +:term:`PREMIRRORS` would fail. The build system also honors the standard shell environment variables ``http_proxy``, ``ftp_proxy``, ``https_proxy``, and ``all_proxy`` to diff --git a/poky/documentation/ref-manual/features.rst b/poky/documentation/ref-manual/features.rst index 31d24b8c2..ded653221 100644 --- a/poky/documentation/ref-manual/features.rst +++ b/poky/documentation/ref-manual/features.rst @@ -10,10 +10,10 @@ can select, and a reference on feature backfilling. Features provide a mechanism for working out which packages should be included in the generated images. Distributions can select which -features they want to support through the ``DISTRO_FEATURES`` variable, +features they want to support through the :term:`DISTRO_FEATURES` variable, which is set or appended to in a distribution's configuration file such as ``poky.conf``, ``poky-tiny.conf``, ``poky-lsb.conf`` and so forth. -Machine features are set in the ``MACHINE_FEATURES`` variable, which is +Machine features are set in the :term:`MACHINE_FEATURES` variable, which is set in the machine configuration file and specifies the hardware features for a given machine. @@ -267,7 +267,7 @@ these valid features is as follows: - *ssh-server-openssh:* Installs the OpenSSH SSH server, which is more full-featured than Dropbear. Note that if both the OpenSSH SSH server and the Dropbear minimal SSH server are present in - ``IMAGE_FEATURES``, then OpenSSH will take precedence and Dropbear + :term:`IMAGE_FEATURES`, then OpenSSH will take precedence and Dropbear will not be installed. - *tools-debug:* Installs debugging tools such as ``strace`` and @@ -323,27 +323,27 @@ Here are two examples to help illustrate feature backfilling: - *The "pulseaudio" distro feature option*: Previously, PulseAudio support was enabled within the Qt and GStreamer frameworks. Because of this, the feature is backfilled and thus enabled for all distros - through the ``DISTRO_FEATURES_BACKFILL`` variable in the + through the :term:`DISTRO_FEATURES_BACKFILL` variable in the ``meta/conf/bitbake.conf`` file. However, your distro needs to disable the feature. You can disable the feature without affecting other existing distro configurations that need PulseAudio support by - adding "pulseaudio" to ``DISTRO_FEATURES_BACKFILL_CONSIDERED`` in + adding "pulseaudio" to :term:`DISTRO_FEATURES_BACKFILL_CONSIDERED` in your distro's ``.conf`` file. Adding the feature to this variable - when it also exists in the ``DISTRO_FEATURES_BACKFILL`` variable + when it also exists in the :term:`DISTRO_FEATURES_BACKFILL` variable prevents the build system from adding the feature to your - configuration's ``DISTRO_FEATURES``, effectively disabling the + configuration's :term:`DISTRO_FEATURES`, effectively disabling the feature for that particular distro. - *The "rtc" machine feature option*: Previously, real time clock (RTC) support was enabled for all target devices. Because of this, the feature is backfilled and thus enabled for all machines through the - ``MACHINE_FEATURES_BACKFILL`` variable in the + :term:`MACHINE_FEATURES_BACKFILL` variable in the ``meta/conf/bitbake.conf`` file. However, your target device does not have this capability. You can disable RTC support for your device without affecting other machines that need RTC support by adding the - feature to your machine's ``MACHINE_FEATURES_BACKFILL_CONSIDERED`` + feature to your machine's :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED` list in the machine's ``.conf`` file. Adding the feature to this - variable when it also exists in the ``MACHINE_FEATURES_BACKFILL`` + variable when it also exists in the :term:`MACHINE_FEATURES_BACKFILL` variable prevents the build system from adding the feature to your - configuration's ``MACHINE_FEATURES``, effectively disabling RTC + configuration's :term:`MACHINE_FEATURES`, effectively disabling RTC support for that particular machine. diff --git a/poky/documentation/ref-manual/images.rst b/poky/documentation/ref-manual/images.rst index b2db1a773..c6a7239c7 100644 --- a/poky/documentation/ref-manual/images.rst +++ b/poky/documentation/ref-manual/images.rst @@ -46,10 +46,6 @@ Following is a list of supported recipes: - ``core-image-base``: A console-only image that fully supports the target device hardware. -- ``core-image-clutter``: An image with support for the Open GL-based - toolkit Clutter, which enables development of rich and animated - graphical user interfaces. - - ``core-image-full-cmdline``: A console-only image with more full-featured Linux system functionality installed. diff --git a/poky/documentation/ref-manual/index.rst b/poky/documentation/ref-manual/index.rst index deb0383cf..5cf10c5c2 100644 --- a/poky/documentation/ref-manual/index.rst +++ b/poky/documentation/ref-manual/index.rst @@ -13,7 +13,6 @@ Yocto Project Reference Manual system-requirements terms release-process - migration structure classes tasks diff --git a/poky/documentation/ref-manual/kickstart.rst b/poky/documentation/ref-manual/kickstart.rst index 8308ffff5..a7443f9ea 100644 --- a/poky/documentation/ref-manual/kickstart.rst +++ b/poky/documentation/ref-manual/kickstart.rst @@ -106,13 +106,15 @@ the ``part`` and ``partition`` commands: - ``--fstype``: Sets the file system type for the partition. Valid values are: - - ``ext4`` + - ``btrfs`` - - ``ext3`` + - ``erofs`` - ``ext2`` - - ``btrfs`` + - ``ext3`` + + - ``ext4`` - ``squashfs`` diff --git a/poky/documentation/ref-manual/migration-1.3.rst b/poky/documentation/ref-manual/migration-1.3.rst deleted file mode 100644 index b90767ff9..000000000 --- a/poky/documentation/ref-manual/migration-1.3.rst +++ /dev/null @@ -1,194 +0,0 @@ -.. SPDX-License-Identifier: CC-BY-SA-2.0-UK - -Moving to the Yocto Project 1.3 Release (danny) -=============================================== - -This section provides migration information for moving to the Yocto -Project 1.3 Release (codename "danny") from the prior release. - -.. _1.3-local-configuration: - -Local Configuration -------------------- - -Differences include changes for -:term:`SSTATE_MIRRORS` and ``bblayers.conf``. - -.. _migration-1.3-sstate-mirrors: - -SSTATE_MIRRORS -~~~~~~~~~~~~~~ - -The shared state cache (sstate-cache), as pointed to by -:term:`SSTATE_DIR`, by default now has two-character -subdirectories to prevent issues arising from too many files in the same -directory. Also, native sstate-cache packages, which are built to run on -the host system, will go into a subdirectory named using the distro ID -string. If you copy the newly structured sstate-cache to a mirror -location (either local or remote) and then point to it in -:term:`SSTATE_MIRRORS`, you need to append "PATH" -to the end of the mirror URL so that the path used by BitBake before the -mirror substitution is appended to the path used to access the mirror. -Here is an example:: - - SSTATE_MIRRORS = "file://.* http://someserver.tld/share/sstate/PATH" - -.. _migration-1.3-bblayers-conf: - -bblayers.conf -~~~~~~~~~~~~~ - -The ``meta-yocto`` layer consists of two parts that correspond to the -Poky reference distribution and the reference hardware Board Support -Packages (BSPs), respectively: ``meta-yocto`` and ``meta-yocto-bsp``. -When running BitBake for the first time after upgrading, your -``conf/bblayers.conf`` file will be updated to handle this change and -you will be asked to re-run or restart for the changes to take effect. - -.. _1.3-recipes: - -Recipes -------- - -Differences include changes for the following: - -.. _migration-1.3-python-function-whitespace: - -Python Function Whitespace -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -All Python functions must now use four spaces for indentation. -Previously, an inconsistent mix of spaces and tabs existed, which made -extending these functions using ``_append`` or ``_prepend`` complicated -given that Python treats whitespace as syntactically significant. If you -are defining or extending any Python functions (e.g. -``populate_packages``, ``do_unpack``, ``do_patch`` and so forth) in -custom recipes or classes, you need to ensure you are using consistent -four-space indentation. - -.. _migration-1.3-proto=-in-src-uri: - -proto= in SRC_URI -~~~~~~~~~~~~~~~~~ - -Any use of ``proto=`` in :term:`SRC_URI` needs to be -changed to ``protocol=``. In particular, this applies to the following -URIs: - -- ``svn://`` - -- ``bzr://`` - -- ``hg://`` - -- ``osc://`` - -Other URIs were already using ``protocol=``. This change improves -consistency. - -.. _migration-1.3-nativesdk: - -nativesdk -~~~~~~~~~ - -The suffix ``nativesdk`` is now implemented as a prefix, which -simplifies a lot of the packaging code for ``nativesdk`` recipes. All -custom ``nativesdk`` recipes, which are relocatable packages that are -native to :term:`SDK_ARCH`, and any references need to -be updated to use ``nativesdk-*`` instead of ``*-nativesdk``. - -.. _migration-1.3-task-recipes: - -Task Recipes -~~~~~~~~~~~~ - -"Task" recipes are now known as "Package groups" and have been renamed -from ``task-*.bb`` to ``packagegroup-*.bb``. Existing references to the -previous ``task-*`` names should work in most cases as there is an -automatic upgrade path for most packages. However, you should update -references in your own recipes and configurations as they could be -removed in future releases. You should also rename any custom ``task-*`` -recipes to ``packagegroup-*``, and change them to inherit -``packagegroup`` instead of ``task``, as well as taking the opportunity -to remove anything now handled by ``packagegroup.bbclass``, such as -providing ``-dev`` and ``-dbg`` packages, setting -:term:`LIC_FILES_CHKSUM`, and so forth. See the -":ref:`packagegroup.bbclass `" section for -further details. - -.. _migration-1.3-image-features: - -IMAGE_FEATURES -~~~~~~~~~~~~~~ - -Image recipes that previously included ``apps-console-core`` in -:term:`IMAGE_FEATURES` should now include ``splash`` -instead to enable the boot-up splash screen. Retaining -``apps-console-core`` will still include the splash screen but generates a -warning. The ``apps-x11-core`` and ``apps-x11-games`` ``IMAGE_FEATURES`` -features have been removed. - -.. _migration-1.3-removed-recipes: - -Removed Recipes -~~~~~~~~~~~~~~~ - -The following recipes have been removed. For most of them, it is -unlikely that you would have any references to them in your own -:term:`Metadata`. However, you should check your metadata -against this list to be sure: - -- ``libx11-trim``: Replaced by ``libx11``, which has a negligible - size difference with modern Xorg. - -- ``xserver-xorg-lite``: Use ``xserver-xorg``, which has a negligible - size difference when DRI and GLX modules are not installed. - -- ``xserver-kdrive``: Effectively unmaintained for many years. - -- ``mesa-xlib``: No longer serves any purpose. - -- ``galago``: Replaced by telepathy. - -- ``gail``: Functionality was integrated into GTK+ 2.13. - -- ``eggdbus``: No longer needed. - -- ``gcc-*-intermediate``: The build has been restructured to avoid - the need for this step. - -- ``libgsmd``: Unmaintained for many years. Functionality now - provided by ``ofono`` instead. - -- *contacts, dates, tasks, eds-tools*: Largely unmaintained PIM - application suite. It has been moved to ``meta-gnome`` in - ``meta-openembedded``. - -In addition to the previously listed changes, the ``meta-demoapps`` -directory has also been removed because the recipes in it were not being -maintained and many had become obsolete or broken. Additionally, these -recipes were not parsed in the default configuration. Many of these -recipes are already provided in an updated and maintained form within -the OpenEmbedded community layers such as ``meta-oe`` and -``meta-gnome``. For the remainder, you can now find them in the -``meta-extras`` repository, which is in the -:yocto_git:`Source Repositories <>` at -:yocto_git:`/meta-extras/`. - -.. _1.3-linux-kernel-naming: - -Linux Kernel Naming -------------------- - -The naming scheme for kernel output binaries has been changed to now -include :term:`PE` as part of the filename:: - - KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}" - -Because the ``PE`` variable is not set by default, these binary files -could result with names that include two dash characters. Here is an -example:: - - bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin - - diff --git a/poky/documentation/ref-manual/migration-1.4.rst b/poky/documentation/ref-manual/migration-1.4.rst deleted file mode 100644 index deb848749..000000000 --- a/poky/documentation/ref-manual/migration-1.4.rst +++ /dev/null @@ -1,235 +0,0 @@ -Moving to the Yocto Project 1.4 Release (dylan) -=============================================== - -This section provides migration information for moving to the Yocto -Project 1.4 Release (codename "dylan") from the prior release. - -.. _migration-1.4-bitbake: - -BitBake -------- - -Differences include the following: - -- *Comment Continuation:* If a comment ends with a line continuation - (\\) character, then the next line must also be a comment. Any - instance where this is not the case, now triggers a warning. You must - either remove the continuation character, or be sure the next line is - a comment. - -- *Package Name Overrides:* The runtime package specific variables - :term:`RDEPENDS`, - :term:`RRECOMMENDS`, - :term:`RSUGGESTS`, - :term:`RPROVIDES`, - :term:`RCONFLICTS`, - :term:`RREPLACES`, :term:`FILES`, - :term:`ALLOW_EMPTY`, and the pre, post, install, - and uninstall script functions ``pkg_preinst``, ``pkg_postinst``, - ``pkg_prerm``, and ``pkg_postrm`` should always have a package name - override. For example, use ``RDEPENDS_${PN}`` for the main package - instead of ``RDEPENDS``. BitBake uses more strict checks when it - parses recipes. - -.. _migration-1.4-build-behavior: - -Build Behavior --------------- - -Differences include the following: - -- *Shared State Code:* The shared state code has been optimized to - avoid running unnecessary tasks. For example, the following no longer - populates the target sysroot since that is not necessary:: - - $ bitbake -c rootfs some-image - - Instead, the system just needs to extract the - output package contents, re-create the packages, and construct the - root filesystem. This change is unlikely to cause any problems unless - you have missing declared dependencies. - -- *Scanning Directory Names:* When scanning for files in - :term:`SRC_URI`, the build system now uses - :term:`FILESOVERRIDES` instead of - :term:`OVERRIDES` for the directory names. In - general, the values previously in ``OVERRIDES`` are now in - ``FILESOVERRIDES`` as well. However, if you relied upon an additional - value you previously added to ``OVERRIDES``, you might now need to - add it to ``FILESOVERRIDES`` unless you are already adding it through - the :term:`MACHINEOVERRIDES` or - :term:`DISTROOVERRIDES` variables, as - appropriate. For more related changes, see the - ":ref:`ref-manual/migration-1.4:variables`" section. - -.. _migration-1.4-proxies-and-fetching-source: - -Proxies and Fetching Source ---------------------------- - -A new ``oe-git-proxy`` script has been added to replace previous methods -of handling proxies and fetching source from Git. See the -``meta-yocto/conf/site.conf.sample`` file for information on how to use -this script. - -.. _migration-1.4-custom-interfaces-file-netbase-change: - -Custom Interfaces File (netbase change) ---------------------------------------- - -If you have created your own custom ``etc/network/interfaces`` file by -creating an append file for the ``netbase`` recipe, you now need to -create an append file for the ``init-ifupdown`` recipe instead, which -you can find in the :term:`Source Directory` at -``meta/recipes-core/init-ifupdown``. For information on how to use -append files, see the -":ref:`dev-manual/common-tasks:using .bbappend files in your layer`" -section in the Yocto Project Development Tasks Manual. - -.. _migration-1.4-remote-debugging: - -Remote Debugging ----------------- - -Support for remote debugging with the Eclipse IDE is now separated into -an image feature (``eclipse-debug``) that corresponds to the -``packagegroup-core-eclipse-debug`` package group. Previously, the -debugging feature was included through the ``tools-debug`` image -feature, which corresponds to the ``packagegroup-core-tools-debug`` -package group. - -.. _migration-1.4-variables: - -Variables ---------- - -The following variables have changed: - -- ``SANITY_TESTED_DISTROS``: This variable now uses a distribution - ID, which is composed of the host distributor ID followed by the - release. Previously, - :term:`SANITY_TESTED_DISTROS` was - composed of the description field. For example, "Ubuntu 12.10" - becomes "Ubuntu-12.10". You do not need to worry about this change if - you are not specifically setting this variable, or if you are - specifically setting it to "". - -- ``SRC_URI``: The ``${``\ :term:`PN`\ ``}``, - ``${``\ :term:`PF`\ ``}``, - ``${``\ :term:`P`\ ``}``, and ``FILE_DIRNAME`` directories - have been dropped from the default value of the - :term:`FILESPATH` variable, which is used as the - search path for finding files referred to in - :term:`SRC_URI`. If you have a recipe that relied upon - these directories, which would be unusual, then you will need to add - the appropriate paths within the recipe or, alternatively, rearrange - the files. The most common locations are still covered by ``${``\ :term:`BP`\ ``}``, - ``${``\ :term:`BPN`\ ``}``, and "files", which all remain in the default value of - :term:`FILESPATH`. - -.. _migration-target-package-management-with-rpm: - -Target Package Management with RPM ----------------------------------- - -If runtime package management is enabled and the RPM backend is -selected, Smart is now installed for package download, dependency -resolution, and upgrades instead of Zypper. For more information on how -to use Smart, run the following command on the target:: - - smart --help - -.. _migration-1.4-recipes-moved: - -Recipes Moved -------------- - -The following recipes were moved from their previous locations because -they are no longer used by anything in the OpenEmbedded-Core: - -- ``clutter-box2d``: Now resides in the ``meta-oe`` layer. - -- ``evolution-data-server``: Now resides in the ``meta-gnome`` layer. - -- ``gthumb``: Now resides in the ``meta-gnome`` layer. - -- ``gtkhtml2``: Now resides in the ``meta-oe`` layer. - -- ``gupnp``: Now resides in the ``meta-multimedia`` layer. - -- ``gypsy``: Now resides in the ``meta-oe`` layer. - -- ``libcanberra``: Now resides in the ``meta-gnome`` layer. - -- ``libgdata``: Now resides in the ``meta-gnome`` layer. - -- ``libmusicbrainz``: Now resides in the ``meta-multimedia`` layer. - -- ``metacity``: Now resides in the ``meta-gnome`` layer. - -- ``polkit``: Now resides in the ``meta-oe`` layer. - -- ``zeroconf``: Now resides in the ``meta-networking`` layer. - -.. _migration-1.4-removals-and-renames: - -Removals and Renames --------------------- - -The following list shows what has been removed or renamed: - -- ``evieext``: Removed because it has been removed from ``xserver`` - since 2008. - -- *Gtk+ DirectFB:* Removed support because upstream Gtk+ no longer - supports it as of version 2.18. - -- ``libxfontcache / xfontcacheproto``: Removed because they were - removed from the Xorg server in 2008. - -- ``libxp / libxprintapputil / libxprintutil / printproto``: Removed - because the XPrint server was removed from Xorg in 2008. - -- ``libxtrap / xtrapproto``: Removed because their functionality was - broken upstream. - -- *linux-yocto 3.0 kernel:* Removed with linux-yocto 3.8 kernel being - added. The linux-yocto 3.2 and linux-yocto 3.4 kernels remain as part - of the release. - -- ``lsbsetup``: Removed with functionality now provided by - ``lsbtest``. - -- ``matchbox-stroke``: Removed because it was never more than a - proof-of-concept. - -- ``matchbox-wm-2 / matchbox-theme-sato-2``: Removed because they are - not maintained. However, ``matchbox-wm`` and ``matchbox-theme-sato`` - are still provided. - -- ``mesa-dri``: Renamed to ``mesa``. - -- ``mesa-xlib``: Removed because it was no longer useful. - -- ``mutter``: Removed because nothing ever uses it and the recipe is - very old. - -- ``orinoco-conf``: Removed because it has become obsolete. - -- ``update-modules``: Removed because it is no longer used. The - kernel module ``postinstall`` and ``postrm`` scripts can now do the - same task without the use of this script. - -- ``web``: Removed because it is not maintained. Superseded by - ``web-webkit``. - -- ``xf86bigfontproto``: Removed because upstream it has been disabled - by default since 2007. Nothing uses ``xf86bigfontproto``. - -- ``xf86rushproto``: Removed because its dependency in ``xserver`` - was spurious and it was removed in 2005. - -- ``zypper / libzypp / sat-solver``: Removed and been functionally - replaced with Smart (``python-smartpm``) when RPM packaging is used - and package management is enabled on the target. - diff --git a/poky/documentation/ref-manual/migration-1.5.rst b/poky/documentation/ref-manual/migration-1.5.rst deleted file mode 100644 index c772e51b5..000000000 --- a/poky/documentation/ref-manual/migration-1.5.rst +++ /dev/null @@ -1,353 +0,0 @@ -Moving to the Yocto Project 1.5 Release (dora) -============================================== - -This section provides migration information for moving to the Yocto -Project 1.5 Release (codename "dora") from the prior release. - -.. _migration-1.5-host-dependency-changes: - -Host Dependency Changes ------------------------ - -The OpenEmbedded build system now has some additional requirements on -the host system: - -- Python 2.7.3+ - -- Tar 1.24+ - -- Git 1.7.8+ - -- Patched version of Make if you are using 3.82. Most distributions - that provide Make 3.82 use the patched version. - -If the Linux distribution you are using on your build host does not -provide packages for these, you can install and use the Buildtools -tarball, which provides an SDK-like environment containing them. - -For more information on this requirement, see the -":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`" -section. - -.. _migration-1.5-atom-pc-bsp: - -``atom-pc`` Board Support Package (BSP) ---------------------------------------- - -The ``atom-pc`` hardware reference BSP has been replaced by a -``genericx86`` BSP. This BSP is not necessarily guaranteed to work on -all x86 hardware, but it will run on a wider range of systems than the -``atom-pc`` did. - -.. note:: - - Additionally, a ``genericx86-64`` BSP has been added for 64-bit Atom - systems. - -.. _migration-1.5-bitbake: - -BitBake -------- - -The following changes have been made that relate to BitBake: - -- BitBake now supports a ``_remove`` operator. The addition of this - operator means you will have to rename any items in recipe space - (functions, variables) whose names currently contain ``_remove_`` or - end with ``_remove`` to avoid unexpected behavior. - -- BitBake's global method pool has been removed. This method is not - particularly useful and led to clashes between recipes containing - functions that had the same name. - -- The "none" server backend has been removed. The "process" server - backend has been serving well as the default for a long time now. - -- The ``bitbake-runtask`` script has been removed. - -- ``${``\ :term:`P`\ ``}`` and - ``${``\ :term:`PF`\ ``}`` are no longer added to - :term:`PROVIDES` by default in ``bitbake.conf``. - These version-specific ``PROVIDES`` items were seldom used. - Attempting to use them could result in two versions being built - simultaneously rather than just one version due to the way BitBake - resolves dependencies. - -.. _migration-1.5-qa-warnings: - -QA Warnings ------------ - -The following changes have been made to the package QA checks: - -- If you have customized :term:`ERROR_QA` or - :term:`WARN_QA` values in your configuration, check - that they contain all of the issues that you wish to be reported. - Previous Yocto Project versions contained a bug that meant that any - item not mentioned in ``ERROR_QA`` or ``WARN_QA`` would be treated as - a warning. Consequently, several important items were not already in - the default value of ``WARN_QA``. All of the possible QA checks are - now documented in the ":ref:`insane.bbclass `" - section. - -- An additional QA check has been added to check if - ``/usr/share/info/dir`` is being installed. Your recipe should delete - this file within :ref:`ref-tasks-install` if "make - install" is installing it. - -- If you are using the ``buildhistory`` class, the check for the package - version going backwards is now controlled using a standard QA check. - Thus, if you have customized your ``ERROR_QA`` or ``WARN_QA`` values - and still wish to have this check performed, you should add - "version-going-backwards" to your value for one or the other - variables depending on how you wish it to be handled. See the - documented QA checks in the - ":ref:`insane.bbclass `" section. - -.. _migration-1.5-directory-layout-changes: - -Directory Layout Changes ------------------------- - -The following directory changes exist: - -- Output SDK installer files are now named to include the image name - and tuning architecture through the :term:`SDK_NAME` - variable. - -- Images and related files are now installed into a directory that is - specific to the machine, instead of a parent directory containing - output files for multiple machines. The - :term:`DEPLOY_DIR_IMAGE` variable continues - to point to the directory containing images for the current - :term:`MACHINE` and should be used anywhere there is a - need to refer to this directory. The ``runqemu`` script now uses this - variable to find images and kernel binaries and will use BitBake to - determine the directory. Alternatively, you can set the - ``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 - ``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 - directory is located under ``sysroots`` and uses a machine-specific - name (i.e. ``tmp/sysroots/machine/pkgdata``). - -.. _migration-1.5-shortened-git-srcrev-values: - -Shortened Git ``SRCREV`` Values -------------------------------- - -BitBake will now shorten revisions from Git repositories from the normal -40 characters down to 10 characters within :term:`SRCPV` -for improved usability in path and file names. This change should be -safe within contexts where these revisions are used because the chances -of spatially close collisions is very low. Distant collisions are not a -major issue in the way the values are used. - -.. _migration-1.5-image-features: - -``IMAGE_FEATURES`` ------------------- - -The following changes have been made that relate to -:term:`IMAGE_FEATURES`: - -- The value of ``IMAGE_FEATURES`` is now validated to ensure invalid - feature items are not added. Some users mistakenly add package names - to this variable instead of using - :term:`IMAGE_INSTALL` in order to have the - package added to the image, which does not work. This change is - intended to catch those kinds of situations. Valid ``IMAGE_FEATURES`` - are drawn from ``PACKAGE_GROUP`` definitions, - :term:`COMPLEMENTARY_GLOB` and a new - "validitems" varflag on ``IMAGE_FEATURES``. The "validitems" varflag - change allows additional features to be added if they are not - provided using the previous two mechanisms. - -- The previously deprecated "apps-console-core" ``IMAGE_FEATURES`` item - is no longer supported. Add "splash" to ``IMAGE_FEATURES`` if you - wish to have the splash screen enabled, since this is all that - apps-console-core was doing. - -.. _migration-1.5-run: - -``/run`` --------- - -The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has -been introduced. You can find some of the implications for this change -:oe_git:`here `. -The change also means that recipes that install files to ``/var/run`` -must be changed. You can find a guide on how to make these changes -`here `__. - -.. _migration-1.5-removal-of-package-manager-database-within-image-recipes: - -Removal of Package Manager Database Within Image Recipes --------------------------------------------------------- - -The image ``core-image-minimal`` no longer adds -``remove_packaging_data_files`` to -:term:`ROOTFS_POSTPROCESS_COMMAND`. -This addition is now handled automatically when "package-management" is -not in :term:`IMAGE_FEATURES`. If you have custom -image recipes that make this addition, you should remove the lines, as -they are not needed and might interfere with correct operation of -postinstall scripts. - -.. _migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time: - -Images Now Rebuild Only on Changes Instead of Every Time --------------------------------------------------------- - -The :ref:`ref-tasks-rootfs` and other related image -construction tasks are no longer marked as "nostamp". Consequently, they -will only be re-executed when their inputs have changed. Previous -versions of the OpenEmbedded build system always rebuilt the image when -requested rather when necessary. - -.. _migration-1.5-task-recipes: - -Task Recipes ------------- - -The previously deprecated ``task.bbclass`` has now been dropped. For -recipes that previously inherited from this class, you should rename -them from ``task-*`` to ``packagegroup-*`` and inherit packagegroup -instead. - -For more information, see the -":ref:`packagegroup.bbclass `" section. - -.. _migration-1.5-busybox: - -BusyBox -------- - -By default, we now split BusyBox into two binaries: one that is suid -root for those components that need it, and another for the rest of the -components. Splitting BusyBox allows for optimization that eliminates -the ``tinylogin`` recipe as recommended by upstream. You can disable -this split by setting -:term:`BUSYBOX_SPLIT_SUID` to "0". - -.. _migration-1.5-automated-image-testing: - -Automated Image Testing ------------------------ - -A new automated image testing framework has been added through the -:ref:`testimage.bbclass ` class. This -framework replaces the older ``imagetest-qemu`` framework. - -You can learn more about performing automated image tests in the -":ref:`dev-manual/common-tasks:performing automated runtime testing`" -section in the Yocto Project Development Tasks Manual. - -.. _migration-1.5-build-history: - -Build History -------------- - -Following are changes to Build History: - -- Installed package sizes: ``installed-package-sizes.txt`` for an image - now records the size of the files installed by each package instead - of the size of each compressed package archive file. - -- The dependency graphs (``depends*.dot``) now use the actual package - names instead of replacing dashes, dots and plus signs with - underscores. - -- The ``buildhistory-diff`` and ``buildhistory-collect-srcrevs`` - utilities have improved command-line handling. Use the ``--help`` - option for each utility for more information on the new syntax. - -For more information on Build History, see the -":ref:`dev-manual/common-tasks:maintaining build output quality`" -section in the Yocto Project Development Tasks Manual. - -.. _migration-1.5-udev: - -``udev`` --------- - -Following are changes to ``udev``: - -- ``udev`` no longer brings in ``udev-extraconf`` automatically through - :term:`RRECOMMENDS`, since this was originally - intended to be optional. If you need the extra rules, then add - ``udev-extraconf`` to your image. - -- ``udev`` no longer brings in ``pciutils-ids`` or ``usbutils-ids`` - through ``RRECOMMENDS``. These are not needed by ``udev`` itself and - removing them saves around 350KB. - -.. _migration-1.5-removed-renamed-recipes: - -Removed and Renamed Recipes ---------------------------- - -- The ``linux-yocto`` 3.2 kernel has been removed. - -- ``libtool-nativesdk`` has been renamed to ``nativesdk-libtool``. - -- ``tinylogin`` has been removed. It has been replaced by a suid - portion of Busybox. See the ":ref:`migration-1.5-busybox`" - section for more information. - -- ``external-python-tarball`` has been renamed to - ``buildtools-tarball``. - -- ``web-webkit`` has been removed. It has been functionally replaced by - ``midori``. - -- ``imake`` has been removed. It is no longer needed by any other - recipe. - -- ``transfig-native`` has been removed. It is no longer needed by any - other recipe. - -- ``anjuta-remote-run`` has been removed. Anjuta IDE integration has - not been officially supported for several releases. - -.. _migration-1.5-other-changes: - -Other Changes -------------- - -Following is a list of short entries describing other changes: - -- ``run-postinsts``: Make this generic. - -- ``base-files``: Remove the unnecessary ``media/``\ xxx directories. - -- ``alsa-state``: Provide an empty ``asound.conf`` by default. - -- ``classes/image``: Ensure - :term:`BAD_RECOMMENDATIONS` supports - pre-renamed package names. - -- ``classes/rootfs_rpm``: Implement ``BAD_RECOMMENDATIONS`` for RPM. - -- ``systemd``: Remove ``systemd_unitdir`` if ``systemd`` is not in - :term:`DISTRO_FEATURES`. - -- ``systemd``: Remove ``init.d`` dir if ``systemd`` unit file is - present and ``sysvinit`` is not a distro feature. - -- ``libpam``: Deny all services for the ``OTHER`` entries. - -- ``image.bbclass``: Move ``runtime_mapping_rename`` to avoid conflict - with ``multilib``. See :yocto_bugs:`YOCTO #4993 ` - in Bugzilla for more information. - -- ``linux-dtb``: Use kernel build system to generate the ``dtb`` files. - -- ``kern-tools``: Switch from guilt to new ``kgit-s2q`` tool. - diff --git a/poky/documentation/ref-manual/migration-1.6.rst b/poky/documentation/ref-manual/migration-1.6.rst deleted file mode 100644 index 5a18d6310..000000000 --- a/poky/documentation/ref-manual/migration-1.6.rst +++ /dev/null @@ -1,414 +0,0 @@ -Moving to the Yocto Project 1.6 Release (daisy) -=============================================== - -This section provides migration information for moving to the Yocto -Project 1.6 Release (codename "daisy") from the prior release. - -.. _migration-1.6-archiver-class: - -``archiver`` Class ------------------- - -The :ref:`archiver ` class has been rewritten -and its configuration has been simplified. For more details on the -source 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. - -.. _migration-1.6-packaging-changes: - -Packaging Changes ------------------ - -The following packaging changes have been made: - -- The ``binutils`` recipe no longer produces a ``binutils-symlinks`` - package. ``update-alternatives`` is now used to handle the preferred - ``binutils`` variant on the target instead. - -- The tc (traffic control) utilities have been split out of the main - ``iproute2`` package and put into the ``iproute2-tc`` package. - -- The ``gtk-engines`` schemas have been moved to a dedicated - ``gtk-engines-schemas`` package. - -- The ``armv7a`` with thumb package architecture suffix has changed. - The suffix for these packages with the thumb optimization enabled is - "t2" as it should be. Use of this suffix was not the case in the 1.5 - release. Architecture names will change within package feeds as a - result. - -.. _migration-1.6-bitbake: - -BitBake -------- - -The following changes have been made to :term:`BitBake`. - -.. _migration-1.6-matching-branch-requirement-for-git-fetching: - -Matching Branch Requirement for Git Fetching -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When fetching source from a Git repository using -:term:`SRC_URI`, BitBake will now validate the -:term:`SRCREV` value against the branch. You can specify -the branch using the following form:: - - SRC_URI = "git://server.name/repository;branch=branchname" - -If you do not specify a branch, BitBake looks in the default "master" branch. - -Alternatively, if you need to bypass this check (e.g. if you are -fetching a revision corresponding to a tag that is not on any branch), -you can add ";nobranch=1" to the end of the URL within ``SRC_URI``. - -.. _migration-1.6-bitbake-deps: - -Python Definition substitutions -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -BitBake had some previously deprecated Python definitions within its -``bb`` module removed. You should use their sub-module counterparts -instead: - -- ``bb.MalformedUrl``: Use ``bb.fetch.MalformedUrl``. - -- ``bb.encodeurl``: Use ``bb.fetch.encodeurl``. - -- ``bb.decodeurl``: Use ``bb.fetch.decodeurl`` - -- ``bb.mkdirhier``: Use ``bb.utils.mkdirhier``. - -- ``bb.movefile``: Use ``bb.utils.movefile``. - -- ``bb.copyfile``: Use ``bb.utils.copyfile``. - -- ``bb.which``: Use ``bb.utils.which``. - -- ``bb.vercmp_string``: Use ``bb.utils.vercmp_string``. - -- ``bb.vercmp``: Use ``bb.utils.vercmp``. - -.. _migration-1.6-bitbake-fetcher: - -SVK Fetcher -~~~~~~~~~~~ - -The SVK fetcher has been removed from BitBake. - -.. _migration-1.6-bitbake-console-output: - -Console Output Error Redirection -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The BitBake console UI will now output errors to ``stderr`` instead of -``stdout``. Consequently, if you are piping or redirecting the output of -``bitbake`` to somewhere else, and you wish to retain the errors, you -will need to add ``2>&1`` (or something similar) to the end of your -``bitbake`` command line. - -.. _migration-1.6-task-taskname-overrides: - -``task-``\ taskname Overrides -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``task-``\ taskname overrides have been adjusted so that tasks whose -names contain underscores have the underscores replaced by hyphens for -the override so that they now function properly. For example, the task -override for :ref:`ref-tasks-populate_sdk` is -``task-populate-sdk``. - -.. _migration-1.6-variable-changes: - -Changes to Variables --------------------- - -The following variables have changed. For information on the -OpenEmbedded build system variables, see the ":doc:`/ref-manual/variables`" Chapter. - -.. _migration-1.6-variable-changes-TMPDIR: - -``TMPDIR`` -~~~~~~~~~~ - -:term:`TMPDIR` can no longer be on an NFS mount. NFS does -not offer full POSIX locking and inode consistency and can cause -unexpected issues if used to store ``TMPDIR``. - -The check for this occurs on startup. If ``TMPDIR`` is detected on an -NFS mount, an error occurs. - -.. _migration-1.6-variable-changes-PRINC: - -``PRINC`` -~~~~~~~~~ - -The ``PRINC`` variable has been deprecated and triggers a warning if -detected during a build. For :term:`PR` increments on changes, -use the PR service instead. You can find out more about this service in -the ":ref:`dev-manual/common-tasks:working with a pr service`" -section in the Yocto Project Development Tasks Manual. - -.. _migration-1.6-variable-changes-IMAGE_TYPES: - -``IMAGE_TYPES`` -~~~~~~~~~~~~~~~ - -The "sum.jffs2" option for :term:`IMAGE_TYPES` has -been replaced by the "jffs2.sum" option, which fits the processing -order. - -.. _migration-1.6-variable-changes-COPY_LIC_MANIFEST: - -``COPY_LIC_MANIFEST`` -~~~~~~~~~~~~~~~~~~~~~ - -The :term:`COPY_LIC_MANIFEST` variable must now -be set to "1" rather than any value in order to enable it. - -.. _migration-1.6-variable-changes-COPY_LIC_DIRS: - -``COPY_LIC_DIRS`` -~~~~~~~~~~~~~~~~~ - -The :term:`COPY_LIC_DIRS` variable must now be set -to "1" rather than any value in order to enable it. - -.. _migration-1.6-variable-changes-PACKAGE_GROUP: - -``PACKAGE_GROUP`` -~~~~~~~~~~~~~~~~~ - -The ``PACKAGE_GROUP`` variable has been renamed to -:term:`FEATURE_PACKAGES` to more accurately -reflect its purpose. You can still use ``PACKAGE_GROUP`` but the -OpenEmbedded build system produces a warning message when it encounters -the variable. - -.. _migration-1.6-variable-changes-variable-entry-behavior: - -Preprocess and Post Process Command Variable Behavior -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following variables now expect a semicolon separated list of -functions to call and not arbitrary shell commands: - - - :term:`ROOTFS_PREPROCESS_COMMAND` - - :term:`ROOTFS_POSTPROCESS_COMMAND` - - :term:`SDK_POSTPROCESS_COMMAND` - - :term:`POPULATE_SDK_POST_TARGET_COMMAND` - - :term:`POPULATE_SDK_POST_HOST_COMMAND` - - :term:`IMAGE_POSTPROCESS_COMMAND` - - :term:`IMAGE_PREPROCESS_COMMAND` - - :term:`ROOTFS_POSTUNINSTALL_COMMAND` - - :term:`ROOTFS_POSTINSTALL_COMMAND` - -For -migration purposes, you can simply wrap shell commands in a shell -function and then call the function. Here is an example:: - - my_postprocess_function() { - echo "hello" > ${IMAGE_ROOTFS}/hello.txt - } - ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; " - -.. _migration-1.6-package-test-ptest: - -Package Test (ptest) --------------------- - -Package Tests (ptest) are built but not installed by default. For -information on using Package Tests, see the -":ref:`dev-manual/common-tasks:testing packages with ptest`" -section in the Yocto Project Development Tasks Manual. For information on the -``ptest`` class, see the ":ref:`ptest.bbclass `" -section. - -.. _migration-1.6-build-changes: - -Build Changes -------------- - -Separate build and source directories have been enabled by default for -selected recipes where it is known to work (a whitelist) and for all -recipes that inherit the :ref:`cmake ` class. In -future releases the :ref:`autotools ` class -will enable a separate 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 -:ref:`autotools-brokensep ` class instead of -the ``autotools`` or ``autotools_stage``\ classes. - -.. _migration-1.6-building-qemu-native: - -``qemu-native`` ---------------- - -``qemu-native`` now builds without SDL-based graphical output support by -default. The following additional lines are needed in your -``local.conf`` to enable it:: - - PACKAGECONFIG_pn-qemu-native = "sdl" - ASSUME_PROVIDED += "libsdl-native" - -.. note:: - - The default ``local.conf`` contains these statements. Consequently, if you - are building a headless system and using a default ``local.conf`` - file, you will need comment these two lines out. - -.. _migration-1.6-core-image-basic: - -``core-image-basic`` --------------------- - -``core-image-basic`` has been renamed to ``core-image-full-cmdline``. - -In addition to ``core-image-basic`` being renamed, -``packagegroup-core-basic`` has been renamed to -``packagegroup-core-full-cmdline`` to match. - -.. _migration-1.6-licensing: - -Licensing ---------- - -The top-level ``LICENSE`` file has been changed to better describe the -license of the various components of :term:`OpenEmbedded-Core (OE-Core)`. However, -the licensing itself remains unchanged. - -Normally, this change would not cause any side-effects. However, some -recipes point to this file within -:term:`LIC_FILES_CHKSUM` (as -``${COREBASE}/LICENSE``) and thus the accompanying checksum must be -changed from 3f40d7994397109285ec7b81fdeb3b58 to -4d92cd373abda3937c2bc47fbc49d690. A better alternative is to have -``LIC_FILES_CHKSUM`` point to a file describing the license that is -distributed with the source that the recipe is building, if possible, -rather than pointing to ``${COREBASE}/LICENSE``. - -.. _migration-1.6-cflags-options: - -``CFLAGS`` Options ------------------- - -The "-fpermissive" option has been removed from the default -:term:`CFLAGS` value. You need to take action on -individual recipes that fail when building with this option. You need to -either patch the recipes to fix the issues reported by the compiler, or -you need to add "-fpermissive" to ``CFLAGS`` in the recipes. - -.. _migration-1.6-custom-images: - -Custom Image Output Types -------------------------- - -Custom image output types, as selected using -:term:`IMAGE_FSTYPES`, must declare their -dependencies on other image types (if any) using a new -:term:`IMAGE_TYPEDEP` variable. - -.. _migration-1.6-do-package-write-task: - -Tasks ------ - -The ``do_package_write`` task has been removed. The task is no longer -needed. - -.. _migration-1.6-update-alternatives-provider: - -``update-alternative`` Provider -------------------------------- - -The default ``update-alternatives`` provider has been changed from -``opkg`` to ``opkg-utils``. This change resolves some troublesome -circular dependencies. The runtime package has also been renamed from -``update-alternatives-cworth`` to ``update-alternatives-opkg``. - -.. _migration-1.6-virtclass-overrides: - -``virtclass`` Overrides ------------------------ - -The ``virtclass`` overrides are now deprecated. Use the equivalent class -overrides instead (e.g. ``virtclass-native`` becomes ``class-native``.) - -.. _migration-1.6-removed-renamed-recipes: - -Removed and Renamed Recipes ---------------------------- - -The following recipes have been removed: - -- ``packagegroup-toolset-native`` - This recipe is largely unused. - -- ``linux-yocto-3.8`` - Support for the Linux yocto 3.8 kernel has been - dropped. Support for the 3.10 and 3.14 kernels have been added with - the ``linux-yocto-3.10`` and ``linux-yocto-3.14`` recipes. - -- ``ocf-linux`` - This recipe has been functionally replaced using - ``cryptodev-linux``. - -- ``genext2fs`` - ``genext2fs`` is no longer used by the build system - and is unmaintained upstream. - -- ``js`` - This provided an ancient version of Mozilla's javascript - engine that is no longer needed. - -- ``zaurusd`` - The recipe has been moved to the ``meta-handheld`` - layer. - -- ``eglibc 2.17`` - Replaced by the ``eglibc 2.19`` recipe. - -- ``gcc 4.7.2`` - Replaced by the now stable ``gcc 4.8.2``. - -- ``external-sourcery-toolchain`` - this recipe is now maintained in - the ``meta-sourcery`` layer. - -- ``linux-libc-headers-yocto 3.4+git`` - Now using version 3.10 of the - ``linux-libc-headers`` by default. - -- ``meta-toolchain-gmae`` - This recipe is obsolete. - -- ``packagegroup-core-sdk-gmae`` - This recipe is obsolete. - -- ``packagegroup-core-standalone-gmae-sdk-target`` - This recipe is - obsolete. - -.. _migration-1.6-removed-classes: - -Removed Classes ---------------- - -The following classes have become obsolete and have been removed: - -- ``module_strip`` - -- ``pkg_metainfo`` - -- ``pkg_distribute`` - -- ``image-empty`` - -.. _migration-1.6-reference-bsps: - -Reference Board Support Packages (BSPs) ---------------------------------------- - -The following reference BSPs changes occurred: - -- The BeagleBoard (``beagleboard``) ARM reference hardware has been - replaced by the BeagleBone (``beaglebone``) hardware. - -- The RouterStation Pro (``routerstationpro``) MIPS reference hardware - has been replaced by the EdgeRouter Lite (``edgerouter``) hardware. - -The previous reference BSPs for the ``beagleboard`` and -``routerstationpro`` machines are still available in a new -``meta-yocto-bsp-old`` layer in the -:yocto_git:`Source Repositories <>` at -:yocto_git:`/meta-yocto-bsp-old/`. - - diff --git a/poky/documentation/ref-manual/migration-1.7.rst b/poky/documentation/ref-manual/migration-1.7.rst deleted file mode 100644 index 46bf12658..000000000 --- a/poky/documentation/ref-manual/migration-1.7.rst +++ /dev/null @@ -1,221 +0,0 @@ -Moving to the Yocto Project 1.7 Release (dizzy) -=============================================== - -This section provides migration information for moving to the Yocto -Project 1.7 Release (codename "dizzy") from the prior release. - -.. _migration-1.7-changes-to-setting-qemu-packageconfig-options: - -Changes to Setting QEMU ``PACKAGECONFIG`` Options in ``local.conf`` -------------------------------------------------------------------- - -The QEMU recipe now uses a number of -:term:`PACKAGECONFIG` options to enable various -optional features. The method used to set defaults for these options -means that existing ``local.conf`` files will need to be modified to -append to ``PACKAGECONFIG`` for ``qemu-native`` and ``nativesdk-qemu`` -instead of setting it. In other words, to enable graphical output for -QEMU, you should now have these lines in ``local.conf``:: - - PACKAGECONFIG_append_pn-qemu-native = " sdl" - PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" - -.. _migration-1.7-minimum-git-version: - -Minimum Git version -------------------- - -The minimum :ref:`overview-manual/development-environment:git` -version required on the -build host is now 1.7.8 because the ``--list`` option is now required by -BitBake's Git fetcher. As always, if your host distribution does not -provide a version of Git that meets this requirement, you can use the -``buildtools-tarball`` that does. See the -":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`" -section for more information. - -.. _migration-1.7-autotools-class-changes: - -Autotools Class Changes ------------------------ - -The following :ref:`autotools ` class changes -occurred: - -- *A separate build directory is now used by default:* The - ``autotools`` class has been changed to use a directory for building - (:term:`B`), which is separate from the source directory - (:term:`S`). This is commonly referred to as ``B != S``, or - an out-of-tree build. - - If the software being built is already capable of building in a - directory separate from the source, you do not need to do anything. - However, if the software is not capable of being built in this - manner, you will need to either patch the software so that it can - build separately, or you will need to change the recipe to inherit - the :ref:`autotools-brokensep ` class - instead of the ``autotools`` or ``autotools_stage`` classes. - -- The ``--foreign`` option is no longer passed to ``automake`` when - running ``autoconf``: This option tells ``automake`` that a - particular software package does not follow the GNU standards and - therefore should not be expected to distribute certain files such as - ``ChangeLog``, ``AUTHORS``, and so forth. Because the majority of - upstream software packages already tell ``automake`` to enable - foreign mode themselves, the option is mostly superfluous. However, - some recipes will need patches for this change. You can easily make - the change by patching ``configure.ac`` so that it passes "foreign" - to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this - commit ` - for an example showing how to make the patch. - -.. _migration-1.7-binary-configuration-scripts-disabled: - -Binary Configuration Scripts Disabled -------------------------------------- - -Some of the core recipes that package binary configuration scripts now -disable the scripts due to the scripts previously requiring error-prone -path substitution. Software that links against these libraries using -these scripts should use the much more robust ``pkg-config`` instead. -The list of recipes changed in this version (and their configuration -scripts) is as follows:: - - directfb (directfb-config) - freetype (freetype-config) - gpgme (gpgme-config) - libassuan (libassuan-config) - libcroco (croco-6.0-config) - libgcrypt (libgcrypt-config) - libgpg-error (gpg-error-config) - libksba (ksba-config) - libpcap (pcap-config) - libpcre (pcre-config) - libpng (libpng-config, libpng16-config) - libsdl (sdl-config) - libusb-compat (libusb-config) - libxml2 (xml2-config) - libxslt (xslt-config) - ncurses (ncurses-config) - neon (neon-config) - npth (npth-config) - pth (pth-config) - taglib (taglib-config) - -Additionally, support for ``pkg-config`` has been added to some recipes in the -previous list in the rare cases where the upstream software package does -not already provide it. - -.. _migration-1.7-glibc-replaces-eglibc: - -``eglibc 2.19`` Replaced with ``glibc 2.20`` --------------------------------------------- - -Because ``eglibc`` and ``glibc`` were already fairly close, this -replacement should not require any significant changes to other software -that links to ``eglibc``. However, there were a number of minor changes -in ``glibc 2.20`` upstream that could require patching some software -(e.g. the removal of the ``_BSD_SOURCE`` feature test macro). - -``glibc 2.20`` requires version 2.6.32 or greater of the Linux kernel. -Thus, older kernels will no longer be usable in conjunction with it. - -For full details on the changes in ``glibc 2.20``, see the upstream -release notes -`here `__. - -.. _migration-1.7-kernel-module-autoloading: - -Kernel Module Autoloading -------------------------- - -The :term:`module_autoload_* ` variable is now -deprecated and a new -:term:`KERNEL_MODULE_AUTOLOAD` variable -should be used instead. Also, :term:`module_conf_* ` -must now be used in conjunction with a new -:term:`KERNEL_MODULE_PROBECONF` variable. -The new variables no longer require you to specify the module name as -part of the variable name. This change not only simplifies usage but -also allows the values of these variables to be appropriately -incorporated into task signatures and thus trigger the appropriate tasks -to re-execute when changed. You should replace any references to -``module_autoload_*`` with ``KERNEL_MODULE_AUTOLOAD``, and add any -modules for which ``module_conf_*`` is specified to -``KERNEL_MODULE_PROBECONF``. - -.. _migration-1.7-qa-check-changes: - -QA Check Changes ----------------- - -The following changes have occurred to the QA check process: - -- Additional QA checks ``file-rdeps`` and ``build-deps`` have been - added in order to verify that file dependencies are satisfied (e.g. - package contains a script requiring ``/bin/bash``) and build-time - dependencies are declared, respectively. For more information, please - see the ":doc:`/ref-manual/qa-checks`" chapter. - -- Package QA checks are now performed during a new - :ref:`ref-tasks-package_qa` task rather than being - part of the :ref:`ref-tasks-package` task. This allows - more parallel execution. This change is unlikely to be an issue - except for highly customized recipes that disable packaging tasks - themselves by marking them as ``noexec``. For those packages, you - will need to disable the ``do_package_qa`` task as well. - -- Files being overwritten during the - :ref:`ref-tasks-populate_sysroot` task now - trigger an error instead of a warning. Recipes should not be - overwriting files written to the sysroot by other recipes. If you - have these types of recipes, you need to alter them so that they do - not overwrite these files. - - You might now receive this error after changes in configuration or - metadata resulting in orphaned files being left in the sysroot. If - you do receive this error, the way to resolve the issue is to delete - your :term:`TMPDIR` or to move it out of the way and - then re-start the build. Anything that has been fully built up to - that point and does not need rebuilding will be restored from the - shared state cache and the rest of the build will be able to proceed - as normal. - -.. _migration-1.7-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed: - -- ``x-load``: This recipe has been superseded by U-Boot SPL for all - Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which - contains a maintained recipe, should be used instead. - -- ``ubootchart``: This recipe is obsolete. A ``bootchart2`` recipe has - been added to functionally replace it. - -- ``linux-yocto 3.4``: Support for the linux-yocto 3.4 kernel has been - dropped. Support for the 3.10 and 3.14 kernels remains, while support - for version 3.17 has been added. - -- ``eglibc`` has been removed in favor of ``glibc``. See the - ":ref:`migration-1.7-glibc-replaces-eglibc`" section for more information. - -.. _migration-1.7-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following miscellaneous change occurred: - -- The build history feature now writes ``build-id.txt`` instead of - ``build-id``. Additionally, ``build-id.txt`` now contains the full - build header as printed by BitBake upon starting the build. You - should manually remove old "build-id" files from your existing build - history repositories to avoid confusion. For information on the build - history feature, see the - ":ref:`dev-manual/common-tasks:maintaining build output quality`" - section in the Yocto Project Development Tasks Manual. - - diff --git a/poky/documentation/ref-manual/migration-1.8.rst b/poky/documentation/ref-manual/migration-1.8.rst deleted file mode 100644 index 68d5dcf85..000000000 --- a/poky/documentation/ref-manual/migration-1.8.rst +++ /dev/null @@ -1,183 +0,0 @@ -Moving to the Yocto Project 1.8 Release (fido) -============================================== - -This section provides migration information for moving to the Yocto -Project 1.8 Release (codename "fido") from the prior release. - -.. _migration-1.8-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed: - -- ``owl-video``: Functionality replaced by ``gst-player``. - -- ``gaku``: Functionality replaced by ``gst-player``. - -- ``gnome-desktop``: This recipe is now available in ``meta-gnome`` and - is no longer needed. - -- ``gsettings-desktop-schemas``: This recipe is now available in - ``meta-gnome`` and is no longer needed. - -- ``python-argparse``: The ``argparse`` module is already provided in - the default Python distribution in a package named - ``python-argparse``. Consequently, the separate ``python-argparse`` - recipe is no longer needed. - -- ``telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control``: - All these recipes have moved to ``meta-oe`` and are consequently no - longer needed by any recipes in OpenEmbedded-Core. - -- ``linux-yocto_3.10`` and ``linux-yocto_3.17``: Support for the - linux-yocto 3.10 and 3.17 kernels has been dropped. Support for the - 3.14 kernel remains, while support for 3.19 kernel has been added. - -- ``poky-feed-config-opkg``: This recipe has become obsolete and is no - longer needed. Use ``distro-feed-config`` from ``meta-oe`` instead. - -- ``libav 0.8.x``: ``libav 9.x`` is now used. - -- ``sed-native``: No longer needed. A working version of ``sed`` is - expected to be provided by the host distribution. - -.. _migration-1.8-bluez: - -BlueZ 4.x / 5.x Selection -------------------------- - -Proper built-in support for selecting BlueZ 5.x in preference to the -default of 4.x now exists. To use BlueZ 5.x, simply add "bluez5" to your -:term:`DISTRO_FEATURES` value. If you had -previously added append files (``*.bbappend``) to make this selection, -you can now remove them. - -Additionally, a ``bluetooth`` class has been added to make selection of -the appropriate bluetooth support within a recipe a little easier. If -you wish to make use of this class in a recipe, add something such as -the following:: - - inherit bluetooth - PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}" - PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" - PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5" - -.. _migration-1.8-kernel-build-changes: - -Kernel Build Changes --------------------- - -The kernel build process was changed to place the source in a common -shared work area and to place build artifacts separately in the source -code tree. In theory, migration paths have been provided for most common -usages in kernel recipes but this might not work in all cases. In -particular, users need to ensure that ``${S}`` (source files) and -``${B}`` (build artifacts) are used correctly in functions such as -:ref:`ref-tasks-configure` and -:ref:`ref-tasks-install`. For kernel recipes that do not -inherit from ``kernel-yocto`` or include ``linux-yocto.inc``, you might -wish to refer to the ``linux.inc`` file in the ``meta-oe`` layer for the -kinds of changes you need to make. For reference, here is the -:oe_git:`commit ` -where the ``linux.inc`` file in ``meta-oe`` was updated. - -Recipes that rely on the kernel source code and do not inherit the -module classes might need to add explicit dependencies on the -``do_shared_workdir`` kernel task, for example:: - - do_configure[depends] += "virtual/kernel:do_shared_workdir" - -.. _migration-1.8-ssl: - -SSL 3.0 is Now Disabled in OpenSSL ----------------------------------- - -SSL 3.0 is now disabled when building OpenSSL. Disabling SSL 3.0 avoids -any lingering instances of the POODLE vulnerability. If you feel you -must re-enable SSL 3.0, then you can add an append file (``*.bbappend``) -for the ``openssl`` recipe to remove "-no-ssl3" from -:term:`EXTRA_OECONF`. - -.. _migration-1.8-default-sysroot-poisoning: - -Default Sysroot Poisoning -------------------------- - -``gcc's`` default sysroot and include directories are now "poisoned". In -other words, the sysroot and include directories are being redirected to -a non-existent location in order to catch when host directories are -being used due to the correct options not being passed. This poisoning -applies both to the cross-compiler used within the build and to the -cross-compiler produced in the SDK. - -If this change causes something in the build to fail, it almost -certainly means the various compiler flags and commands are not being -passed correctly to the underlying piece of software. In such cases, you -need to take corrective steps. - -.. _migration-1.8-rebuild-improvements: - -Rebuild Improvements --------------------- - -Changes have been made to the :ref:`base `, -:ref:`autotools `, and -:ref:`cmake ` classes to clean out generated files -when the :ref:`ref-tasks-configure` task needs to be -re-executed. - -One of the improvements is to attempt to run "make clean" during the -``do_configure`` task if a ``Makefile`` exists. Some software packages -do not provide a working clean target within their make files. If you -have such recipes, you need to set -:term:`CLEANBROKEN` to "1" within the recipe, for example:: - - CLEANBROKEN = "1" - -.. _migration-1.8-qa-check-and-validation-changes: - -QA Check and Validation Changes -------------------------------- - -The following QA Check and Validation Changes have occurred: - -- Usage of ``PRINC`` previously triggered a warning. It now triggers an - error. You should remove any remaining usage of ``PRINC`` in any - recipe or append file. - -- An additional QA check has been added to detect usage of ``${D}`` in - :term:`FILES` values where :term:`D` values - should not be used at all. The same check ensures that ``$D`` is used - in ``pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm`` functions - instead of ``${D}``. - -- :term:`S` now needs to be set to a valid value within a - recipe. If ``S`` is not set in the recipe, the directory is not - automatically created. If ``S`` does not point to a directory that - exists at the time the :ref:`ref-tasks-unpack` task - finishes, a warning will be shown. - -- :term:`LICENSE` is now validated for correct - formatting of multiple licenses. If the format is invalid (e.g. - multiple licenses are specified with no operators to specify how the - multiple licenses interact), then a warning will be shown. - -.. _migration-1.8-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following miscellaneous changes have occurred: - -- The ``send-error-report`` script now expects a "-s" option to be - specified before the server address. This assumes a server address is - being specified. - -- The ``oe-pkgdata-util`` script now expects a "-p" option to be - specified before the ``pkgdata`` directory, which is now optional. If - the ``pkgdata`` directory is not specified, the script will run - BitBake to query :term:`PKGDATA_DIR` from the - build environment. - - diff --git a/poky/documentation/ref-manual/migration-2.0.rst b/poky/documentation/ref-manual/migration-2.0.rst deleted file mode 100644 index 8319b0ee3..000000000 --- a/poky/documentation/ref-manual/migration-2.0.rst +++ /dev/null @@ -1,278 +0,0 @@ -Moving to the Yocto Project 2.0 Release (jethro) -================================================ - -This section provides migration information for moving to the Yocto -Project 2.0 Release (codename "jethro") from the prior release. - -.. _migration-2.0-gcc-5: - -GCC 5 ------ - -The default compiler is now GCC 5.2. This change has required fixes for -compilation errors in a number of other recipes. - -One important example is a fix for when the Linux kernel freezes at boot -time on ARM when built with GCC 5. If you are using your own kernel -recipe or source tree and building for ARM, you will likely need to -apply this -`patch `__. -The standard ``linux-yocto`` kernel source tree already has a workaround -for the same issue. - -For further details, see https://gcc.gnu.org/gcc-5/changes.html -and the porting guide at -https://gcc.gnu.org/gcc-5/porting_to.html. - -Alternatively, you can switch back to GCC 4.9 or 4.8 by setting -``GCCVERSION`` in your configuration, as follows:: - - GCCVERSION = "4.9%" - -.. _migration-2.0-Gstreamer-0.10-removed: - -Gstreamer 0.10 Removed ----------------------- - -Gstreamer 0.10 has been removed in favor of Gstreamer 1.x. As part of -the change, recipes for Gstreamer 0.10 and related software are now -located in ``meta-multimedia``. This change results in Qt4 having Phonon -and Gstreamer support in QtWebkit disabled by default. - -.. _migration-2.0-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been moved or removed: - -- ``bluez4``: The recipe is obsolete and has been moved due to - ``bluez5`` becoming fully integrated. The ``bluez4`` recipe now - resides in ``meta-oe``. - -- ``gamin``: The recipe is obsolete and has been removed. - -- ``gnome-icon-theme``: The recipe's functionally has been replaced by - ``adwaita-icon-theme``. - -- Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have been removed - in favor of the recipes for Gstreamer 1.x. - -- ``insserv``: The recipe is obsolete and has been removed. - -- ``libunique``: The recipe is no longer used and has been moved to - ``meta-oe``. - -- ``midori``: The recipe's functionally has been replaced by - ``epiphany``. - -- ``python-gst``: The recipe is obsolete and has been removed since it - only contains bindings for Gstreamer 0.10. - -- ``qt-mobility``: The recipe is obsolete and has been removed since it - requires ``Gstreamer 0.10``, which has been replaced. - -- ``subversion``: All 1.6.x versions of this recipe have been removed. - -- ``webkit-gtk``: The older 1.8.3 version of this recipe has been - removed in favor of ``webkitgtk``. - -.. _migration-2.0-bitbake-datastore-improvements: - -BitBake datastore improvements ------------------------------- - -The method by which BitBake's datastore handles overrides has changed. -Overrides are now applied dynamically and ``bb.data.update_data()`` is -now a no-op. Thus, ``bb.data.update_data()`` is no longer required in -order to apply the correct overrides. In practice, this change is -unlikely to require any changes to Metadata. However, these minor -changes in behavior exist: - -- All potential overrides are now visible in the variable history as - seen when you run the following:: - - $ bitbake -e - -- ``d.delVar('VARNAME')`` and - ``d.setVar('VARNAME', None)`` result in the variable and all - of its overrides being cleared out. Before the change, only the - non-overridden values were cleared. - -.. _migration-2.0-shell-message-function-changes: - -Shell Message Function Changes ------------------------------- - -The shell versions of the BitBake message functions (i.e. ``bbdebug``, -``bbnote``, ``bbwarn``, ``bbplain``, ``bberror``, and ``bbfatal``) are -now connected through to their BitBake equivalents ``bb.debug()``, -``bb.note()``, ``bb.warn()``, ``bb.plain()``, ``bb.error()``, and -``bb.fatal()``, respectively. Thus, those message functions that you -would expect to be printed by the BitBake UI are now actually printed. -In practice, this change means two things: - -- If you now see messages on the console that you did not previously - see as a result of this change, you might need to clean up the calls - to ``bbwarn``, ``bberror``, and so forth. Or, you might want to - simply remove the calls. - -- The ``bbfatal`` message function now suppresses the full error log in - the UI, which means any calls to ``bbfatal`` where you still wish to - see the full error log should be replaced by ``die`` or - ``bbfatal_log``. - -.. _migration-2.0-extra-development-debug-package-cleanup: - -Extra Development/Debug Package Cleanup ---------------------------------------- - -The following recipes have had extra ``dev/dbg`` packages removed: - -- ``acl`` - -- ``apmd`` - -- ``aspell`` - -- ``attr`` - -- ``augeas`` - -- ``bzip2`` - -- ``cogl`` - -- ``curl`` - -- ``elfutils`` - -- ``gcc-target`` - -- ``libgcc`` - -- ``libtool`` - -- ``libxmu`` - -- ``opkg`` - -- ``pciutils`` - -- ``rpm`` - -- ``sysfsutils`` - -- ``tiff`` - -- ``xz`` - -All of the above recipes now conform to the standard packaging scheme -where a single ``-dev``, ``-dbg``, and ``-staticdev`` package exists per -recipe. - -.. _migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core: - -Recipe Maintenance Tracking Data Moved to OE-Core -------------------------------------------------- - -Maintenance tracking data for recipes that was previously part of -``meta-yocto`` has been moved to :term:`OpenEmbedded-Core (OE-Core)`. The change -includes ``package_regex.inc`` and ``distro_alias.inc``, which are -typically enabled when using the ``distrodata`` class. Additionally, the -contents of ``upstream_tracking.inc`` has now been split out to the -relevant recipes. - -.. _migration-2.0-automatic-stale-sysroot-file-cleanup: - -Automatic Stale Sysroot File Cleanup ------------------------------------- - -Stale files from recipes that no longer exist in the current -configuration are now automatically removed from sysroot as well as -removed from any other place managed by shared state. This automatic -cleanup means that the build system now properly handles situations such -as renaming the build system side of recipes, removal of layers from -``bblayers.conf``, and :term:`DISTRO_FEATURES` -changes. - -Additionally, work directories for old versions of recipes are now -pruned. If you wish to disable pruning old work directories, you can set -the following variable in your configuration:: - - SSTATE_PRUNE_OBSOLETEWORKDIR = "0" - -.. _migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source: - -``linux-yocto`` Kernel Metadata Repository Now Split from Source ----------------------------------------------------------------- - -The ``linux-yocto`` tree has up to now been a combined set of kernel -changes and configuration (meta) data carried in a single tree. While -this format is effective at keeping kernel configuration and source -modifications synchronized, it is not always obvious to developers how -to manipulate the Metadata as compared to the source. - -Metadata processing has now been removed from the -:ref:`kernel-yocto ` class and the external -Metadata repository ``yocto-kernel-cache``, which has always been used -to seed the ``linux-yocto`` "meta" branch. This separate ``linux-yocto`` -cache repository is now the primary location for this data. Due to this -change, ``linux-yocto`` is no longer able to process combined trees. -Thus, if you need to have your own combined kernel repository, you must -do the split there as well and update your recipes accordingly. See the -``meta/recipes-kernel/linux/linux-yocto_4.1.bb`` recipe for an example. - -.. _migration-2.0-additional-qa-checks: - -Additional QA checks --------------------- - -The following QA checks have been added: - -- Added a "host-user-contaminated" check for ownership issues for - packaged files outside of ``/home``. The check looks for files that - are incorrectly owned by the user that ran BitBake instead of owned - by a valid user in the target system. - -- Added an "invalid-chars" check for invalid (non-UTF8) characters in - recipe metadata variable values (i.e. - :term:`DESCRIPTION`, - :term:`SUMMARY`, :term:`LICENSE`, and - :term:`SECTION`). Some package managers do not support - these characters. - -- Added an "invalid-packageconfig" check for any options specified in - :term:`PACKAGECONFIG` that do not match any - ``PACKAGECONFIG`` option defined for the recipe. - -.. _migration-2.0-miscellaneous: - -Miscellaneous Changes ---------------------- - -These additional changes exist: - -- ``gtk-update-icon-cache`` has been renamed to ``gtk-icon-utils``. - -- The ``tools-profile`` :term:`IMAGE_FEATURES` - item as well as its corresponding packagegroup and - ``packagegroup-core-tools-profile`` no longer bring in ``oprofile``. - Bringing in ``oprofile`` was originally added to aid compilation on - resource-constrained targets. However, this aid has not been widely - used and is not likely to be used going forward due to the more - powerful target platforms and the existence of better - cross-compilation tools. - -- The :term:`IMAGE_FSTYPES` variable's default - value now specifies ``ext4`` instead of ``ext3``. - -- All support for the ``PRINC`` variable has been removed. - -- The ``packagegroup-core-full-cmdline`` packagegroup no longer brings - in ``lighttpd`` due to the fact that bringing in ``lighttpd`` is not - really in line with the packagegroup's purpose, which is to add full - versions of command-line tools that by default are provided by - ``busybox``. - - diff --git a/poky/documentation/ref-manual/migration-2.1.rst b/poky/documentation/ref-manual/migration-2.1.rst deleted file mode 100644 index 32d193f0f..000000000 --- a/poky/documentation/ref-manual/migration-2.1.rst +++ /dev/null @@ -1,432 +0,0 @@ -Moving to the Yocto Project 2.1 Release (krogoth) -================================================= - -This section provides migration information for moving to the Yocto -Project 2.1 Release (codename "krogoth") from the prior release. - -.. _migration-2.1-variable-expansion-in-python-functions: - -Variable Expansion in Python Functions --------------------------------------- - -Variable expressions, such as ``${VARNAME}`` no longer expand -automatically within Python functions. Suppressing expansion was done to -allow Python functions to construct shell scripts or other code for -situations in which you do not want such expressions expanded. For any -existing code that relies on these expansions, you need to change the -expansions to expand the value of individual variables through -``d.getVar()``. To alternatively expand more complex expressions, use -``d.expand()``. - -.. _migration-2.1-overrides-must-now-be-lower-case: - -Overrides Must Now be Lower-Case --------------------------------- - -The convention for overrides has always been for them to be lower-case -characters. This practice is now a requirement as BitBake's datastore -now assumes lower-case characters in order to give a slight performance -boost during parsing. In practical terms, this requirement means that -anything that ends up in :term:`OVERRIDES` must now -appear in lower-case characters (e.g. values for ``MACHINE``, -``TARGET_ARCH``, ``DISTRO``, and also recipe names if -``_pn-``\ recipename overrides are to be effective). - -.. _migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory: - -Expand Parameter to ``getVar()`` and ``getVarFlag()`` is Now Mandatory ----------------------------------------------------------------------- - -The expand parameter to ``getVar()`` and ``getVarFlag()`` previously -defaulted to False if not specified. Now, however, no default exists so -one must be specified. You must change any ``getVar()`` calls that do -not specify the final expand parameter to calls that do specify the -parameter. You can run the following ``sed`` command at the base of a -layer to make this change:: - - sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *` - sed -e 's:\(\.getVarFlag([^,()]*,[^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *` - -.. note:: - - The reason for this change is that it prepares the way for changing - the default to True in a future Yocto Project release. This future - change is a much more sensible default than False. However, the - change needs to be made gradually as a sudden change of the default - would potentially cause side-effects that would be difficult to - detect. - -.. _migration-2.1-makefile-environment-changes: - -Makefile Environment Changes ----------------------------- - -:term:`EXTRA_OEMAKE` now defaults to "" instead of -"-e MAKEFLAGS=". Setting ``EXTRA_OEMAKE`` to "-e MAKEFLAGS=" by default -was a historical accident that has required many classes (e.g. -``autotools``, ``module``) and recipes to override this default in order -to work with sensible build systems. When upgrading to the release, you -must edit any recipe that relies upon this old default by either setting -``EXTRA_OEMAKE`` back to "-e MAKEFLAGS=" or by explicitly setting any -required variable value overrides using ``EXTRA_OEMAKE``, which is -typically only needed when a Makefile sets a default value for a -variable that is inappropriate for cross-compilation using the "=" -operator rather than the "?=" operator. - -.. _migration-2.1-libexecdir-reverted-to-prefix-libexec: - -``libexecdir`` Reverted to ``${prefix}/libexec`` ------------------------------------------------- - -The use of ``${libdir}/${BPN}`` as ``libexecdir`` is different as -compared to all other mainstream distributions, which either uses -``${prefix}/libexec`` or ``${libdir}``. The use is also contrary to the -GNU Coding Standards (i.e. -https://www.gnu.org/prep/standards/html_node/Directory-Variables.html) -that suggest ``${prefix}/libexec`` and also notes that any -package-specific nesting should be done by the package itself. Finally, -having ``libexecdir`` change between recipes makes it very difficult for -different recipes to invoke binaries that have been installed into -``libexecdir``. The Filesystem Hierarchy Standard (i.e. -https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html) now -recognizes the use of ``${prefix}/libexec/``, giving distributions the -choice between ``${prefix}/lib`` or ``${prefix}/libexec`` without -breaking FHS. - -.. _migration-2.1-ac-cv-sizeof-off-t-no-longer-cached-in-site-files: - -``ac_cv_sizeof_off_t`` is No Longer Cached in Site Files --------------------------------------------------------- - -For recipes inheriting the :ref:`autotools ` -class, ``ac_cv_sizeof_off_t`` is no longer cached in the site files for -``autoconf``. The reason for this change is because the -``ac_cv_sizeof_off_t`` value is not necessarily static per architecture -as was previously assumed. Rather, the value changes based on whether -large file support is enabled. For most software that uses ``autoconf``, -this change should not be a problem. However, if you have a recipe that -bypasses the standard :ref:`ref-tasks-configure` task -from the ``autotools`` class and the software the recipe is building -uses a very old version of ``autoconf``, the recipe might be incapable -of determining the correct size of ``off_t`` during ``do_configure``. - -The best course of action is to patch the software as necessary to allow -the default implementation from the ``autotools`` class to work such -that ``autoreconf`` succeeds and produces a working configure script, -and to remove the overridden ``do_configure`` task such that the default -implementation does get used. - -.. _migration-2.1-image-generation-split-out-from-filesystem-generation: - -Image Generation is Now Split Out from Filesystem Generation ------------------------------------------------------------- - -Previously, for image recipes the :ref:`ref-tasks-rootfs` -task assembled the filesystem and then from that filesystem generated -images. With this Yocto Project release, image generation is split into -separate :ref:`ref-tasks-image` tasks for clarity both in -operation and in the code. - -For most cases, this change does not present any problems. However, if -you have made customizations that directly modify the ``do_rootfs`` task -or that mention ``do_rootfs``, you might need to update those changes. -In particular, if you had added any tasks after ``do_rootfs``, you -should make edits so that those tasks are after the -:ref:`ref-tasks-image-complete` task rather than -after ``do_rootfs`` so that your added tasks run at the correct -time. - -A minor part of this restructuring is that the post-processing -definitions and functions have been moved from the -:ref:`image ` class to the -:ref:`rootfs-postcommands ` class. Functionally, -however, they remain unchanged. - -.. _migration-2.1-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed in the 2.1 release: - -- ``gcc`` version 4.8: Versions 4.9 and 5.3 remain. - -- ``qt4``: All support for Qt 4.x has been moved out to a separate - ``meta-qt4`` layer because Qt 4 is no longer supported upstream. - -- ``x11vnc``: Moved to the ``meta-oe`` layer. - -- ``linux-yocto-3.14``: No longer supported. - -- ``linux-yocto-3.19``: No longer supported. - -- ``libjpeg``: Replaced by the ``libjpeg-turbo`` recipe. - -- ``pth``: Became obsolete. - -- ``liboil``: Recipe is no longer needed and has been moved to the - ``meta-multimedia`` layer. - -- ``gtk-theme-torturer``: Recipe is no longer needed and has been moved - to the ``meta-gnome`` layer. - -- ``gnome-mime-data``: Recipe is no longer needed and has been moved to - the ``meta-gnome`` layer. - -- ``udev``: Replaced by the ``eudev`` recipe for compatibility when - using ``sysvinit`` with newer kernels. - -- ``python-pygtk``: Recipe became obsolete. - -- ``adt-installer``: Recipe became obsolete. See the - ":ref:`ref-manual/migration-2.1:adt removed`" section for more information. - -.. _migration-2.1-class-changes: - -Class Changes -------------- - -The following classes have changed: - -- ``autotools_stage``: Removed because the - :ref:`autotools ` class now provides its - functionality. Recipes that inherited from ``autotools_stage`` should - now inherit from ``autotools`` instead. - -- ``boot-directdisk``: Merged into the ``image-vm`` class. The - ``boot-directdisk`` class was rarely directly used. Consequently, - this change should not cause any issues. - -- ``bootimg``: Merged into the - :ref:`image-live ` class. The ``bootimg`` - class was rarely directly used. Consequently, this change should not - cause any issues. - -- ``packageinfo``: Removed due to its limited use by the Hob UI, which - has itself been removed. - -.. _migration-2.1-build-system-ui-changes: - -Build System User Interface Changes ------------------------------------ - -The following changes have been made to the build system user interface: - -- *Hob GTK+-based UI*: Removed because it is unmaintained and based on - the outdated GTK+ 2 library. The Toaster web-based UI is much more - capable and is actively maintained. See the - ":ref:`toaster-manual/setup-and-use:using the toaster web interface`" - section in the Toaster User Manual for more information on this - interface. - -- *"puccho" BitBake UI*: Removed because is unmaintained and no longer - useful. - -.. _migration-2.1-adt-removed: - -ADT Removed ------------ - -The Application Development Toolkit (ADT) has been removed because its -functionality almost completely overlapped with the :ref:`standard -SDK ` and the -:ref:`extensible SDK `. For -information on these SDKs and how to build and use them, see the -:doc:`/sdk-manual/index` manual. - -.. note:: - - The Yocto Project Eclipse IDE Plug-in is still supported and is not - affected by this change. - -.. _migration-2.1-poky-reference-distribution-changes: - -Poky Reference Distribution Changes ------------------------------------ - -The following changes have been made for the Poky distribution: - -- The ``meta-yocto`` layer has been renamed to ``meta-poky`` to better - match its purpose, which is to provide the Poky reference - distribution. The ``meta-yocto-bsp`` layer retains its original name - since it provides reference machines for the Yocto Project and it is - otherwise unrelated to Poky. References to ``meta-yocto`` in your - ``conf/bblayers.conf`` should automatically be updated, so you should - not need to change anything unless you are relying on this naming - elsewhere. - -- The :ref:`uninative ` class is now enabled - by default in Poky. This class attempts to isolate the build system - from the host distribution's C library and makes re-use of native - shared state artifacts across different host distributions practical. - With this class enabled, a tarball containing a pre-built C library - is downloaded at the start of the build. - - The ``uninative`` class is enabled through the - ``meta/conf/distro/include/yocto-uninative.inc`` file, which for - those not using the Poky distribution, can include to easily enable - the same functionality. - - Alternatively, if you wish to build your own ``uninative`` tarball, - you can do so by building the ``uninative-tarball`` recipe, making it - available to your build machines (e.g. over HTTP/HTTPS) and setting a - similar configuration as the one set by ``yocto-uninative.inc``. - -- Static library generation, for most cases, is now disabled by default - in the Poky distribution. Disabling this generation saves some build - time as well as the size used for build output artifacts. - - Disabling this library generation is accomplished through a - ``meta/conf/distro/include/no-static-libs.inc``, which for those not - using the Poky distribution can easily include to enable the same - functionality. - - Any recipe that needs to opt-out of having the "--disable-static" - option specified on the configure command line either because it is - not a supported option for the configure script or because static - libraries are needed should set the following variable:: - - DISABLE_STATIC = "" - -- The separate ``poky-tiny`` distribution now uses the musl C library - instead of a heavily pared down ``glibc``. Using musl results in a - smaller distribution and facilitates much greater maintainability - because musl is designed to have a small footprint. - - If you have used ``poky-tiny`` and have customized the ``glibc`` - configuration you will need to redo those customizations with musl - when upgrading to the new release. - -.. _migration-2.1-packaging-changes: - -Packaging Changes ------------------ - -The following changes have been made to packaging: - -- The ``runuser`` and ``mountpoint`` binaries, which were previously in - the main ``util-linux`` package, have been split out into the - ``util-linux-runuser`` and ``util-linux-mountpoint`` packages, - respectively. - -- The ``python-elementtree`` package has been merged into the - ``python-xml`` package. - -.. _migration-2.1-tuning-file-changes: - -Tuning File Changes -------------------- - -The following changes have been made to the tuning files: - -- The "no-thumb-interwork" tuning feature has been dropped from the ARM - tune include files. Because interworking is required for ARM EABI, - attempting to disable it through a tuning feature no longer makes - sense. - - .. note:: - - Support for ARM OABI was deprecated in gcc 4.7. - -- The ``tune-cortexm*.inc`` and ``tune-cortexr4.inc`` files have been - removed because they are poorly tested. Until the OpenEmbedded build - system officially gains support for CPUs without an MMU, these tuning - files would probably be better maintained in a separate layer if - needed. - -.. _migration-2.1-supporting-gobject-introspection: - -Supporting GObject Introspection --------------------------------- - -This release supports generation of GLib Introspective Repository (GIR) -files through GObject introspection, which is the standard mechanism for -accessing GObject-based software from runtime environments. You can -enable, disable, and test the generation of this data. See the -":ref:`dev-manual/common-tasks:enabling gobject introspection support`" -section in the Yocto Project Development Tasks Manual for more -information. - -.. _migration-2.1-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -These additional changes exist: - -- The minimum Git version has been increased to 1.8.3.1. If your host - distribution does not provide a sufficiently recent version, you can - install the buildtools, which will provide it. See the - :ref:`ref-manual/system-requirements:required git, tar, python and gcc versions` - section for more information on the buildtools tarball. - -- The buggy and incomplete support for the RPM version 4 package - manager has been removed. The well-tested and maintained support for - RPM version 5 remains. - -- Previously, the following list of packages were removed if - package-management was not in - :term:`IMAGE_FEATURES`, regardless of any - dependencies:: - - update-rc.d - base-passwd - shadow - update-alternatives - run-postinsts - - With the Yocto Project 2.1 release, these packages are - only removed if "read-only-rootfs" is in ``IMAGE_FEATURES``, since - they might still be needed for a read-write image even in the absence - of a package manager (e.g. if users need to be added, modified, or - removed at runtime). - -- The - :ref:`devtool modify ` - command now defaults to extracting the source since that is most - commonly expected. The "-x" or "--extract" options are now no-ops. If - you wish to provide your own existing source tree, you will now need - to specify either the "-n" or "--no-extract" options when running - ``devtool modify``. - -- If the formfactor for a machine is either not supplied or does not - specify whether a keyboard is attached, then the default is to assume - a keyboard is attached rather than assume no keyboard. This change - primarily affects the Sato UI. - -- The ``.debug`` directory packaging is now automatic. If your recipe - builds software that installs binaries into directories other than - the standard ones, you no longer need to take care of setting - ``FILES_${PN}-dbg`` to pick up the resulting ``.debug`` directories - as these directories are automatically found and added. - -- Inaccurate disk and CPU percentage data has been dropped from - ``buildstats`` output. This data has been replaced with - ``getrusage()`` data and corrected IO statistics. You will probably - need to update any custom code that reads the ``buildstats`` data. - -- The ``meta/conf/distro/include/package_regex.inc`` is now deprecated. - The contents of this file have been moved to individual recipes. - - .. note:: - - Because this file will likely be removed in a future Yocto Project - release, it is suggested that you remove any references to the - file that might be in your configuration. - -- The ``v86d/uvesafb`` has been removed from the ``genericx86`` and - ``genericx86-64`` reference machines, which are provided by the - ``meta-yocto-bsp`` layer. Most modern x86 boards do not rely on this - file and it only adds kernel error messages during startup. If you do - still need to support ``uvesafb``, you can simply add ``v86d`` to - your image. - -- Build sysroot paths are now removed from debug symbol files. Removing - these paths means that remote GDB using an unstripped build system - sysroot will no longer work (although this was never documented to - work). The supported method to accomplish something similar is to set - ``IMAGE_GEN_DEBUGFS`` to "1", which will generate a companion debug - image containing unstripped binaries and associated debug sources - alongside the image. - - diff --git a/poky/documentation/ref-manual/migration-2.2.rst b/poky/documentation/ref-manual/migration-2.2.rst deleted file mode 100644 index a60ce8d52..000000000 --- a/poky/documentation/ref-manual/migration-2.2.rst +++ /dev/null @@ -1,446 +0,0 @@ -Moving to the Yocto Project 2.2 Release (morty) -=============================================== - -This section provides migration information for moving to the Yocto -Project 2.2 Release (codename "morty") from the prior release. - -.. _migration-2.2-minimum-kernel-version: - -Minimum Kernel Version ----------------------- - -The minimum kernel version for the target system and for SDK is now -3.2.0, due to the upgrade to ``glibc 2.24``. Specifically, for -AArch64-based targets the version is 3.14. For Nios II-based targets, -the minimum kernel version is 3.19. - -.. note:: - - For x86 and x86_64, you can reset :term:`OLDEST_KERNEL` - to anything down to 2.6.32 if desired. - -.. _migration-2.2-staging-directories-in-sysroot-simplified: - -Staging Directories in Sysroot Has Been Simplified --------------------------------------------------- - -The way directories are staged in sysroot has been simplified and -introduces the new :term:`SYSROOT_DIRS`, -:term:`SYSROOT_DIRS_NATIVE`, and -:term:`SYSROOT_DIRS_BLACKLIST`. See the -:oe_lists:`v2 patch series on the OE-Core Mailing List -` -for additional information. - -.. _migration-2.2-removal-of-old-images-from-tmp-deploy-now-enabled: - -Removal of Old Images and Other Files in ``tmp/deploy`` Now Enabled -------------------------------------------------------------------- - -Removal of old images and other files in ``tmp/deploy/`` is now enabled -by default due to a new staging method used for those files. As a result -of this change, the ``RM_OLD_IMAGE`` variable is now redundant. - -.. _migration-2.2-python-changes: - -Python Changes --------------- - -The following changes for Python occurred: - -.. _migration-2.2-bitbake-now-requires-python-3.4: - -BitBake Now Requires Python 3.4+ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -BitBake requires Python 3.4 or greater. - -.. _migration-2.2-utf-8-locale-required-on-build-host: - -UTF-8 Locale Required on Build Host -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A UTF-8 locale is required on the build host due to Python 3. Since -C.UTF-8 is not a standard, the default is en_US.UTF-8. - -.. _migration-2.2-metadata-now-must-use-python-3-syntax: - -Metadata Must Now Use Python 3 Syntax -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The metadata is now required to use Python 3 syntax. For help preparing -metadata, see any of the many Python 3 porting guides available. -Alternatively, you can reference the conversion commits for Bitbake and -you can use :term:`OpenEmbedded-Core (OE-Core)` as a guide for changes. Following are -particular areas of interest: - - - subprocess command-line pipes needing locale decoding - - - the syntax for octal values changed - - - the ``iter*()`` functions changed name - - - iterators now return views, not lists - - - changed names for Python modules - -.. _migration-2.2-target-python-recipes-switched-to-python-3: - -Target Python Recipes Switched to Python 3 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Most target Python recipes have now been switched to Python 3. -Unfortunately, systems using RPM as a package manager and providing -online package-manager support through SMART still require Python 2. - -.. note:: - - Python 2 and recipes that use it can still be built for the target as - with previous versions. - -.. _migration-2.2-buildtools-tarball-includes-python-3: - -``buildtools-tarball`` Includes Python 3 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``buildtools-tarball`` now includes Python 3. - -.. _migration-2.2-uclibc-replaced-by-musl: - -uClibc Replaced by musl ------------------------ - -uClibc has been removed in favor of musl. Musl has matured, is better -maintained, and is compatible with a wider range of applications as -compared to uClibc. - -.. _migration-2.2-B-no-longer-default-working-directory-for-tasks: - -``${B}`` No Longer Default Working Directory for Tasks ------------------------------------------------------- - -``${``\ :term:`B`\ ``}`` is no longer the default working -directory for tasks. Consequently, any custom tasks you define now need -to either have the -``[``\ :ref:`dirs `\ ``]`` flag -set, or the task needs to change into the appropriate working directory -manually (e.g using ``cd`` for a shell task). - -.. note:: - - The preferred method is to use the - [dirs] - flag. - -.. _migration-2.2-runqemu-ported-to-python: - -``runqemu`` Ported to Python ----------------------------- - -``runqemu`` has been ported to Python and has changed behavior in some -cases. Previous usage patterns continue to be supported. - -The new ``runqemu`` is a Python script. Machine knowledge is no longer -hardcoded into ``runqemu``. You can choose to use the ``qemuboot`` -configuration file to define the BSP's own arguments and to make it -bootable with ``runqemu``. If you use a configuration file, use the -following form:: - - image-name-machine.qemuboot.conf - -The configuration file -enables fine-grained tuning of options passed to QEMU without the -``runqemu`` script hard-coding any knowledge about different machines. -Using a configuration file is particularly convenient when trying to use -QEMU with machines other than the ``qemu*`` machines in -:term:`OpenEmbedded-Core (OE-Core)`. The ``qemuboot.conf`` file is generated by the -``qemuboot`` class when the root filesystem is being build (i.e. build -rootfs). QEMU boot arguments can be set in BSP's configuration file and -the ``qemuboot`` class will save them to ``qemuboot.conf``. - -If you want to use ``runqemu`` without a configuration file, use the -following command form:: - - $ runqemu machine rootfs kernel [options] - -Supported machines are as follows: - - - qemuarm - - qemuarm64 - - qemux86 - - qemux86-64 - - qemuppc - - qemumips - - qemumips64 - - qemumipsel - - qemumips64el - -Consider the -following example, which uses the ``qemux86-64`` machine, provides a -root filesystem, provides an image, and uses the ``nographic`` option:: - - $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tmp/deploy/images/qemux86-64/bzImage nographic - -Following is a list of variables that can be set in configuration files -such as ``bsp.conf`` to enable the BSP to be booted by ``runqemu``: - -.. note:: - - "QB" means "QEMU Boot". - -:: - - QB_SYSTEM_NAME: QEMU name (e.g. "qemu-system-i386") - QB_OPT_APPEND: Options to append to QEMU (e.g. "-show-cursor") - QB_DEFAULT_KERNEL: Default kernel to boot (e.g. "bzImage") - QB_DEFAULT_FSTYPE: Default FSTYPE to boot (e.g. "ext4") - QB_MEM: Memory (e.g. "-m 512") - QB_MACHINE: QEMU machine (e.g. "-machine virt") - QB_CPU: QEMU cpu (e.g. "-cpu qemu32") - QB_CPU_KVM: Similar to QB_CPU except used for kvm support (e.g. "-cpu kvm64") - QB_KERNEL_CMDLINE_APPEND: Options to append to the kernel's -append - option (e.g. "console=ttyS0 console=tty") - QB_DTB: QEMU dtb name - QB_AUDIO_DRV: QEMU audio driver (e.g. "alsa", set it when support audio) - QB_AUDIO_OPT: QEMU audio option (e.g. "-soundhw ac97,es1370"), which is used - when QB_AUDIO_DRV is set. - QB_KERNEL_ROOT: Kernel's root (e.g. /dev/vda) - QB_TAP_OPT: Network option for 'tap' mode (e.g. - "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-device,netdev=net0"). - runqemu will replace "@TAP@" with the one that is used, such as tap0, tap1 ... - QB_SLIRP_OPT: Network option for SLIRP mode (e.g. "-netdev user,id=net0 -device virtio-net-device,netdev=net0") - QB_ROOTFS_OPT: Used as rootfs (e.g. - "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"). - runqemu will replace "@ROOTFS@" with the one which is used, such as - core-image-minimal-qemuarm64.ext4. - QB_SERIAL_OPT: Serial port (e.g. "-serial mon:stdio") - QB_TCPSERIAL_OPT: tcp serial port option (e.g. - " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" - runqemu will replace "@PORT@" with the port number which is used. - -To use ``runqemu``, set :term:`IMAGE_CLASSES` as -follows and run ``runqemu``: - -.. note:: - - For command-line syntax, use ``runqemu help``. - -:: - - IMAGE_CLASSES += "qemuboot" - -.. _migration-2.2-default-linker-hash-style-changed: - -Default Linker Hash Style Changed ---------------------------------- - -The default linker hash style for ``gcc-cross`` is now "sysv" in order -to catch recipes that are building software without using the -OpenEmbedded :term:`LDFLAGS`. This change could result in -seeing some "No GNU_HASH in the elf binary" QA issues when building such -recipes. You need to fix these recipes so that they use the expected -``LDFLAGS``. Depending on how the software is built, the build system -used by the software (e.g. a Makefile) might need to be patched. -However, sometimes making this fix is as simple as adding the following -to the recipe:: - - TARGET_CC_ARCH += "${LDFLAGS}" - -.. _migration-2.2-kernel-image-base-name-no-longer-uses-kernel-imagetype: - -``KERNEL_IMAGE_BASE_NAME`` no Longer Uses ``KERNEL_IMAGETYPE`` --------------------------------------------------------------- - -The ``KERNEL_IMAGE_BASE_NAME`` variable no longer uses the -:term:`KERNEL_IMAGETYPE` variable to create the -image's base name. Because the OpenEmbedded build system can now build -multiple kernel image types, this part of the kernel image base name as -been removed leaving only the following:: - - KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" - -If you have recipes or -classes that use ``KERNEL_IMAGE_BASE_NAME`` directly, you might need to -update the references to ensure they continue to work. - -.. _migration-2.2-bitbake-changes: - -BitBake Changes ---------------- - -The following changes took place for BitBake: - -- The "goggle" UI and standalone image-writer tool have been removed as - they both require GTK+ 2.0 and were not being maintained. - -- The Perforce fetcher now supports :term:`SRCREV` for - specifying the source revision to use, be it - ``${``\ :term:`AUTOREV`\ ``}``, changelist number, - p4date, or label, in preference to separate - :term:`SRC_URI` parameters to specify these. This - change is more in-line with how the other fetchers work for source - control systems. Recipes that fetch from Perforce will need to be - updated to use ``SRCREV`` in place of specifying the source revision - within ``SRC_URI``. - -- Some of BitBake's internal code structures for accessing the recipe - cache needed to be changed to support the new multi-configuration - functionality. These changes will affect external tools that use - BitBake's tinfoil module. For information on these changes, see the - changes made to the scripts supplied with OpenEmbedded-Core: - :yocto_git:`1 ` - and - :yocto_git:`2 `. - -- The task management code has been rewritten to avoid using ID - indirection in order to improve performance. This change is unlikely - to cause any problems for most users. However, the setscene - verification function as pointed to by - ``BB_SETSCENE_VERIFY_FUNCTION`` needed to change signature. - Consequently, a new variable named ``BB_SETSCENE_VERIFY_FUNCTION2`` - has been added allowing multiple versions of BitBake to work with - suitably written metadata, which includes OpenEmbedded-Core and Poky. - Anyone with custom BitBake task scheduler code might also need to - update the code to handle the new structure. - -.. _migration-2.2-swabber-has-been-removed: - -Swabber has Been Removed ------------------------- - -Swabber, a tool that was intended to detect host contamination in the -build process, has been removed, as it has been unmaintained and unused -for some time and was never particularly effective. The OpenEmbedded -build system has since incorporated a number of mechanisms including -enhanced QA checks that mean that there is less of a need for such a -tool. - -.. _migration-2.2-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed: - -- ``augeas``: No longer needed and has been moved to ``meta-oe``. - -- ``directfb``: Unmaintained and has been moved to ``meta-oe``. - -- ``gcc``: Removed 4.9 version. Versions 5.4 and 6.2 are still present. - -- ``gnome-doc-utils``: No longer needed. - -- ``gtk-doc-stub``: Replaced by ``gtk-doc``. - -- ``gtk-engines``: No longer needed and has been moved to - ``meta-gnome``. - -- ``gtk-sato-engine``: Became obsolete. - -- ``libglade``: No longer needed and has been moved to ``meta-oe``. - -- ``libmad``: Unmaintained and functionally replaced by ``libmpg123``. - ``libmad`` has been moved to ``meta-oe``. - -- ``libowl``: Became obsolete. - -- ``libxsettings-client``: No longer needed. - -- ``oh-puzzles``: Functionally replaced by ``puzzles``. - -- ``oprofileui``: Became obsolete. OProfile has been largely supplanted - by perf. - -- ``packagegroup-core-directfb.bb``: Removed. - -- ``core-image-directfb.bb``: Removed. - -- ``pointercal``: No longer needed and has been moved to ``meta-oe``. - -- ``python-imaging``: No longer needed and moved to ``meta-python`` - -- ``python-pyrex``: No longer needed and moved to ``meta-python``. - -- ``sato-icon-theme``: Became obsolete. - -- ``swabber-native``: Swabber has been removed. See the :ref:`entry on - Swabber `. - -- ``tslib``: No longer needed and has been moved to ``meta-oe``. - -- ``uclibc``: Removed in favor of musl. - -- ``xtscal``: No longer needed and moved to ``meta-oe`` - -.. _migration-2.2-removed-classes: - -Removed Classes ---------------- - -The following classes have been removed: - -- ``distutils-native-base``: No longer needed. - -- ``distutils3-native-base``: No longer needed. - -- ``sdl``: Only set :term:`DEPENDS` and - :term:`SECTION`, which are better set within the - recipe instead. - -- ``sip``: Mostly unused. - -- ``swabber``: See the :ref:`entry on - Swabber `. - -.. _migration-2.2-minor-packaging-changes: - -Minor Packaging Changes ------------------------ - -The following minor packaging changes have occurred: - -- ``grub``: Split ``grub-editenv`` into its own package. - -- ``systemd``: Split container and vm related units into a new package, - systemd-container. - -- ``util-linux``: Moved ``prlimit`` to a separate - ``util-linux-prlimit`` package. - -.. _migration-2.2-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following miscellaneous changes have occurred: - -- ``package_regex.inc``: Removed because the definitions - ``package_regex.inc`` previously contained have been moved to their - respective recipes. - -- Both ``devtool add`` and ``recipetool create`` now use a fixed - :term:`SRCREV` by default when fetching from a Git - repository. You can override this in either case to use - ``${``\ :term:`AUTOREV`\ ``}`` instead by using the - ``-a`` or ``--autorev`` command-line option - -- ``distcc``: GTK+ UI is now disabled by default. - -- ``packagegroup-core-tools-testapps``: Removed Piglit. - -- ``image.bbclass``: Renamed COMPRESS(ION) to CONVERSION. This change - means that ``COMPRESSIONTYPES``, ``COMPRESS_DEPENDS`` and - ``COMPRESS_CMD`` are deprecated in favor of ``CONVERSIONTYPES``, - ``CONVERSION_DEPENDS`` and ``CONVERSION_CMD``. The ``COMPRESS*`` - variable names will still work in the 2.2 release but metadata that - does not need to be backwards-compatible should be changed to use the - new names as the ``COMPRESS*`` ones will be removed in a future - release. - -- ``gtk-doc``: A full version of ``gtk-doc`` is now made available. - However, some old software might not be capable of using the current - version of ``gtk-doc`` to build documentation. You need to change - recipes that build such software so that they explicitly disable - building documentation with ``gtk-doc``. - - diff --git a/poky/documentation/ref-manual/migration-2.3.rst b/poky/documentation/ref-manual/migration-2.3.rst deleted file mode 100644 index dfbda612a..000000000 --- a/poky/documentation/ref-manual/migration-2.3.rst +++ /dev/null @@ -1,517 +0,0 @@ -Moving to the Yocto Project 2.3 Release (pyro) -============================================== - -This section provides migration information for moving to the Yocto -Project 2.3 Release (codename "pyro") from the prior release. - -.. _migration-2.3-recipe-specific-sysroots: - -Recipe-specific Sysroots ------------------------- - -The OpenEmbedded build system now uses one sysroot per recipe to resolve -long-standing issues with configuration script auto-detection of -undeclared dependencies. Consequently, you might find that some of your -previously written custom recipes are missing declared dependencies, -particularly those dependencies that are incidentally built earlier in a -typical build process and thus are already likely to be present in the -shared sysroot in previous releases. - -Consider the following: - -- *Declare Build-Time Dependencies:* Because of this new feature, you - must explicitly declare all build-time dependencies for your recipe. - If you do not declare these dependencies, they are not populated into - the sysroot for the recipe. - -- *Specify Pre-Installation and Post-Installation Native Tool - Dependencies:* You must specifically specify any special native tool - dependencies of ``pkg_preinst`` and ``pkg_postinst`` scripts by using - the :term:`PACKAGE_WRITE_DEPS` variable. - Specifying these dependencies ensures that these tools are available - if these scripts need to be run on the build host during the - :ref:`ref-tasks-rootfs` task. - - As an example, see the ``dbus`` recipe. You will see that this recipe - has a ``pkg_postinst`` that calls ``systemctl`` if "systemd" is in - :term:`DISTRO_FEATURES`. In the example, - ``systemd-systemctl-native`` is added to ``PACKAGE_WRITE_DEPS``, - which is also conditional on "systemd" being in ``DISTRO_FEATURES``. - -- Examine Recipes that Use ``SSTATEPOSTINSTFUNCS``: You need to - examine any recipe that uses ``SSTATEPOSTINSTFUNCS`` and determine - steps to take. - - Functions added to ``SSTATEPOSTINSTFUNCS`` are still called as they - were in previous Yocto Project releases. However, since a separate - sysroot is now being populated for every recipe and if existing - functions being called through ``SSTATEPOSTINSTFUNCS`` are doing - relocation, then you will need to change these to use a - post-installation script that is installed by a function added to - :term:`SYSROOT_PREPROCESS_FUNCS`. - - For an example, see the ``pixbufcache`` class in ``meta/classes/`` in - the :ref:`overview-manual/development-environment:yocto project source repositories`. - - .. note:: - - The - SSTATEPOSTINSTFUNCS - variable itself is now deprecated in favor of the - do_populate_sysroot[postfuncs] - task. Consequently, if you do still have any function or functions - that need to be called after the sysroot component is created for - a recipe, then you would be well advised to take steps to use a - post installation script as described previously. Taking these - steps prepares your code for when - SSTATEPOSTINSTFUNCS - is removed in a future Yocto Project release. - -- *Specify the Sysroot when Using Certain External Scripts:* Because - the shared sysroot is now gone, the scripts - ``oe-find-native-sysroot`` and ``oe-run-native`` have been changed - such that you need to specify which recipe's - :term:`STAGING_DIR_NATIVE` is used. - -.. note:: - - You can find more information on how recipe-specific sysroots work in - the ":ref:`ref-classes-staging`" section. - -.. _migration-2.3-path-variable: - -``PATH`` Variable ------------------ - -Within the environment used to run build tasks, the environment variable -``PATH`` is now sanitized such that the normal native binary paths -(``/bin``, ``/sbin``, ``/usr/bin`` and so forth) are removed and a -directory containing symbolic links linking only to the binaries from -the host mentioned in the :term:`HOSTTOOLS` and -:term:`HOSTTOOLS_NONFATAL` variables is added -to ``PATH``. - -Consequently, any native binaries provided by the host that you need to -call needs to be in one of these two variables at the configuration -level. - -Alternatively, you can add a native recipe (i.e. ``-native``) that -provides the binary to the recipe's :term:`DEPENDS` -value. - -.. note:: - - PATH - is not sanitized in the same way within ``devshell``. - If it were, you would have difficulty running host tools for - development and debugging within the shell. - -.. _migration-2.3-scripts: - -Changes to Scripts ------------------- - -The following changes to scripts took place: - -- ``oe-find-native-sysroot``: The usage for the - ``oe-find-native-sysroot`` script has changed to the following:: - - $ . oe-find-native-sysroot recipe - - You must now supply a recipe for recipe - as part of the command. Prior to the Yocto Project 2.3 release, it - was not necessary to provide the script with the command. - -- ``oe-run-native``: The usage for the ``oe-run-native`` script has - changed to the following:: - - $ oe-run-native native_recipe tool - - You must - supply the name of the native recipe and the tool you want to run as - part of the command. Prior to the Yocto Project 2.3 release, it - was not necessary to provide the native recipe with the command. - -- ``cleanup-workdir``: The ``cleanup-workdir`` script has been - removed because the script was found to be deleting files it should - not have, which lead to broken build trees. Rather than trying to - delete portions of :term:`TMPDIR` and getting it wrong, - it is recommended that you delete ``TMPDIR`` and have it restored - from shared state (sstate) on subsequent builds. - -- ``wipe-sysroot``: The ``wipe-sysroot`` script has been removed as - it is no longer needed with recipe-specific sysroots. - -.. _migration-2.3-functions: - -Changes to Functions --------------------- - -The previously deprecated ``bb.data.getVar()``, ``bb.data.setVar()``, -and related functions have been removed in favor of ``d.getVar()``, -``d.setVar()``, and so forth. - -You need to fix any references to these old functions. - -.. _migration-2.3-bitbake-changes: - -BitBake Changes ---------------- - -The following changes took place for BitBake: - -- *BitBake's Graphical Dependency Explorer UI Replaced:* BitBake's - graphical dependency explorer UI ``depexp`` was replaced by - ``taskexp`` ("Task Explorer"), which provides a graphical way of - exploring the ``task-depends.dot`` file. The data presented by Task - Explorer is much more accurate than the data that was presented by - ``depexp``. Being able to visualize the data is an often requested - feature as standard ``*.dot`` file viewers cannot usual cope with the - size of the ``task-depends.dot`` file. - -- *BitBake "-g" Output Changes:* The ``package-depends.dot`` and - ``pn-depends.dot`` files as previously generated using the - ``bitbake -g`` command have been removed. A ``recipe-depends.dot`` - file is now generated as a collapsed version of ``task-depends.dot`` - instead. - - The reason for this change is because ``package-depends.dot`` and - ``pn-depends.dot`` largely date back to a time before task-based - execution and do not take into account task-level dependencies - between recipes, which could be misleading. - -- *Mirror Variable Splitting Changes:* Mirror variables including - :term:`MIRRORS`, :term:`PREMIRRORS`, - and :term:`SSTATE_MIRRORS` can now separate - values entirely with spaces. Consequently, you no longer need "\\n". - BitBake looks for pairs of values, which simplifies usage. There - should be no change required to existing mirror variable values - themselves. - -- *The Subversion (SVN) Fetcher Uses an "ssh" Parameter and Not an - "rsh" Parameter:* The SVN fetcher now takes an "ssh" parameter - instead of an "rsh" parameter. This new optional parameter is used - when the "protocol" parameter is set to "svn+ssh". You can only use - the new parameter to specify the ``ssh`` program used by SVN. The SVN - fetcher passes the new parameter through the ``SVN_SSH`` environment - variable during the :ref:`ref-tasks-fetch` task. - - See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:subversion (svn) fetcher (\`\`svn://\`\`)`" - section in the BitBake - User Manual for additional information. - -- ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2`` - Removed: Because the mechanism they were part of is no longer - necessary with recipe-specific sysroots, the - ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2`` - variables have been removed. - -.. _migration-2.3-absolute-symlinks: - -Absolute Symbolic Links ------------------------ - -Absolute symbolic links (symlinks) within staged files are no longer -permitted and now trigger an error. Any explicit creation of symlinks -can use the ``lnr`` script, which is a replacement for ``ln -r``. - -If the build scripts in the software that the recipe is building are -creating a number of absolute symlinks that need to be corrected, you -can inherit ``relative_symlinks`` within the recipe to turn those -absolute symlinks into relative symlinks. - -.. _migration-2.3-gplv2-and-gplv3-moves: - -GPLv2 Versions of GPLv3 Recipes Moved -------------------------------------- - -Older GPLv2 versions of GPLv3 recipes have moved to a separate -``meta-gplv2`` layer. - -If you use :term:`INCOMPATIBLE_LICENSE` to -exclude GPLv3 or set :term:`PREFERRED_VERSION` -to substitute a GPLv2 version of a GPLv3 recipe, then you must add the -``meta-gplv2`` layer to your configuration. - -.. note:: - - You can ``find meta-gplv2`` layer in the OpenEmbedded layer index at - :oe_layer:`/meta-gplv2`. - -These relocated GPLv2 recipes do not receive the same level of -maintenance as other core recipes. The recipes do not get security fixes -and upstream no longer maintains them. In fact, the upstream community -is actively hostile towards people that use the old versions of the -recipes. Moving these recipes into a separate layer both makes the -different needs of the recipes clearer and clearly identifies the number -of these recipes. - -.. note:: - - The long-term solution might be to move to BSD-licensed replacements - of the GPLv3 components for those that need to exclude GPLv3-licensed - components from the target system. This solution will be investigated - for future Yocto Project releases. - -.. _migration-2.3-package-management-changes: - -Package Management Changes --------------------------- - -The following package management changes took place: - -- Smart package manager is replaced by DNF package manager. Smart has - become unmaintained upstream, is not ported to Python 3.x. - Consequently, Smart needed to be replaced. DNF is the only feasible - candidate. - - The change in functionality is that the on-target runtime package - management from remote package feeds is now done with a different - tool that has a different set of command-line options. If you have - scripts that call the tool directly, or use its API, they need to be - fixed. - - For more information, see the `DNF - Documentation `__. - -- Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons: - - - DNF is API-incompatible with Rpm 5.x and porting it and - maintaining the port is non-trivial. - - - Rpm 5.x itself has limited maintenance upstream, and the Yocto - Project is one of the very few remaining users. - -- Berkeley DB 6.x is removed and Berkeley DB 5.x becomes the default: - - - Version 6.x of Berkeley DB has largely been rejected by the open - source community due to its AGPLv3 license. As a result, most - mainstream open source projects that require DB are still - developed and tested with DB 5.x. - - - In OE-core, the only thing that was requiring DB 6.x was Rpm 5.x. - Thus, no reason exists to continue carrying DB 6.x in OE-core. - -- ``createrepo`` is replaced with ``createrepo_c``. - - ``createrepo_c`` is the current incarnation of the tool that - generates remote repository metadata. It is written in C as compared - to ``createrepo``, which is written in Python. ``createrepo_c`` is - faster and is maintained. - -- Architecture-independent RPM packages are "noarch" instead of "all". - - This change was made because too many places in DNF/RPM4 stack - already make that assumption. Only the filenames and the architecture - tag has changed. Nothing else has changed in OE-core system, - particularly in the :ref:`allarch.bbclass ` - class. - -- Signing of remote package feeds using ``PACKAGE_FEED_SIGN`` is not - currently supported. This issue will be fully addressed in a future - Yocto Project release. See :yocto_bugs:`defect 11209 ` - for more information on a solution to package feed signing with RPM - in the Yocto Project 2.3 release. - -- OPKG now uses the libsolv backend for resolving package dependencies - by default. This is vastly superior to OPKG's internal ad-hoc solver - that was previously used. This change does have a small impact on - disk (around 500 KB) and memory footprint. - - .. note:: - - For further details on this change, see the - :yocto_git:`commit message `. - -.. _migration-2.3-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed: - -- ``linux-yocto 4.8``: Version 4.8 has been removed. Versions 4.1 - (LTSI), 4.4 (LTS), 4.9 (LTS/LTSI) and 4.10 are now present. - -- ``python-smartpm``: Functionally replaced by ``dnf``. - -- ``createrepo``: Replaced by the ``createrepo-c`` recipe. - -- ``rpmresolve``: No longer needed with the move to RPM 4 as RPM - itself is used instead. - -- ``gstreamer``: Removed the GStreamer Git version recipes as they - have been stale. ``1.10.``\ x recipes are still present. - -- ``alsa-conf-base``: Merged into ``alsa-conf`` since ``libasound`` - depended on both. Essentially, no way existed to install only one of - these. - -- ``tremor``: Moved to ``meta-multimedia``. Fixed-integer Vorbis - decoding is not needed by current hardware. Thus, GStreamer's ivorbis - plugin has been disabled by default eliminating the need for the - ``tremor`` recipe in :term:`OpenEmbedded-Core (OE-Core)`. - -- ``gummiboot``: Replaced by ``systemd-boot``. - -.. _migration-2.3-wic-changes: - -Wic Changes ------------ - -The following changes have been made to Wic: - -.. note:: - - For more information on Wic, see the - ":ref:`dev-manual/common-tasks:creating partitioned images using wic`" - section in the Yocto Project Development Tasks Manual. - -- *Default Output Directory Changed:* Wic's default output directory is - now the current directory by default instead of the unusual - ``/var/tmp/wic``. - - The "-o" and "--outdir" options remain unchanged and are used to - specify your preferred output directory if you do not want to use the - default directory. - -- *fsimage Plug-in Removed:* The Wic fsimage plugin has been removed as - it duplicates functionality of the rawcopy plugin. - -.. _migration-2.3-qa-changes: - -QA Changes ----------- - -The following QA checks have changed: - -- ``unsafe-references-in-binaries``: The - ``unsafe-references-in-binaries`` QA check, which was disabled by - default, has now been removed. This check was intended to detect - binaries in ``/bin`` that link to libraries in ``/usr/lib`` and have - the case where the user has ``/usr`` on a separate filesystem to - ``/``. - - The removed QA check was buggy. Additionally, ``/usr`` residing on a - separate partition from ``/`` is now a rare configuration. - Consequently, ``unsafe-references-in-binaries`` was removed. - -- ``file-rdeps``: The ``file-rdeps`` QA check is now an error by - default instead of a warning. Because it is an error instead of a - warning, you need to address missing runtime dependencies. - - For additional information, see the - :ref:`insane ` class and the - ":ref:`ref-manual/qa-checks:errors and warnings`" section. - -.. _migration-2.3-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following miscellaneous changes have occurred: - -- In this release, a number of recipes have been changed to ignore the - ``largefile`` :term:`DISTRO_FEATURES` item, - enabling large file support unconditionally. This feature has always - been enabled by default. Disabling the feature has not been widely - tested. - - .. note:: - - Future releases of the Yocto Project will remove entirely the - ability to disable the - largefile - feature, which would make it unconditionally enabled everywhere. - -- If the :term:`DISTRO_VERSION` value contains - the value of the :term:`DATE` variable, which is the - default between Poky releases, the ``DATE`` value is explicitly - excluded from ``/etc/issue`` and ``/etc/issue.net``, which is - displayed at the login prompt, in order to avoid conflicts with - Multilib enabled. Regardless, the ``DATE`` value is inaccurate if the - ``base-files`` recipe is restored from shared state (sstate) rather - than rebuilt. - - If you need the build date recorded in ``/etc/issue*`` or anywhere - else in your image, a better method is to define a post-processing - function to do it and have the function called from - :term:`ROOTFS_POSTPROCESS_COMMAND`. - Doing so ensures the value is always up-to-date with the created - image. - -- Dropbear's ``init`` script now disables DSA host keys by default. - This change is in line with the systemd service file, which supports - RSA keys only, and with recent versions of OpenSSH, which deprecates - DSA host keys. - -- The :ref:`buildhistory ` class now - correctly uses tabs as separators between all columns in - ``installed-package-sizes.txt`` in order to aid import into other - tools. - -- The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig" - ``DISTRO_FEATURES`` feature. Distributions that previously set:: - - USE_LDCONFIG = "0" - - should now instead use the following:: - - DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig" - -- The default value of - :term:`COPYLEFT_LICENSE_INCLUDE` now - includes all versions of AGPL licenses in addition to GPL and LGPL. - - .. note:: - - The default list is not intended to be guaranteed as a complete - safe list. You should seek legal advice based on what you are - distributing if you are unsure. - -- Kernel module packages are now suffixed with the kernel version in - order to allow module packages from multiple kernel versions to - co-exist on a target system. If you wish to return to the previous - naming scheme that does not include the version suffix, use the - following:: - - KERNEL_MODULE_PACKAGE_SUFFIX = "" - -- Removal of ``libtool`` ``*.la`` files is now enabled by default. The - ``*.la`` files are not actually needed on Linux and relocating them - is an unnecessary burden. - - If you need to preserve these ``.la`` files (e.g. in a custom - distribution), you must change - :term:`INHERIT_DISTRO` such that - "remove-libtool" is not included in the value. - -- Extensible SDKs built for GCC 5+ now refuse to install on a - distribution where the host GCC version is 4.8 or 4.9. This change - resulted from the fact that the installation is known to fail due to - the way the ``uninative`` shared state (sstate) package is built. See - the :ref:`uninative ` class for additional - information. - -- All native and nativesdk recipes now use a separate - ``DISTRO_FEATURES`` value instead of sharing the value used by - recipes for the target, in order to avoid unnecessary rebuilds. - - The ``DISTRO_FEATURES`` for ``native`` recipes is - :term:`DISTRO_FEATURES_NATIVE` added to - an intersection of ``DISTRO_FEATURES`` and - :term:`DISTRO_FEATURES_FILTER_NATIVE`. - - For nativesdk recipes, the corresponding variables are - :term:`DISTRO_FEATURES_NATIVESDK` - and - :term:`DISTRO_FEATURES_FILTER_NATIVESDK`. - -- The ``FILESDIR`` variable, which was previously deprecated and rarely - used, has now been removed. You should change any recipes that set - ``FILESDIR`` to set :term:`FILESPATH` instead. - -- The ``MULTIMACH_HOST_SYS`` variable has been removed as it is no - longer needed with recipe-specific sysroots. - - diff --git a/poky/documentation/ref-manual/migration-2.4.rst b/poky/documentation/ref-manual/migration-2.4.rst deleted file mode 100644 index 2ba17e0ed..000000000 --- a/poky/documentation/ref-manual/migration-2.4.rst +++ /dev/null @@ -1,327 +0,0 @@ -Moving to the Yocto Project 2.4 Release (rocko) -=============================================== - -This section provides migration information for moving to the Yocto -Project 2.4 Release (codename "rocko") from the prior release. - -.. _migration-2.4-memory-resident-mode: - -Memory Resident Mode --------------------- - -A persistent mode is now available in BitBake's default operation, -replacing its previous "memory resident mode" (i.e. -``oe-init-build-env-memres``). Now you only need to set -:term:`BB_SERVER_TIMEOUT` to a timeout (in -seconds) and BitBake's server stays resident for that amount of time -between invocations. The ``oe-init-build-env-memres`` script has been -removed since a separate environment setup script is no longer needed. - -.. _migration-2.4-packaging-changes: - -Packaging Changes ------------------ - -This section provides information about packaging changes that have -occurred: - -- ``python3`` Changes: - - - The main "python3" package now brings in all of the standard - Python 3 distribution rather than a subset. This behavior matches - what is expected based on traditional Linux distributions. If you - wish to install a subset of Python 3, specify ``python-core`` plus - one or more of the individual packages that are still produced. - - - ``python3``: The ``bz2.py``, ``lzma.py``, and - ``_compression.py`` scripts have been moved from the - ``python3-misc`` package to the ``python3-compression`` package. - -- ``binutils``: The ``libbfd`` library is now packaged in a separate - "libbfd" package. This packaging saves space when certain tools (e.g. - ``perf``) are installed. In such cases, the tools only need - ``libbfd`` rather than all the packages in ``binutils``. - -- ``util-linux`` Changes: - - - The ``su`` program is now packaged in a separate "util-linux-su" - package, which is only built when "pam" is listed in the - :term:`DISTRO_FEATURES` variable. - ``util-linux`` should not be installed unless it is needed because - ``su`` is normally provided through the shadow file format. The - main ``util-linux`` package has runtime dependencies (i.e. - :term:`RDEPENDS`) on the ``util-linux-su`` package - when "pam" is in ``DISTRO_FEATURES``. - - - The ``switch_root`` program is now packaged in a separate - "util-linux-switch-root" package for small initramfs images that - do not need the whole ``util-linux`` package or the busybox - binary, which are both much larger than ``switch_root``. The main - ``util-linux`` package has a recommended runtime dependency (i.e. - :term:`RRECOMMENDS`) on the - ``util-linux-switch-root`` package. - - - The ``ionice`` program is now packaged in a separate - "util-linux-ionice" package. The main ``util-linux`` package has a - recommended runtime dependency (i.e. ``RRECOMMENDS``) on the - ``util-linux-ionice`` package. - -- ``initscripts``: The ``sushell`` program is now packaged in a - separate "initscripts-sushell" package. This packaging change allows - systems to pull ``sushell`` in when ``selinux`` is enabled. The - change also eliminates needing to pull in the entire ``initscripts`` - package. The main ``initscripts`` package has a runtime dependency - (i.e. ``RDEPENDS``) on the ``sushell`` package when "selinux" is in - ``DISTRO_FEATURES``. - -- ``glib-2.0``: The ``glib-2.0`` package now has a recommended - runtime dependency (i.e. ``RRECOMMENDS``) on the ``shared-mime-info`` - package, since large portions of GIO are not useful without the MIME - database. You can remove the dependency by using the - :term:`BAD_RECOMMENDATIONS` variable if - ``shared-mime-info`` is too large and is not required. - -- *Go Standard Runtime:* The Go standard runtime has been split out - from the main ``go`` recipe into a separate ``go-runtime`` recipe. - -.. _migration-2.4-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed: - -- ``acpitests``: This recipe is not maintained. - -- ``autogen-native``: No longer required by Grub, oe-core, or - meta-oe. - -- ``bdwgc``: Nothing in OpenEmbedded-Core requires this recipe. It - has moved to meta-oe. - -- ``byacc``: This recipe was only needed by rpm 5.x and has moved to - meta-oe. - -- ``gcc (5.4)``: The 5.4 series dropped the recipe in favor of 6.3 / - 7.2. - -- ``gnome-common``: Deprecated upstream and no longer needed. - -- ``go-bootstrap-native``: Go 1.9 does its own bootstrapping so this - recipe has been removed. - -- ``guile``: This recipe was only needed by ``autogen-native`` and - ``remake``. The recipe is no longer needed by either of these - programs. - -- ``libclass-isa-perl``: This recipe was previously needed for LSB 4, - no longer needed. - -- ``libdumpvalue-perl``: This recipe was previously needed for LSB 4, - no longer needed. - -- ``libenv-perl``: This recipe was previously needed for LSB 4, no - longer needed. - -- ``libfile-checktree-perl``: This recipe was previously needed for - LSB 4, no longer needed. - -- ``libi18n-collate-perl``: This recipe was previously needed for LSB - 4, no longer needed. - -- ``libiconv``: This recipe was only needed for ``uclibc``, which was - removed in the previous release. ``glibc`` and ``musl`` have their - own implementations. ``meta-mingw`` still needs ``libiconv``, so it - has been moved to ``meta-mingw``. - -- ``libpng12``: This recipe was previously needed for LSB. The - current ``libpng`` is 1.6.x. - -- ``libpod-plainer-perl``: This recipe was previously needed for LSB - 4, no longer needed. - -- ``linux-yocto (4.1)``: This recipe was removed in favor of 4.4, - 4.9, 4.10 and 4.12. - -- ``mailx``: This recipe was previously only needed for LSB - compatibility, and upstream is defunct. - -- ``mesa (git version only)``: The git version recipe was stale with - respect to the release version. - -- ``ofono (git version only)``: The git version recipe was stale with - respect to the release version. - -- ``portmap``: This recipe is obsolete and is superseded by - ``rpcbind``. - -- ``python3-pygpgme``: This recipe is old and unmaintained. It was - previously required by ``dnf``, which has switched to official - ``gpgme`` Python bindings. - -- ``python-async``: This recipe has been removed in favor of the - Python 3 version. - -- ``python-gitdb``: This recipe has been removed in favor of the - Python 3 version. - -- ``python-git``: This recipe was removed in favor of the Python 3 - version. - -- ``python-mako``: This recipe was removed in favor of the Python 3 - version. - -- ``python-pexpect``: This recipe was removed in favor of the Python - 3 version. - -- ``python-ptyprocess``: This recipe was removed in favor of Python - the 3 version. - -- ``python-pycurl``: Nothing is using this recipe in - OpenEmbedded-Core (i.e. ``meta-oe``). - -- ``python-six``: This recipe was removed in favor of the Python 3 - version. - -- ``python-smmap``: This recipe was removed in favor of the Python 3 - version. - -- ``remake``: Using ``remake`` as the provider of ``virtual/make`` is - broken. Consequently, this recipe is not needed in OpenEmbedded-Core. - -.. _migration-2.4-kernel-device-tree-move: - -Kernel Device Tree Move ------------------------ - -Kernel Device Tree support is now easier to enable in a kernel recipe. -The Device Tree code has moved to a -:ref:`kernel-devicetree ` class. -Functionality is automatically enabled for any recipe that inherits the -:ref:`kernel ` class and sets the -:term:`KERNEL_DEVICETREE` variable. The -previous mechanism for doing this, -``meta/recipes-kernel/linux/linux-dtb.inc``, is still available to avoid -breakage, but triggers a deprecation warning. Future releases of the -Yocto Project will remove ``meta/recipes-kernel/linux/linux-dtb.inc``. -It is advisable to remove any ``require`` statements that request -``meta/recipes-kernel/linux/linux-dtb.inc`` from any custom kernel -recipes you might have. This will avoid breakage in post 2.4 releases. - -.. _migration-2.4-package-qa-changes: - -Package QA Changes ------------------- - -The following package QA changes took place: - -- The "unsafe-references-in-scripts" QA check has been removed. - -- If you refer to ``${COREBASE}/LICENSE`` within - :term:`LIC_FILES_CHKSUM` you receive a - warning because this file is a description of the license for - OE-Core. Use ``${COMMON_LICENSE_DIR}/MIT`` if your recipe is - MIT-licensed and you cannot use the preferred method of referring to - a file within the source tree. - -.. _migration-2.4-readme-changes: - -``README`` File Changes ------------------------ - -The following are changes to ``README`` files: - -- The main Poky ``README`` file has been moved to the ``meta-poky`` - layer and has been renamed ``README.poky``. A symlink has been - created so that references to the old location work. - -- The ``README.hardware`` file has been moved to ``meta-yocto-bsp``. A - symlink has been created so that references to the old location work. - -- A ``README.qemu`` file has been created with coverage of the - ``qemu*`` machines. - -.. _migration-2.4-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following are additional changes: - -- The ``ROOTFS_PKGMANAGE_BOOTSTRAP`` variable and any references to it - have been removed. You should remove this variable from any custom - recipes. - -- The ``meta-yocto`` directory has been removed. - - .. note:: - - In the Yocto Project 2.1 release - meta-yocto - was renamed to - meta-poky - and the - meta-yocto - subdirectory remained to avoid breaking existing configurations. - -- The ``maintainers.inc`` file, which tracks maintainers by listing a - primary person responsible for each recipe in OE-Core, has been moved - from ``meta-poky`` to OE-Core (i.e. from - ``meta-poky/conf/distro/include`` to ``meta/conf/distro/include``). - -- The :ref:`buildhistory ` class now makes - a single commit per build rather than one commit per subdirectory in - the repository. This behavior assumes the commits are enabled with - :term:`BUILDHISTORY_COMMIT` = "1", which - is typical. Previously, the ``buildhistory`` class made one commit - per subdirectory in the repository in order to make it easier to see - the changes for a particular subdirectory. To view a particular - change, specify that subdirectory as the last parameter on the - ``git show`` or ``git diff`` commands. - -- The ``x86-base.inc`` file, which is included by all x86-based machine - configurations, now sets :term:`IMAGE_FSTYPES` - using ``?=`` to "live" rather than appending with ``+=``. This change - makes the default easier to override. - -- BitBake fires multiple "BuildStarted" events when multiconfig is - enabled (one per configuration). For more information, see the - ":ref:`Events `" section in the BitBake User - Manual. - -- By default, the ``security_flags.inc`` file sets a - :term:`GCCPIE` variable with an option to enable - Position Independent Executables (PIE) within ``gcc``. Enabling PIE - in the GNU C Compiler (GCC), makes Return Oriented Programming (ROP) - attacks much more difficult to execute. - -- OE-Core now provides a ``bitbake-layers`` plugin that implements a - "create-layer" subcommand. The implementation of this subcommand has - resulted in the ``yocto-layer`` script being deprecated and will - likely be removed in the next Yocto Project release. - -- The ``vmdk``, ``vdi``, and ``qcow2`` image file types are now used in - conjunction with the "wic" image type through ``CONVERSION_CMD``. - Consequently, the equivalent image types are now ``wic.vmdk``, - ``wic.vdi``, and ``wic.qcow2``, respectively. - -- ``do_image_[depends]`` has replaced ``IMAGE_DEPENDS_``. - If you have your own classes that implement custom image types, then - you need to update them. - -- OpenSSL 1.1 has been introduced. However, the default is still 1.0.x - through the :term:`PREFERRED_VERSION` - variable. This preference is set is due to the remaining - compatibility issues with other software. The - :term:`PROVIDES` variable in the openssl 1.0 recipe - now includes "openssl10" as a marker that can be used in - :term:`DEPENDS` within recipes that build software - that still depend on OpenSSL 1.0. - -- To ensure consistent behavior, BitBake's "-r" and "-R" options (i.e. - prefile and postfile), which are used to read or post-read additional - configuration files from the command line, now only affect the - current BitBake command. Before these BitBake changes, these options - would "stick" for future executions. - - diff --git a/poky/documentation/ref-manual/migration-2.5.rst b/poky/documentation/ref-manual/migration-2.5.rst deleted file mode 100644 index 86a0da9c4..000000000 --- a/poky/documentation/ref-manual/migration-2.5.rst +++ /dev/null @@ -1,308 +0,0 @@ -Moving to the Yocto Project 2.5 Release (sumo) -============================================== - -This section provides migration information for moving to the Yocto -Project 2.5 Release (codename "sumo") from the prior release. - -.. _migration-2.5-packaging-changes: - -Packaging Changes ------------------ - -This section provides information about packaging changes that have -occurred: - -- ``bind-libs``: The libraries packaged by the bind recipe are in a - separate ``bind-libs`` package. - -- ``libfm-gtk``: The ``libfm`` GTK+ bindings are split into a - separate ``libfm-gtk`` package. - -- ``flex-libfl``: The flex recipe splits out libfl into a separate - ``flex-libfl`` package to avoid too many dependencies being pulled in - where only the library is needed. - -- ``grub-efi``: The ``grub-efi`` configuration is split into a - separate ``grub-bootconf`` recipe. However, the dependency - relationship from ``grub-efi`` is through a virtual/grub-bootconf - provider making it possible to have your own recipe provide the - dependency. Alternatively, you can use a BitBake append file to bring - the configuration back into the ``grub-efi`` recipe. - -- *armv7a Legacy Package Feed Support:* Legacy support is removed for - transitioning from ``armv7a`` to ``armv7a-vfp-neon`` in package - feeds, which was previously enabled by setting - ``PKGARCHCOMPAT_ARMV7A``. This transition occurred in 2011 and active - package feeds should by now be updated to the new naming. - -.. _migration-2.5-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed: - -- ``gcc``: The version 6.4 recipes are replaced by 7.x. - -- ``gst-player``: Renamed to ``gst-examples`` as per upstream. - -- ``hostap-utils``: This software package is obsolete. - -- ``latencytop``: This recipe is no longer maintained upstream. The - last release was in 2009. - -- ``libpfm4``: The only file that requires this recipe is - ``oprofile``, which has been removed. - -- ``linux-yocto``: The version 4.4, 4.9, and 4.10 recipes have been - removed. Versions 4.12, 4.14, and 4.15 remain. - -- ``man``: This recipe has been replaced by modern ``man-db`` - -- ``mkelfimage``: This tool has been removed in the upstream coreboot - project, and is no longer needed with the removal of the ELF image - type. - -- ``nativesdk-postinst-intercept``: This recipe is not maintained. - -- ``neon``: This software package is no longer maintained upstream - and is no longer needed by anything in OpenEmbedded-Core. - -- ``oprofile``: The functionality of this recipe is replaced by - ``perf`` and keeping compatibility on an ongoing basis with ``musl`` - is difficult. - -- ``pax``: This software package is obsolete. - -- ``stat``: This software package is not maintained upstream. - ``coreutils`` provides a modern stat binary. - -- ``zisofs-tools-native``: This recipe is no longer needed because - the compressed ISO image feature has been removed. - -.. _migration-2.5-scripts-and-tools-changes: - -Scripts and Tools Changes -------------------------- - -The following are changes to scripts and tools: - -- ``yocto-bsp``, ``yocto-kernel``, and ``yocto-layer``: The - ``yocto-bsp``, ``yocto-kernel``, and ``yocto-layer`` scripts - previously shipped with poky but not in OpenEmbedded-Core have been - removed. These scripts are not maintained and are outdated. In many - cases, they are also limited in scope. The - ``bitbake-layers create-layer`` command is a direct replacement for - ``yocto-layer``. See the documentation to create a BSP or kernel - recipe in the ":ref:`bsp-guide/bsp:bsp kernel recipe example`" section. - -- ``devtool finish``: ``devtool finish`` now exits with an error if - there are uncommitted changes or a rebase/am in progress in the - recipe's source repository. If this error occurs, there might be - uncommitted changes that will not be included in updates to the - patches applied by the recipe. A -f/--force option is provided for - situations that the uncommitted changes are inconsequential and you - want to proceed regardless. - -- ``scripts/oe-setup-rpmrepo`` script: The functionality of - ``scripts/oe-setup-rpmrepo`` is replaced by - ``bitbake package-index``. - -- ``scripts/test-dependencies.sh`` script: The script is largely made - obsolete by the recipe-specific sysroots functionality introduced in - the previous release. - -.. _migration-2.5-bitbake-changes: - -BitBake Changes ---------------- - -The following are BitBake changes: - -- The ``--runall`` option has changed. There are two different - behaviors people might want: - - - *Behavior A:* For a given target (or set of targets) look through - the task graph and run task X only if it is present and will be - built. - - - *Behavior B:* For a given target (or set of targets) look through - the task graph and run task X if any recipe in the taskgraph has - such a target, even if it is not in the original task graph. - - The ``--runall`` option now performs "Behavior B". Previously - ``--runall`` behaved like "Behavior A". A ``--runonly`` option has - been added to retain the ability to perform "Behavior A". - -- Several explicit "run this task for all recipes in the dependency - tree" tasks have been removed (e.g. ``fetchall``, ``checkuriall``, - and the ``*all`` tasks provided by the ``distrodata`` and - ``archiver`` classes). There is a BitBake option to complete this for - any arbitrary task. For example:: - - bitbake -c fetchall - - should now be replaced with:: - - bitbake --runall=fetch - -.. _migration-2.5-python-and-python3-changes: - -Python and Python 3 Changes ---------------------------- - -The following are auto-packaging changes to Python and Python 3: - -The script-managed ``python-*-manifest.inc`` files that were previously -used to generate Python and Python 3 packages have been replaced with a -JSON-based file that is easier to read and maintain. A new task is -available for maintainers of the Python recipes to update the JSON file -when upgrading to new Python versions. You can now edit the file -directly instead of having to edit a script and run it to update the -file. - -One particular change to note is that the Python recipes no longer have -build-time provides for their packages. This assumes ``python-foo`` is -one of the packages provided by the Python recipe. You can no longer run -``bitbake python-foo`` or have a -:term:`DEPENDS` on ``python-foo``, -but doing either of the following causes the package to work as -expected:: - - IMAGE_INSTALL_append = " python-foo" - -or :: - - RDEPENDS_${PN} = "python-foo" - -The earlier build-time provides behavior was a quirk of the -way the Python manifest file was created. For more information on this -change please see :yocto_git:`this commit -`. - -.. _migration-2.5-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following are additional changes: - -- The ``kernel`` class supports building packages for multiple kernels. - If your kernel recipe or ``.bbappend`` file mentions packaging at - all, you should replace references to the kernel in package names - with ``${KERNEL_PACKAGE_NAME}``. For example, if you disable - automatic installation of the kernel image using - ``RDEPENDS_kernel-base = ""`` you can avoid warnings using - ``RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""`` instead. - -- The ``buildhistory`` class commits changes to the repository by - default so you no longer need to set ``BUILDHISTORY_COMMIT = "1"``. - If you want to disable commits you need to set - ``BUILDHISTORY_COMMIT = "0"`` in your configuration. - -- The ``beaglebone`` reference machine has been renamed to - ``beaglebone-yocto``. The ``beaglebone-yocto`` BSP is a reference - implementation using only mainline components available in - OpenEmbedded-Core and ``meta-yocto-bsp``, whereas Texas Instruments - maintains a full-featured BSP in the ``meta-ti`` layer. This rename - avoids the previous name clash that existed between the two BSPs. - -- The ``update-alternatives`` class no longer works with SysV ``init`` - scripts because this usage has been problematic. Also, the - ``sysklogd`` recipe no longer uses ``update-alternatives`` because it - is incompatible with other implementations. - -- By default, the :ref:`cmake ` class uses - ``ninja`` instead of ``make`` for building. This improves build - performance. If a recipe is broken with ``ninja``, then the recipe - can set ``OECMAKE_GENERATOR = "Unix Makefiles"`` to change back to - ``make``. - -- The previously deprecated ``base_*`` functions have been removed in - favor of their replacements in ``meta/lib/oe`` and - ``bitbake/lib/bb``. These are typically used from recipes and - classes. Any references to the old functions must be updated. The - following table shows the removed functions and their replacements: - - +------------------------------+----------------------------------------------------------+ - | *Removed* | *Replacement* | - +==============================+==========================================================+ - | base_path_join() | oe.path.join() | - +------------------------------+----------------------------------------------------------+ - | base_path_relative() | oe.path.relative() | - +------------------------------+----------------------------------------------------------+ - | base_path_out() | oe.path.format_display() | - +------------------------------+----------------------------------------------------------+ - | base_read_file() | oe.utils.read_file() | - +------------------------------+----------------------------------------------------------+ - | base_ifelse() | oe.utils.ifelse() | - +------------------------------+----------------------------------------------------------+ - | base_conditional() | oe.utils.conditional() | - +------------------------------+----------------------------------------------------------+ - | base_less_or_equal() | oe.utils.less_or_equal() | - +------------------------------+----------------------------------------------------------+ - | base_version_less_or_equal() | oe.utils.version_less_or_equal() | - +------------------------------+----------------------------------------------------------+ - | base_contains() | bb.utils.contains() | - +------------------------------+----------------------------------------------------------+ - | base_both_contain() | oe.utils.both_contain() | - +------------------------------+----------------------------------------------------------+ - | base_prune_suffix() | oe.utils.prune_suffix() | - +------------------------------+----------------------------------------------------------+ - | oe_filter() | oe.utils.str_filter() | - +------------------------------+----------------------------------------------------------+ - | oe_filter_out() | oe.utils.str_filter_out() (or use the \_remove operator) | - +------------------------------+----------------------------------------------------------+ - -- Using ``exit 1`` to explicitly defer a postinstall script until first - boot is now deprecated since it is not an obvious mechanism and can - mask actual errors. If you want to explicitly defer a postinstall to - first boot on the target rather than at ``rootfs`` creation time, use - ``pkg_postinst_ontarget()`` or call - ``postinst_intercept delay_to_first_boot`` from ``pkg_postinst()``. - Any failure of a ``pkg_postinst()`` script (including ``exit 1``) - will trigger a warning during ``do_rootfs``. - - For more information, see the - ":ref:`dev-manual/common-tasks:post-installation scripts`" - section in the Yocto Project Development Tasks Manual. - -- The ``elf`` image type has been removed. This image type was removed - because the ``mkelfimage`` tool that was required to create it is no - longer provided by coreboot upstream and required updating every time - ``binutils`` updated. - -- Support for .iso image compression (previously enabled through - ``COMPRESSISO = "1"``) has been removed. The userspace tools - (``zisofs-tools``) are unmaintained and ``squashfs`` provides better - performance and compression. In order to build a live image with - squashfs+lz4 compression enabled you should now set - ``LIVE_ROOTFS_TYPE = "squashfs-lz4"`` and ensure that ``live`` is in - ``IMAGE_FSTYPES``. - -- Recipes with an unconditional dependency on ``libpam`` are only - buildable with ``pam`` in ``DISTRO_FEATURES``. If the dependency is - truly optional then it is recommended that the dependency be - conditional upon ``pam`` being in ``DISTRO_FEATURES``. - -- For EFI-based machines, the bootloader (``grub-efi`` by default) is - installed into the image at /boot. Wic can be used to split the - bootloader into separate boot and rootfs partitions if necessary. - -- Patches whose context does not match exactly (i.e. where patch - reports "fuzz" when applying) will generate a warning. For an example - of this see :yocto_git:`this commit - `. - -- Layers are expected to set ``LAYERSERIES_COMPAT_layername`` to match - the version(s) of OpenEmbedded-Core they are compatible with. This is - specified as codenames using spaces to separate multiple values (e.g. - "rocko sumo"). If a layer does not set - ``LAYERSERIES_COMPAT_layername``, a warning will is shown. If a layer - sets a value that does not include the current version ("sumo" for - the 2.5 release), then an error will be produced. - -- The ``TZ`` environment variable is set to "UTC" within the build - environment in order to fix reproducibility problems in some recipes. - - diff --git a/poky/documentation/ref-manual/migration-2.6.rst b/poky/documentation/ref-manual/migration-2.6.rst deleted file mode 100644 index d1c6c0c5f..000000000 --- a/poky/documentation/ref-manual/migration-2.6.rst +++ /dev/null @@ -1,452 +0,0 @@ -Moving to the Yocto Project 2.6 Release (thud) -============================================== - -This section provides migration information for moving to the Yocto -Project 2.6 Release (codename "thud") from the prior release. - -.. _migration-2.6-gcc-changes: - -GCC 8.2 is Now Used by Default ------------------------------- - -The GNU Compiler Collection version 8.2 is now used by default for -compilation. For more information on what has changed in the GCC 8.x -release, see https://gcc.gnu.org/gcc-8/changes.html. - -If you still need to compile with version 7.x, GCC 7.3 is also provided. -You can select this version by setting the and can be selected by -setting the :term:`GCCVERSION` variable to "7.%" in -your configuration. - -.. _migration-2.6-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed: - -- *beecrypt*: No longer needed since moving to RPM 4. -- *bigreqsproto*: Replaced by ``xorgproto``. -- *calibrateproto*: Removed in favor of ``xinput``. -- *compositeproto*: Replaced by ``xorgproto``. -- *damageproto*: Replaced by ``xorgproto``. -- *dmxproto*: Replaced by ``xorgproto``. -- *dri2proto*: Replaced by ``xorgproto``. -- *dri3proto*: Replaced by ``xorgproto``. -- *eee-acpi-scripts*: Became obsolete. -- *fixesproto*: Replaced by ``xorgproto``. -- *fontsproto*: Replaced by ``xorgproto``. -- *fstests*: Became obsolete. -- *gccmakedep*: No longer used. -- *glproto*: Replaced by ``xorgproto``. -- *gnome-desktop3*: No longer needed. This recipe has moved to ``meta-oe``. -- *icon-naming-utils*: No longer used since the Sato theme was removed in 2016. -- *inputproto*: Replaced by ``xorgproto``. -- *kbproto*: Replaced by ``xorgproto``. -- *libusb-compat*: Became obsolete. -- *libuser*: Became obsolete. -- *libnfsidmap*: No longer an external requirement since ``nfs-utils`` 2.2.1. ``libnfsidmap`` is now integrated. -- *libxcalibrate*: No longer needed with ``xinput`` -- *mktemp*: Became obsolete. The ``mktemp`` command is provided by both ``busybox`` and ``coreutils``. -- *ossp-uuid*: Is not being maintained and has mostly been replaced by ``uuid.h`` in ``util-linux``. -- *pax-utils*: No longer needed. Previous QA tests that did use this recipe are now done at build time. -- *pcmciautils*: Became obsolete. -- *pixz*: No longer needed. ``xz`` now supports multi-threaded compression. -- *presentproto*: Replaced by ``xorgproto``. -- *randrproto*: Replaced by ``xorgproto``. -- *recordproto*: Replaced by ``xorgproto``. -- *renderproto*: Replaced by ``xorgproto``. -- *resourceproto*: Replaced by ``xorgproto``. -- *scrnsaverproto*: Replaced by ``xorgproto``. -- *trace-cmd*: Became obsolete. ``perf`` replaced this recipe's functionally. -- *videoproto*: Replaced by ``xorgproto``. -- *wireless-tools*: Became obsolete. Superseded by ``iw``. -- *xcmiscproto*: Replaced by ``xorgproto``. -- *xextproto*: Replaced by ``xorgproto``. -- *xf86dgaproto*: Replaced by ``xorgproto``. -- *xf86driproto*: Replaced by ``xorgproto``. -- *xf86miscproto*: Replaced by ``xorgproto``. -- *xf86-video-omapfb*: Became obsolete. Use kernel modesetting driver instead. -- *xf86-video-omap*: Became obsolete. Use kernel modesetting driver instead. -- *xf86vidmodeproto*: Replaced by ``xorgproto``. -- *xineramaproto*: Replaced by ``xorgproto``. -- *xproto*: Replaced by ``xorgproto``. -- *yasm*: No longer needed since previous usages are now satisfied by ``nasm``. - -.. _migration-2.6-packaging-changes: - -Packaging Changes ------------------ - -The following packaging changes have been made: - -- *cmake*: ``cmake.m4`` and ``toolchain`` files have been moved to - the main package. - -- *iptables*: The ``iptables`` modules have been split into - separate packages. - -- *alsa-lib*: ``libasound`` is now in the main ``alsa-lib`` package - instead of ``libasound``. - -- *glibc*: ``libnss-db`` is now in its own package along with a - ``/var/db/makedbs.sh`` script to update databases. - -- *python and python3*: The main package has been removed from - the recipe. You must install specific packages or ``python-modules`` - / ``python3-modules`` for everything. - -- *systemtap*: Moved ``systemtap-exporter`` into its own package. - -.. _migration-2.6-xorg-protocol-dependencies: - -XOrg Protocol dependencies --------------------------- - -The ``*proto`` upstream repositories have been combined into one -"xorgproto" repository. Thus, the corresponding recipes have also been -combined into a single ``xorgproto`` recipe. Any recipes that depend -upon the older ``*proto`` recipes need to be changed to depend on the -newer ``xorgproto`` recipe instead. - -For names of recipes removed because of this repository change, see the -:ref:`ref-manual/migration-2.6:removed recipes` section. - -.. _migration-2.6-distutils-distutils3-fetching-dependencies: - -``distutils`` and ``distutils3`` Now Prevent Fetching Dependencies During the ``do_configure`` Task ---------------------------------------------------------------------------------------------------- - -Previously, it was possible for Python recipes that inherited the -``distutils`` and -:ref:`distutils3 ` classes to fetch code -during the :ref:`ref-tasks-configure` task to satisfy -dependencies mentioned in ``setup.py`` if those dependencies were not -provided in the sysroot (i.e. recipes providing the dependencies were -missing from :term:`DEPENDS`). - -.. note:: - - This change affects classes beyond just the two mentioned (i.e. - ``distutils`` and ``distutils3``). Any recipe that inherits ``distutils*`` - classes are affected. For example, the ``setuptools`` and ``setuptools3`` - recipes are affected since they inherit the ``distutils*`` classes. - -Fetching these types of dependencies that are not provided in the -sysroot negatively affects the ability to reproduce builds. This type of -fetching is now explicitly disabled. Consequently, any missing -dependencies in Python recipes that use these classes now result in an -error during the ``do_configure`` task. - -.. _migration-2.6-linux-yocto-configuration-audit-issues-now-correctly-reported: - -``linux-yocto`` Configuration Audit Issues Now Correctly Reported ------------------------------------------------------------------ - -Due to a bug, the kernel configuration audit functionality was not -writing out any resulting warnings during the build. This issue is now -corrected. You might notice these warnings now if you have a custom -kernel configuration with a ``linux-yocto`` style kernel recipe. - -.. _migration-2.6-image-kernel-artifact-naming-changes: - -Image/Kernel Artifact Naming Changes ------------------------------------- - -The following changes have been made: - -- Name variables (e.g. :term:`IMAGE_NAME`) use a new - ``IMAGE_VERSION_SUFFIX`` variable instead of - :term:`DATETIME`. Using ``IMAGE_VERSION_SUFFIX`` - allows easier and more direct changes. - - The ``IMAGE_VERSION_SUFFIX`` variable is set in the ``bitbake.conf`` - configuration file as follows:: - - IMAGE_VERSION_SUFFIX = "-${DATETIME}" - -- Several variables have changed names for consistency:: - - Old Variable Name New Variable Name - ======================================================== - KERNEL_IMAGE_BASE_NAME KERNEL_IMAGE_NAME - KERNEL_IMAGE_SYMLINK_NAME KERNEL_IMAGE_LINK_NAME - MODULE_TARBALL_BASE_NAME MODULE_TARBALL_NAME - MODULE_TARBALL_SYMLINK_NAME MODULE_TARBALL_LINK_NAME - INITRAMFS_BASE_NAME INITRAMFS_NAME - -- The ``MODULE_IMAGE_BASE_NAME`` variable has been removed. The module - tarball name is now controlled directly with the - :term:`MODULE_TARBALL_NAME` variable. - -- The :term:`KERNEL_DTB_NAME` and - :term:`KERNEL_DTB_LINK_NAME` variables - have been introduced to control kernel Device Tree Binary (DTB) - artifact names instead of mangling ``KERNEL_IMAGE_*`` variables. - -- The :term:`KERNEL_FIT_NAME` and - :term:`KERNEL_FIT_LINK_NAME` variables - have been introduced to specify the name of flattened image tree - (FIT) kernel images similar to other deployed artifacts. - -- The :term:`MODULE_TARBALL_NAME` and - :term:`MODULE_TARBALL_LINK_NAME` - variable values no longer include the "module-" prefix or ".tgz" - suffix. These parts are now hardcoded so that the values are - consistent with other artifact naming variables. - -- Added the :term:`INITRAMFS_LINK_NAME` - variable so that the symlink can be controlled similarly to other - artifact types. - -- :term:`INITRAMFS_NAME` now uses - "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" instead - of "${PV}-${PR}-${MACHINE}-${DATETIME}", which makes it consistent - with other variables. - -.. _migration-2.6-serial-console-deprecated: - -``SERIAL_CONSOLE`` Deprecated ------------------------------ - -The :term:`SERIAL_CONSOLE` variable has been -functionally replaced by the -:term:`SERIAL_CONSOLES` variable for some time. -With the Yocto Project 2.6 release, ``SERIAL_CONSOLE`` has been -officially deprecated. - -``SERIAL_CONSOLE`` will continue to work as before for the 2.6 release. -However, for the sake of future compatibility, it is recommended that -you replace all instances of ``SERIAL_CONSOLE`` with -``SERIAL_CONSOLES``. - -.. note:: - - The only difference in usage is that ``SERIAL_CONSOLES`` - expects entries to be separated using semicolons as compared to - ``SERIAL_CONSOLE``, which expects spaces. - -.. _migration-2.6-poky-sets-unknown-configure-option-to-qa-error: - -Configure Script Reports Unknown Options as Errors --------------------------------------------------- - -If the configure script reports an unknown option, this now triggers a -QA error instead of a warning. Any recipes that previously got away with -specifying such unknown options now need to be fixed. - -.. _migration-2.6-override-changes: - -Override Changes ----------------- - -The following changes have occurred: - -- The ``virtclass-native`` and ``virtclass-nativesdk`` Overrides Have - Been Removed: The ``virtclass-native`` and ``virtclass-nativesdk`` - overrides have been deprecated since 2012 in favor of - ``class-native`` and ``class-nativesdk``, respectively. Both - ``virtclass-native`` and ``virtclass-nativesdk`` are now dropped. - - .. note:: - - The ``virtclass-multilib-`` overrides for multilib are still valid. - -- The ``forcevariable`` Override Now Has a Higher Priority Than - ``libc`` Overrides: The ``forcevariable`` override is documented to - be the highest priority override. However, due to a long-standing - quirk of how :term:`OVERRIDES` is set, the ``libc`` - overrides (e.g. ``libc-glibc``, ``libc-musl``, and so forth) - erroneously had a higher priority. This issue is now corrected. - - It is likely this change will not cause any problems. However, it is - possible with some unusual configurations that you might see a change - in behavior if you were relying on the previous behavior. Be sure to - check how you use ``forcevariable`` and ``libc-*`` overrides in your - custom layers and configuration files to ensure they make sense. - -- The ``build-${BUILD_OS}`` Override Has Been Removed: The - ``build-${BUILD_OS}``, which is typically ``build-linux``, override - has been removed because building on a host operating system other - than a recent version of Linux is neither supported nor recommended. - Dropping the override avoids giving the impression that other host - operating systems might be supported. - -- The "_remove" operator now preserves whitespace. Consequently, when - specifying list items to remove, be aware that leading and trailing - whitespace resulting from the removal is retained. - - See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:removal (override style syntax)`" - section in the BitBake User Manual for a detailed example. - -.. _migration-2.6-systemd-configuration-now-split-out-to-system-conf: - -``systemd`` Configuration is Now Split Into ``systemd-conf`` ------------------------------------------------------------- - -The configuration for the ``systemd`` recipe has been moved into a -``system-conf`` recipe. Moving this configuration to a separate recipe -avoids the ``systemd`` recipe from becoming machine-specific for cases -where machine-specific configurations need to be applied (e.g. for -``qemu*`` machines). - -Currently, the new recipe packages the following files:: - - ${sysconfdir}/machine-id - ${sysconfdir}/systemd/coredump.conf - ${sysconfdir}/systemd/journald.conf - ${sysconfdir}/systemd/logind.conf - ${sysconfdir}/systemd/system.conf - ${sysconfdir}/systemd/user.conf - -If you previously used bbappend files to append the ``systemd`` recipe to -change any of the listed files, you must do so for the ``systemd-conf`` -recipe instead. - -.. _migration-2.6-automatic-testing-changes: - -Automatic Testing Changes -------------------------- - -This section provides information about automatic testing changes: - -- ``TEST_IMAGE`` Variable Removed: Prior to this release, you set the - ``TEST_IMAGE`` variable to "1" to enable automatic testing for - successfully built images. The ``TEST_IMAGE`` variable no longer - exists and has been replaced by the - :term:`TESTIMAGE_AUTO` variable. - -- Inheriting the ``testimage`` and ``testsdk`` Classes: Best - practices now dictate that you use the - :term:`IMAGE_CLASSES` variable rather than the - :term:`INHERIT` variable when you inherit the - :ref:`testimage ` and - :ref:`testsdk ` classes used for automatic - testing. - -.. _migration-2.6-openssl-changes: - -OpenSSL Changes ---------------- - -`OpenSSL `__ has been upgraded from 1.0 to -1.1. By default, this upgrade could cause problems for recipes that have -both versions in their dependency chains. The problem is that both -versions cannot be installed together at build time. - -.. note:: - - It is possible to have both versions of the library at runtime. - -.. _migration-2.6-bitbake-changes: - -BitBake Changes ---------------- - -The server logfile ``bitbake-cookerdaemon.log`` is now always placed in -the :term:`Build Directory` instead of the current -directory. - -.. _migration-2.6-security-changes: - -Security Changes ----------------- - -The Poky distribution now uses security compiler flags by default. -Inclusion of these flags could cause new failures due to stricter -checking for various potential security issues in code. - -.. _migration-2.6-post-installation-changes: - -Post Installation Changes -------------------------- - -You must explicitly mark post installs to defer to the target. If you -want to explicitly defer a postinstall to first boot on the target -rather than at rootfs creation time, use ``pkg_postinst_ontarget()`` or -call ``postinst_intercept delay_to_first_boot`` from ``pkg_postinst()``. -Any failure of a ``pkg_postinst()`` script (including exit 1) triggers -an error during the :ref:`ref-tasks-rootfs` task. - -For more information on post-installation behavior, see the -":ref:`dev-manual/common-tasks:post-installation scripts`" -section in the Yocto Project Development Tasks Manual. - -.. _migration-2.6-python-3-profile-guided-optimizations: - -Python 3 Profile-Guided Optimization ------------------------------------- - -The ``python3`` recipe now enables profile-guided optimization. Using -this optimization requires a little extra build time in exchange for -improved performance on the target at runtime. Additionally, the -optimization is only enabled if the current -:term:`MACHINE` has support for user-mode emulation in -QEMU (i.e. "qemu-usermode" is in -:term:`MACHINE_FEATURES`, which it is by -default). - -If you wish to disable Python profile-guided optimization regardless of -the value of ``MACHINE_FEATURES``, then ensure that -:term:`PACKAGECONFIG` for the ``python3`` recipe -does not contain "pgo". You could accomplish the latter using the -following at the configuration level:: - - PACKAGECONFIG_remove_pn-python3 = "pgo" - -Alternatively, you can set ``PACKAGECONFIG`` using an append file -for the ``python3`` recipe. - -.. _migration-2.6-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following miscellaneous changes occurred: - -- Default to using the Thumb-2 instruction set for armv7a and above. If - you have any custom recipes that build software that needs to be - built with the ARM instruction set, change the recipe to set the - instruction set as follows:: - - ARM_INSTRUCTION_SET = "arm" - -- ``run-postinsts`` no longer uses ``/etc/*-postinsts`` for - ``dpkg/opkg`` in favor of built-in postinst support. RPM behavior - remains unchanged. - -- The ``NOISO`` and ``NOHDD`` variables are no longer used. You now - control building ``*.iso`` and ``*.hddimg`` image types directly by - using the :term:`IMAGE_FSTYPES` variable. - -- The ``scripts/contrib/mkefidisk.sh`` has been removed in favor of - Wic. - -- ``kernel-modules`` has been removed from - :term:`RRECOMMENDS` for ``qemumips`` and - ``qemumips64`` machines. Removal also impacts the ``x86-base.inc`` - file. - - .. note:: - - ``genericx86`` and ``genericx86-64`` retain ``kernel-modules`` as part of - the ``RRECOMMENDS`` variable setting. - -- The ``LGPLv2_WHITELIST_GPL-3.0`` variable has been removed. If you - are setting this variable in your configuration, set or append it to - the ``WHITELIST_GPL-3.0`` variable instead. - -- ``${ASNEEDED}`` is now included in the - :term:`TARGET_LDFLAGS` variable directly. The - remaining definitions from ``meta/conf/distro/include/as-needed.inc`` - have been moved to corresponding recipes. - -- Support for DSA host keys has been dropped from the OpenSSH recipes. - If you are still using DSA keys, you must switch over to a more - secure algorithm as recommended by OpenSSH upstream. - -- The ``dhcp`` recipe now uses the ``dhcpd6.conf`` configuration file - in ``dhcpd6.service`` for IPv6 DHCP rather than re-using - ``dhcpd.conf``, which is now reserved for IPv4. - - diff --git a/poky/documentation/ref-manual/migration-2.7.rst b/poky/documentation/ref-manual/migration-2.7.rst deleted file mode 100644 index 1be4d5d5b..000000000 --- a/poky/documentation/ref-manual/migration-2.7.rst +++ /dev/null @@ -1,180 +0,0 @@ -Moving to the Yocto Project 2.7 Release (warrior) -================================================= - -This section provides migration information for moving to the Yocto -Project 2.7 Release (codename "warrior") from the prior release. - -.. _migration-2.7-bitbake-changes: - -BitBake Changes ---------------- - -The following changes have been made to BitBake: - -- BitBake now checks anonymous Python functions and pure Python - functions (e.g. ``def funcname:``) in the metadata for tab - indentation. If found, BitBake produces a warning. - -- Bitbake now checks - :term:`BBFILE_COLLECTIONS` for duplicate - entries and triggers an error if any are found. - -.. _migration-2.7-eclipse-support-dropped: - -Eclipse Support Removed ------------------------ - -Support for the Eclipse IDE has been removed. Support continues for -those releases prior to 2.7 that did include support. The 2.7 release -does not include the Eclipse Yocto plugin. - -.. _migration-2.7-qemu-native-splits-system-and-user-mode-parts: - -``qemu-native`` Splits the System and User-Mode Parts ------------------------------------------------------ - -The system and user-mode parts of ``qemu-native`` are now split. -``qemu-native`` provides the user-mode components and -``qemu-system-native`` provides the system components. If you have -recipes that depend on QEMU's system emulation functionality at build -time, they should now depend upon ``qemu-system-native`` instead of -``qemu-native``. - -.. _migration-2.7-upstream-tracking.inc-removed: - -The ``upstream-tracking.inc`` File Has Been Removed ---------------------------------------------------- - -The previously deprecated ``upstream-tracking.inc`` file is now removed. -Any ``UPSTREAM_TRACKING*`` variables are now set in the corresponding -recipes instead. - -Remove any references you have to the ``upstream-tracking.inc`` file in -your configuration. - -.. _migration-2.7-distro-features-libc-removed: - -The ``DISTRO_FEATURES_LIBC`` Variable Has Been Removed ------------------------------------------------------- - -The ``DISTRO_FEATURES_LIBC`` variable is no longer used. The ability to -configure glibc using kconfig has been removed for quite some time -making the ``libc-*`` features set no longer effective. - -Remove any references you have to ``DISTRO_FEATURES_LIBC`` in your own -layers. - -.. _migration-2.7-license-values: - -License Value Corrections -------------------------- - -The following corrections have been made to the -:term:`LICENSE` values set by recipes: - -- *socat*: Corrected ``LICENSE`` to be "GPLv2" rather than "GPLv2+". -- *libgfortran*: Set license to "GPL-3.0-with-GCC-exception". -- *elfutils*: Removed "Elfutils-Exception" and set to "GPLv2" for shared libraries - -.. _migration-2.7-packaging-changes: - -Packaging Changes ------------------ - -This section provides information about packaging changes. - -- ``bind``: The ``nsupdate`` binary has been moved to the - ``bind-utils`` package. - -- Debug split: The default debug split has been changed to create - separate source packages (i.e. package_name\ ``-dbg`` and - package_name\ ``-src``). If you are currently using ``dbg-pkgs`` in - :term:`IMAGE_FEATURES` to bring in debug - symbols and you still need the sources, you must now also add - ``src-pkgs`` to ``IMAGE_FEATURES``. Source packages remain in the - target portion of the SDK by default, unless you have set your own - value for :term:`SDKIMAGE_FEATURES` that - does not include ``src-pkgs``. - -- Mount all using ``util-linux``: ``/etc/default/mountall`` has moved - into the -mount sub-package. - -- Splitting binaries using ``util-linux``: ``util-linux`` now splits - each binary into its own package for fine-grained control. The main - ``util-linux`` package pulls in the individual binary packages using - the :term:`RRECOMMENDS` and - :term:`RDEPENDS` variables. As a result, existing - images should not see any changes assuming - :term:`NO_RECOMMENDATIONS` is not set. - -- ``netbase/base-files``: ``/etc/hosts`` has moved from ``netbase`` to - ``base-files``. - -- ``tzdata``: The main package has been converted to an empty meta - package that pulls in all ``tzdata`` packages by default. - -- ``lrzsz``: This package has been removed from - ``packagegroup-self-hosted`` and - ``packagegroup-core-tools-testapps``. The X/Y/ZModem support is less - likely to be needed on modern systems. If you are relying on these - packagegroups to include the ``lrzsz`` package in your image, you now - need to explicitly add the package. - -.. _migration-2.7-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed: - -- *gcc*: Drop version 7.3 recipes. Version 8.3 now remains. -- *linux-yocto*: Drop versions 4.14 and 4.18 recipes. Versions 4.19 and 5.0 remain. -- *go*: Drop version 1.9 recipes. Versions 1.11 and 1.12 remain. -- *xvideo-tests*: Became obsolete. -- *libart-lgpl*: Became obsolete. -- *gtk-icon-utils-native*: These tools are now provided by gtk+3-native -- *gcc-cross-initial*: No longer needed. gcc-cross/gcc-crosssdk is now used instead. -- *gcc-crosssdk-initial*: No longer needed. gcc-cross/gcc-crosssdk is now used instead. -- *glibc-initial*: Removed because the benefits of having it for site_config are currently outweighed by the cost of building the recipe. - -.. _migration-2.7-removed-classes: - -Removed Classes ---------------- - -The following classes have been removed: - -- *distutils-tools*: This class was never used. -- *bugzilla.bbclass*: Became obsolete. -- *distrodata*: This functionally has been replaced by a more modern tinfoil-based implementation. - -.. _migration-2.7-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following miscellaneous changes occurred: - -- The ``distro`` subdirectory of the Poky repository has been removed - from the top-level ``scripts`` directory. - -- Perl now builds for the target using - `perl-cross `_ for better - maintainability and improved build performance. This change should - not present any problems unless you have heavily customized your Perl - recipe. - -- ``arm-tunes``: Removed the "-march" option if mcpu is already added. - -- ``update-alternatives``: Convert file renames to - :term:`PACKAGE_PREPROCESS_FUNCS` - -- ``base/pixbufcache``: Obsolete ``sstatecompletions`` code has been - removed. - -- :ref:`native ` class: - :term:`RDEPENDS` handling has been enabled. - -- ``inetutils``: This recipe has rsh disabled. - - diff --git a/poky/documentation/ref-manual/migration-3.0.rst b/poky/documentation/ref-manual/migration-3.0.rst deleted file mode 100644 index f3d20e2ed..000000000 --- a/poky/documentation/ref-manual/migration-3.0.rst +++ /dev/null @@ -1,320 +0,0 @@ -Moving to the Yocto Project 3.0 Release (zeus) -============================================== - -This section provides migration information for moving to the Yocto -Project 3.0 Release (codename "zeus") from the prior release. - -.. _migration-3.0-init-system-selection: - -Init System Selection ---------------------- - -Changing the init system manager previously required setting a number of -different variables. You can now change the manager by setting the -``INIT_MANAGER`` variable and the corresponding include files (i.e. -``conf/distro/include/init-manager-*.conf``). Include files are provided -for four values: "none", "sysvinit", "systemd", and "mdev-busybox". The -default value, "none", for ``INIT_MANAGER`` should allow your current -settings to continue working. However, it is advisable to explicitly set -``INIT_MANAGER``. - -.. _migration-3.0-lsb-support-removed: - -LSB Support Removed -------------------- - -Linux Standard Base (LSB) as a standard is not current, and is not well -suited for embedded applications. Support can be continued in a separate -layer if needed. However, presently LSB support has been removed from -the core. - -As a result of this change, the ``poky-lsb`` derivative distribution -configuration that was also used for testing alternative configurations -has been replaced with a ``poky-altcfg`` distribution that has LSB parts -removed. - -.. _migration-3.0-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed. - -- ``core-image-lsb-dev``: Part of removed LSB support. - -- ``core-image-lsb``: Part of removed LSB support. - -- ``core-image-lsb-sdk``: Part of removed LSB support. - -- ``cve-check-tool``: Functionally replaced by the ``cve-update-db`` - recipe and ``cve-check`` class. - -- ``eglinfo``: No longer maintained. ``eglinfo`` from ``mesa-demos`` is - an adequate and maintained alternative. - -- ``gcc-8.3``: Version 8.3 removed. Replaced by 9.2. - -- ``gnome-themes-standard``: Only needed by gtk+ 2.x, which has been - removed. - -- ``gtk+``: GTK+ 2 is obsolete and has been replaced by gtk+3. - -- ``irda-utils``: Has become obsolete. IrDA support has been removed - from the Linux kernel in version 4.17 and later. - -- ``libnewt-python``: ``libnewt`` Python support merged into main - ``libnewt`` recipe. - -- ``libsdl``: Replaced by newer ``libsdl2``. - -- ``libx11-diet``: Became obsolete. - -- ``libxx86dga``: Removed obsolete client library. - -- ``libxx86misc``: Removed. Library is redundant. - -- ``linux-yocto``: Version 5.0 removed, which is now redundant (5.2 / - 4.19 present). - -- ``lsbinitscripts``: Part of removed LSB support. - -- ``lsb``: Part of removed LSB support. - -- ``lsbtest``: Part of removed LSB support. - -- ``openssl10``: Replaced by newer ``openssl`` version 1.1. - -- ``packagegroup-core-lsb``: Part of removed LSB support. - -- ``python-nose``: Removed the Python 2.x version of the recipe. - -- ``python-numpy``: Removed the Python 2.x version of the recipe. - -- ``python-scons``: Removed the Python 2.x version of the recipe. - -- ``source-highlight``: No longer needed. - -- ``stress``: Replaced by ``stress-ng``. - -- ``vulkan``: Split into ``vulkan-loader``, ``vulkan-headers``, and - ``vulkan-tools``. - -- ``weston-conf``: Functionality moved to ``weston-init``. - -.. _migration-3.0-packaging-changes: - -Packaging Changes ------------------ - -The following packaging changes have occurred. - -- The `Epiphany `__ browser - has been dropped from ``packagegroup-self-hosted`` as it has not been - needed inside ``build-appliance-image`` for quite some time and was - causing resource problems. - -- ``libcap-ng`` Python support has been moved to a separate - ``libcap-ng-python`` recipe to streamline the build process when the - Python bindings are not needed. - -- ``libdrm`` now packages the file ``amdgpu.ids`` into a separate - ``libdrm-amdgpu`` package. - -- ``python3``: The ``runpy`` module is now in the ``python3-core`` - package as it is required to support the common "python3 -m" command - usage. - -- ``distcc`` now provides separate ``distcc-client`` and - ``distcc-server`` packages as typically one or the other are needed, - rather than both. - -- ``python*-setuptools`` recipes now separately package the - ``pkg_resources`` module in a ``python-pkg-resources`` / - ``python3-pkg-resources`` package as the module is useful independent - of the rest of the setuptools package. The main ``python-setuptools`` - / ``python3-setuptools`` package depends on this new package so you - should only need to update dependencies unless you want to take - advantage of the increased granularity. - -.. _migration-3.0-cve-checking: - -CVE Checking ------------- - -``cve-check-tool`` has been functionally replaced by a new -``cve-update-db`` recipe and functionality built into the ``cve-check`` -class. The result uses NVD JSON data feeds rather than the deprecated -XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring, -and makes other improvements. - -Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced -by ``CVE_CHECK_WHITELIST``. - -.. _migration-3.0-bitbake-changes: - -Bitbake Changes ---------------- - -The following BitBake changes have occurred. - -- ``addtask`` statements now properly validate dependent tasks. - Previously, an invalid task was silently ignored. With this change, - the invalid task generates a warning. - -- Other invalid ``addtask`` and ``deltask`` usages now trigger these - warnings: "multiple target tasks arguments with addtask / deltask", - and "multiple before/after clauses". - -- The "multiconfig" prefix is now shortened to "mc". "multiconfig" will - continue to work, however it may be removed in a future release. - -- The ``bitbake -g`` command no longer generates a - ``recipe-depends.dot`` file as the contents (i.e. a reprocessed - version of ``task-depends.dot``) were confusing. - -- The ``bb.build.FuncFailed`` exception, previously raised by - ``bb.build.exec_func()`` when certain other exceptions have occurred, - has been removed. The real underlying exceptions will be raised - instead. If you have calls to ``bb.build.exec_func()`` in custom - classes or ``tinfoil-using`` scripts, any references to - ``bb.build.FuncFailed`` should be cleaned up. - -- Additionally, the ``bb.build.exec_func()`` no longer accepts the - "pythonexception" parameter. The function now always raises - exceptions. Remove this argument in any calls to - ``bb.build.exec_func()`` in custom classes or scripts. - -- The - :term:`bitbake:BB_SETSCENE_VERIFY_FUNCTION2` - is no longer used. In the unlikely event that you have any references - to it, they should be removed. - -- The ``RunQueueExecuteScenequeue`` and ``RunQueueExecuteTasks`` events - have been removed since setscene tasks are now executed as part of - the normal runqueue. Any event handling code in custom classes or - scripts that handles these two events need to be updated. - -- The arguments passed to functions used with - :term:`bitbake:BB_HASHCHECK_FUNCTION` - have changed. If you are using your own custom hash check function, - see :yocto_git:`/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725` - for details. - -- Task specifications in ``BB_TASKDEPDATA`` and class implementations - used in signature generator classes now use ":" everywhere - rather than the "." delimiter that was being used in some places. - This change makes it consistent with all areas in the code. Custom - signature generator classes and code that reads ``BB_TASKDEPDATA`` - need to be updated to use ':' as a separator rather than '.'. - -.. _migration-3.0-sanity-checks: - -Sanity Checks -------------- - -The following sanity check changes occurred. - -- :term:`SRC_URI` is now checked for usage of two - problematic items: - - - "${PN}" prefix/suffix use - Warnings always appear if ${PN} is - used. You must fix the issue regardless of whether multiconfig or - anything else that would cause prefixing/suffixing to happen. - - - Github archive tarballs - these are not guaranteed to be stable. - Consequently, it is likely that the tarballs will be refreshed and - thus the SRC_URI checksums will fail to apply. It is recommended - that you fetch either an official release tarball or a specific - revision from the actual Git repository instead. - - Either one of these items now trigger a warning by default. If you - wish to disable this check, remove ``src-uri-bad`` from - :term:`WARN_QA`. - -- The ``file-rdeps`` runtime dependency check no longer expands - :term:`RDEPENDS` recursively as there is no mechanism - to ensure they can be fully computed, and thus races sometimes result - in errors either showing up or not. Thus, you might now see errors - for missing runtime dependencies that were previously satisfied - recursively. Here is an example: package A contains a shell script - starting with ``#!/bin/bash`` but has no dependency on bash. However, - package A depends on package B, which does depend on bash. You need - to add the missing dependency or dependencies to resolve the warning. - -- Setting ``DEPENDS_${PN}`` anywhere (i.e. typically in a recipe) now - triggers an error. The error is triggered because - :term:`DEPENDS` is not a package-specific variable - unlike RDEPENDS. You should set ``DEPENDS`` instead. - -- systemd currently does not work well with the musl C library because - only upstream officially supports linking the library with glibc. - Thus, a warning is shown when building systemd in conjunction with - musl. - -.. _migration-3.0-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -The following miscellaneous changes have occurred. - -- The ``gnome`` class has been removed because it now does very little. - You should update recipes that previously inherited this class to do - the following: inherit gnomebase gtk-icon-cache gconf mime - -- The ``meta/recipes-kernel/linux/linux-dtb.inc`` file has been - removed. This file was previously deprecated in favor of setting - :term:`KERNEL_DEVICETREE` in any kernel - recipe and only produced a warning. Remove any ``include`` or - ``require`` statements pointing to this file. - -- :term:`TARGET_CFLAGS`, - :term:`TARGET_CPPFLAGS`, - :term:`TARGET_CXXFLAGS`, and - :term:`TARGET_LDFLAGS` are no longer exported - to the external environment. This change did not require any changes - to core recipes, which is a good indicator that no changes will be - required. However, if for some reason the software being built by one - of your recipes is expecting these variables to be set, then building - the recipe will fail. In such cases, you must either export the - variable or variables in the recipe or change the scripts so that - exporting is not necessary. - -- You must change the host distro identifier used in - :term:`NATIVELSBSTRING` to use all lowercase - characters even if it does not contain a version number. This change - is necessary only if you are not using ``uninative`` and - :term:`SANITY_TESTED_DISTROS`. - -- In the ``base-files`` recipe, writing the hostname into - ``/etc/hosts`` and ``/etc/hostname`` is now done within the main - :ref:`ref-tasks-install` function rather than in the - ``do_install_basefilesissue`` function. The reason for the change is - because ``do_install_basefilesissue`` is more easily overridden - without having to duplicate the hostname functionality. If you have - done the latter (e.g. in a ``base-files`` bbappend), then you should - remove it from your customized ``do_install_basefilesissue`` - function. - -- The ``wic --expand`` command now uses commas to separate "key:value" - pairs rather than hyphens. - - .. note:: - - The wic command-line help is not updated. - - You must update any scripts or commands where you use - ``wic --expand`` with multiple "key:value" pairs. - -- UEFI image variable settings have been moved from various places to a - central ``conf/image-uefi.conf``. This change should not influence - any existing configuration as the ``meta/conf/image-uefi.conf`` in - the core metadata sets defaults that can be overridden in the same - manner as before. - -- ``conf/distro/include/world-broken.inc`` has been removed. For cases - where certain recipes need to be disabled when using the musl C - library, these recipes now have ``COMPATIBLE_HOST_libc-musl`` set - with a comment that explains why. - - diff --git a/poky/documentation/ref-manual/migration-3.1.rst b/poky/documentation/ref-manual/migration-3.1.rst deleted file mode 100644 index 7822285a8..000000000 --- a/poky/documentation/ref-manual/migration-3.1.rst +++ /dev/null @@ -1,275 +0,0 @@ -Moving to the Yocto Project 3.1 Release (dunfell) -================================================= - -This section provides migration information for moving to the Yocto -Project 3.1 Release (codename "dunfell") from the prior release. - -.. _migration-3.1-minimum-system-requirements: - -Minimum system requirements ---------------------------- - -The following versions / requirements of build host components have been -updated: - -- gcc 5.0 - -- python 3.5 - -- tar 1.28 - -- ``rpcgen`` is now required on the host (part of the ``libc-dev-bin`` - package on Ubuntu, Debian and related distributions, and the - ``glibc`` package on RPM-based distributions). - -Additionally, the ``makeinfo`` and ``pod2man`` tools are *no longer* -required on the host. - -.. _migration-3.1-mpc8315e-rdb-removed: - -mpc8315e-rdb machine removed ----------------------------- - -The MPC8315E-RDB machine is old/obsolete and unobtainable, thus given -the maintenance burden the ``mpc8315e-rdb`` machine configuration that -supported it has been removed in this release. The removal does leave a -gap in official PowerPC reference hardware support; this may change in -future if a suitable machine with accompanying support resources is -found. - -.. _migration-3.1-python-2-removed: - -Python 2 removed ----------------- - -Due to the expiration of upstream support in January 2020, support for -Python 2 has now been removed; it is recommended that you use Python 3 -instead. If absolutely needed there is a meta-python2 community layer -containing Python 2, related classes and various Python 2-based modules, -however it should not be considered as supported. - -.. _migration-3.1-reproducible-builds: - -Reproducible builds now enabled by default ------------------------------------------- - -In order to avoid unnecessary differences in output files (aiding binary -reproducibility), the Poky distribution configuration -(``DISTRO = "poky"``) now inherits the ``reproducible_build`` class by -default. - -.. _migration-3.1-ptest-feature-impact: - -Impact of ptest feature is now more significant ------------------------------------------------ - -The Poky distribution configuration (``DISTRO = "poky"``) enables ptests -by default to enable runtime testing of various components. In this -release, a dependency needed to be added that has resulted in a -significant increase in the number of components that will be built just -when building a simple image such as core-image-minimal. If you do not -need runtime tests enabled for core components, then it is recommended -that you remove "ptest" from -:term:`DISTRO_FEATURES` to save a significant -amount of build time e.g. by adding the following in your configuration:: - - DISTRO_FEATURES_remove = "ptest" - -.. _migration-3.1-removed-recipes: - -Removed recipes ---------------- - -The following recipes have been removed: - -- ``chkconfig``: obsolete - -- ``console-tools``: obsolete - -- ``enchant``: replaced by ``enchant2`` - -- ``foomatic-filters``: obsolete - -- ``libidn``: no longer needed, moved to meta-oe - -- ``libmodulemd``: replaced by ``libmodulemd-v1`` - -- ``linux-yocto``: drop 4.19, 5.2 version recipes (5.4 now provided) - -- ``nspr``: no longer needed, moved to meta-oe - -- ``nss``: no longer needed, moved to meta-oe - -- ``python``: Python 2 removed (Python 3 preferred) - -- ``python-setuptools``: Python 2 version removed (python3-setuptools - preferred) - -- ``sysprof``: no longer needed, moved to meta-oe - -- ``texi2html``: obsolete - -- ``u-boot-fw-utils``: functionally replaced by ``libubootenv`` - -.. _migration-3.1-features-check: - -features_check class replaces distro_features_check ---------------------------------------------------- - -The ``distro_features_check`` class has had its functionality expanded, -now supporting ``ANY_OF_MACHINE_FEATURES``, -``REQUIRED_MACHINE_FEATURES``, ``CONFLICT_MACHINE_FEATURES``, -``ANY_OF_COMBINED_FEATURES``, ``REQUIRED_COMBINED_FEATURES``, -``CONFLICT_COMBINED_FEATURES``. As a result the class has now been -renamed to ``features_check``; the ``distro_features_check`` class still -exists but generates a warning and redirects to the new class. In -preparation for a future removal of the old class it is recommended that -you update recipes currently inheriting ``distro_features_check`` to -inherit ``features_check`` instead. - -.. _migration-3.1-removed-classes: - -Removed classes ---------------- - -The following classes have been removed: - -- ``distutils-base``: moved to meta-python2 - -- ``distutils``: moved to meta-python2 - -- ``libc-common``: merged into the glibc recipe as nothing else used - it. - -- ``python-dir``: moved to meta-python2 - -- ``pythonnative``: moved to meta-python2 - -- ``setuptools``: moved to meta-python2 - -- ``tinderclient``: dropped as it was obsolete. - -.. _migration-3.1-src-uri-checksums: - -SRC_URI checksum behaviour --------------------------- - -Previously, recipes by tradition included both SHA256 and MD5 checksums -for remotely fetched files in :term:`SRC_URI`, even -though only one is actually mandated. However, the MD5 checksum does not -add much given its inherent weakness; thus when a checksum fails only -the SHA256 sum will now be printed. The md5sum will still be verified if -it is specified. - -.. _migration-3.1-npm: - -npm fetcher changes -------------------- - -The npm fetcher has been completely reworked in this release. The npm -fetcher now only fetches the package source itself and no longer the -dependencies; there is now also an npmsw fetcher which explicitly -fetches the shrinkwrap file and the dependencies. This removes the -slightly awkward ``NPM_LOCKDOWN`` and ``NPM_SHRINKWRAP`` variables which -pointed to local files; the lockdown file is no longer needed at all. -Additionally, the package name in ``npm://`` entries in -:term:`SRC_URI` is now specified using a ``package`` -parameter instead of the earlier ``name`` which overlapped with the -generic ``name`` parameter. All recipes using the npm fetcher will need -to be changed as a result. - -An example of the new scheme:: - - SRC_URI = "npm://registry.npmjs.org;package=array-flatten;version=1.1.1 \ - npmsw://${THISDIR}/npm-shrinkwrap.json" - -Another example where the sources are fetched from git rather than an npm repository:: - - SRC_URI = "git://github.com/foo/bar.git;protocol=https \ - npmsw://${THISDIR}/npm-shrinkwrap.json" - -devtool and recipetool have also been updated to match with the npm -fetcher changes. Other than producing working and more complete recipes -for npm sources, there is also a minor change to the command line for -devtool: the ``--fetch-dev`` option has been renamed to ``--npm-dev`` as -it is npm-specific. - -.. _migration-3.1-packaging-changes: - -Packaging changes ------------------ - -- ``intltool`` has been removed from ``packagegroup-core-sdk`` as it is - rarely needed to build modern software - gettext can do most of the - things it used to be needed for. ``intltool`` has also been removed - from ``packagegroup-core-self-hosted`` as it is not needed to for - standard builds. - -- git: ``git-am``, ``git-difftool``, ``git-submodule``, and - ``git-request-pull`` are no longer perl-based, so are now installed - with the main ``git`` package instead of within ``git-perltools``. - -- The ``ldconfig`` binary built as part of glibc has now been moved to - its own ``ldconfig`` package (note no ``glibc-`` prefix). This - package is in the :term:`RRECOMMENDS` of the main - ``glibc`` package if ``ldconfig`` is present in - :term:`DISTRO_FEATURES`. - -- ``libevent`` now splits each shared library into its own package (as - Debian does). Since these are shared libraries and will be pulled in - through the normal shared library dependency handling, there should - be no impact to existing configurations other than less unnecessary - libraries being installed in some cases. - -- linux-firmware now has a new package for ``bcm4366c`` and includes - available NVRAM config files into the ``bcm43340``, ``bcm43362``, - ``bcm43430`` and ``bcm4356-pcie`` packages. - -- ``harfbuzz`` now splits the new ``libharfbuzz-subset.so`` library - into its own package to reduce the main package size in cases where - ``libharfbuzz-subset.so`` is not needed. - -.. _migration-3.1-package-qa-warnings: - -Additional warnings -------------------- - -Warnings will now be shown at ``do_package_qa`` time in the following -circumstances: - -- A recipe installs ``.desktop`` files containing ``MimeType`` keys but - does not inherit the new ``mime-xdg`` class - -- A recipe installs ``.xml`` files into ``${datadir}/mime/packages`` - but does not inherit the ``mime`` class - -.. _migration-3.1-x86-live-wic: - -``wic`` image type now used instead of ``live`` by default for x86 ------------------------------------------------------------------- - -``conf/machine/include/x86-base.inc`` (inherited by most x86 machine -configurations) now specifies ``wic`` instead of ``live`` by default in -:term:`IMAGE_FSTYPES`. The ``live`` image type will -likely be removed in a future release so it is recommended that you use -``wic`` instead. - -.. _migration-3.1-misc: - -Miscellaneous changes ---------------------- - -- The undocumented ``SRC_DISTRIBUTE_LICENSES`` variable has now been - removed in favour of a new ``AVAILABLE_LICENSES`` variable which is - dynamically set based upon license files found in - ``${COMMON_LICENSE_DIR}`` and ``${LICENSE_PATH}``. - -- The tune definition for big-endian microblaze machines is now - ``microblaze`` instead of ``microblazeeb``. - -- ``newlib`` no longer has built-in syscalls. ``libgloss`` should then - provide the syscalls, ``crt0.o`` and other functions that are no - longer part of ``newlib`` itself. If you are using - ``TCLIBC = "newlib"`` this now means that you must link applications - with both ``newlib`` and ``libgloss``, whereas before ``newlib`` - would run in many configurations by itself. diff --git a/poky/documentation/ref-manual/migration-3.2.rst b/poky/documentation/ref-manual/migration-3.2.rst deleted file mode 100644 index 956a56f62..000000000 --- a/poky/documentation/ref-manual/migration-3.2.rst +++ /dev/null @@ -1,313 +0,0 @@ -Moving to the Yocto Project 3.2 Release (gatesgarth) -==================================================== - -This section provides migration information for moving to the Yocto -Project 3.2 Release (codename "gatesgarth") from the prior release. - -.. _migration-3.2-minimum-system-requirements: - -Minimum system requirements ---------------------------- - -``gcc`` version 6.0 is now required at minimum on the build host. For older -host distributions where this is not available, you can use the -``buildtools-extended-tarball`` (easily installable using -``scripts/install-buildtools``). - - -.. _migration-3.2-removed-recipes: - -Removed recipes ---------------- - -The following recipes have been removed: - -- ``bjam-native``: replaced by ``boost-build-native`` -- ``avahi-ui``: folded into the main ``avahi`` recipe - the GTK UI can be disabled using :term:`PACKAGECONFIG` for ``avahi``. -- ``build-compare``: no longer needed with the removal of the ``packagefeed-stability`` class -- ``dhcp``: obsolete, functionally replaced by ``dhcpcd`` and ``kea`` -- ``libmodulemd-v1``: replaced by ``libmodulemd`` -- ``packagegroup-core-device-devel``: obsolete - - -.. _migration-3.2-removed-classes: - -Removed classes ---------------- - -The following classes (.bbclass files) have been removed: - -- ``spdx``: obsolete - the Yocto Project is a strong supporter of SPDX, but this class was old code using a dated approach and had the potential to be misleading. The ``meta-sdpxscanner`` layer is a much more modern and active approach to handling this and is recommended as a replacement. - -- ``packagefeed-stability``: this class had become obsolete with the advent of hash equivalence and reproducible builds. - - -pseudo path filtering and mismatch behaviour --------------------------------------------- - -pseudo now operates on a filtered subset of files. This is a significant change -to the way pseudo operates within OpenEmbedded - by default, pseudo monitors and -logs (adds to its database) any file created or modified whilst in a ``fakeroot`` -environment. However, there are large numbers of files that we simply don't care -about the permissions of whilst in that ``fakeroot`` context, for example ${:term:`S`}, ${:term:`B`}, ${:term:`T`}, -${:term:`SSTATE_DIR`}, the central sstate control directories, and others. - -As of this release, new functionality in pseudo is enabled to ignore these -directory trees (controlled using a new :term:`PSEUDO_IGNORE_PATHS` variable) -resulting in a cleaner database with less chance of "stray" mismatches if files -are modified outside pseudo context. It also should reduce some overhead from -pseudo as the interprocess round trip to the server is avoided. - -There is a possible complication where some existing recipe may break, for -example, a recipe was found to be writing to ``${B}/install`` for -``make install`` in ``do_install`` and since ``${B}`` is listed as not to be tracked, -there were errors trying to ``chown root`` for files in this location. Another -example was the ``tcl`` recipe where the source directory ``S`` is set to a -subdirectory of the source tree but files were written out to the directory -structure above that subdirectory. For these types of cases in your own recipes, -extend ``PSEUDO_IGNORE_PATHS`` to cover additional paths that pseudo should not -be monitoring. - -In addition, pseudo's behaviour on mismatches has now been changed - rather -than doing what turns out to be a rather dangerous "fixup" if it sees a file -with a different path but the same inode as another file it has previously seen, -pseudo will throw an ``abort()`` and direct you to a :yocto_wiki:`wiki page ` -that explains how to deal with this. - - -.. _migration-3.2-multilib-mlprefix: - -``MLPREFIX`` now required for multilib when runtime dependencies conditionally added ------------------------------------------------------------------------------------- - -In order to solve some previously intractable problems with runtime -dependencies and multilib, a change was made that now requires the :term:`MLPREFIX` -value to be explicitly prepended to package names being added as -dependencies (e.g. in :term:`RDEPENDS` and :term:`RRECOMMENDS` values) -where the dependency is conditionally added. - -If you have anonymous python or in-line python conditionally adding -dependencies in your custom recipes, and you intend for those recipes to -work with multilib, then you will need to ensure that ``${MLPREFIX}`` -is prefixed on the package names in the dependencies, for example -(from the ``glibc`` recipe):: - - RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}" - -This also applies when conditionally adding packages to :term:`PACKAGES` where -those packages have dependencies, for example (from the ``alsa-plugins`` recipe):: - - PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}" - ... - RDEPENDS_${PN}-pulseaudio-conf += "\ - ${MLPREFIX}libasound-module-conf-pulse \ - ${MLPREFIX}libasound-module-ctl-pulse \ - ${MLPREFIX}libasound-module-pcm-pulse \ - " - - -.. _migration-3.2-packagegroup-core-device-devel: - -packagegroup-core-device-devel no longer included in images built for qemu* machines ------------------------------------------------------------------------------------- - -``packagegroup-core-device-devel`` was previously added automatically to -images built for ``qemu*`` machines, however the purpose of the group and what -it should contain is no longer clear, and in general, adding userspace -development items to images is best done at the image/class level; thus this -packagegroup was removed. - -This packagegroup previously pulled in the following: - -- ``distcc-config`` -- ``nfs-export-root`` -- ``bash`` -- ``binutils-symlinks`` - -If you still need any of these in your image built for a ``qemu*`` machine -then you will add them explicitly to :term:`IMAGE_INSTALL` or another -appropriate place in the dependency chain for your image (if you have not -already done so). - - -.. _migration-3.2-dhcp: - -DHCP server/client replaced ---------------------------- - -The ``dhcp`` software package has become unmaintained and thus has been -functionally replaced by ``dhcpcd`` (client) and ``kea`` (server). You will -need to replace references to the recipe/package names as appropriate - most -commonly, at the package level ``dhcp-client`` should be replaced by -``dhcpcd`` and ``dhcp-server`` should be replaced by ``kea``. If you have any -custom configuration files for these they will need to be adapted - refer to -the upstream documentation for ``dhcpcd`` and ``kea`` for further details. - - -.. _migration-3.2-packaging-changes: - -Packaging changes ------------------ - -- ``python3``: the ``urllib`` python package has now moved into the core package, as it is used more commonly than just netclient (e.g. email, xml, mimetypes, pydoc). In addition, the ``pathlib`` module is now also part of the core package. - -- ``iptables``: ``iptables-apply`` and ``ip6tables-apply`` have been split out to their own package to avoid a bash dependency in the main ``iptables`` package - - -.. _migration-3.2-package-qa-checks: - -Package QA check changes ------------------------- - -Previously, the following package QA checks triggered warnings, however they can -be indicators of genuine underlying problems and are therefore now treated as -errors: - -- :ref:`already-stripped ` -- :ref:`compile-host-path ` -- :ref:`installed-vs-shipped ` -- :ref:`ldflags ` -- :ref:`pn-overrides ` -- :ref:`rpaths ` -- :ref:`staticdev ` -- :ref:`unknown-configure-option ` -- :ref:`useless-rpaths ` - -In addition, the following new checks were added and default to triggering an error: - -- :ref:`shebang-size `: Check for shebang (#!) lines longer than 128 characters, which can give an error at runtime depending on the operating system. - -- :ref:`unhandled-features-check `: Check if any of the variables supported by the :ref:`features_check ` class is set while not inheriting the class itself. - -- :ref:`missing-update-alternatives `: Check if the recipe sets the :term:`ALTERNATIVE` variable for any of its packages, and does not inherit the :ref:`update-alternatives ` class. - -- A trailing slash or duplicated slashes in the value of :term:`S` or :term:`B` will now trigger a warning so that they can be removed and path comparisons can be more reliable - remove any instances of these in your recipes if the warning is displayed. - - -.. _migration-3.2-src-uri-file-globbing: - -Globbing no longer supported in ``file://`` entries in ``SRC_URI`` ------------------------------------------------------------------- - -Globbing (``*`` and ``?`` wildcards) in ``file://`` URLs within :term:`SRC_URI` -did not properly support file checksums, thus changes to the source files -would not always change the do_fetch task checksum, and consequently would -not ensure that the changed files would be incorporated in subsequent builds. - -Unfortunately it is not practical to make globbing work generically here, so -the decision was taken to remove support for globs in ``file://`` URLs. -If you have any usage of these in your recipes, then you will now need to -either add each of the files that you expect to match explicitly, or -alternatively if you still need files to be pulled in dynamically, put the -files into a subdirectory and reference that instead. - - -.. _migration-3.2-deploydir-clean: - -deploy class now cleans ``DEPLOYDIR`` before ``do_deploy`` ----------------------------------------------------------- - -``do_deploy`` as implemented in the :ref:`deploy ` class now cleans up ${:term:`DEPLOYDIR`} before running, just as ``do_install`` cleans up ${:term:`D`} before running. This reduces the risk of ``DEPLOYDIR`` being accidentally contaminated by files from previous runs, possibly even with different config, in case of incremental builds. - -Most recipes and classes that inherit the ``deploy`` class or interact with ``do_deploy`` are unlikely to be affected by this unless they add ``prefuncs`` to ``do_deploy`` *which also* put files into ``${DEPLOYDIR}`` - these should be refactored to use ``do_deploy_prepend`` instead. - - -.. _migration-3.2-nativesdk-sdk-provides-dummy: - -Custom SDK / SDK-style recipes need to include ``nativesdk-sdk-provides-dummy`` -------------------------------------------------------------------------------- - -All ``nativesdk`` packages require ``/bin/sh`` due to their postinstall scriptlets, thus this package has to be dummy-provided within the SDK and ``nativesdk-sdk-provides-dummy`` now does this. If you have a custom SDK recipe (or your own SDK-style recipe similar to e.g. ``buildtools-tarball``), you will need to ensure ``nativesdk-sdk-provides-dummy`` or an equivalent is included in :term:`TOOLCHAIN_HOST_TASK`. - - -``ld.so.conf`` now moved back to main ``glibc`` package -------------------------------------------------------- - -There are cases where one doesn't want ``ldconfig`` on target (e.g. for -read-only root filesystems, it's rather pointless), yet one still -needs ``/etc/ld.so.conf`` to be present at image build time: - -When some recipe installs libraries to a non-standard location, and -therefore installs in a file in ``/etc/ld.so.conf.d/foo.conf``, we -need ``/etc/ld.so.conf`` containing:: - - include /etc/ld.so.conf.d/*.conf - -in order to get those other locations picked up. - -Thus ``/etc/ld.so.conf`` is now in the main ``glibc`` package so that -there's always an ``ld.so.conf`` present when the build-time ``ldconfig`` -runs towards the end of image construction. - -The ``ld.so.conf`` and ``ld.so.conf.d/*.conf`` files do not take up -significant space (at least not compared to the ~700kB ``ldconfig`` binary), and they -might be needed in case ``ldconfig`` is installable, so they are left -in place after the image is built. Technically it would be possible to -remove them if desired, though it would not be trivial if you still -wanted the build-time ldconfig to function (:term:`ROOTFS_POSTPROCESS_COMMAND` -will not work as ``ldconfig`` is run after the functions referred to -by that variable). - - -.. _migration-3.2-virgl: - -Host DRI drivers now used for GL support within ``runqemu`` ------------------------------------------------------------ - -``runqemu`` now uses the mesa-native libraries everywhere virgl is used -(i.e. when ``gl``, ``gl-es`` or ``egl-headless`` options are specified), -but instructs them to load DRI drivers from the host. Unfortunately this -may not work well with proprietary graphics drivers such as those from -Nvidia; if you are using such drivers then you may need to switch to an -alternative (such as Nouveau in the case of Nvidia hardware) or avoid -using the GL options. - - -.. _migration-3.2-initramfs-suffix: - -initramfs images now use a blank suffix ---------------------------------------- - -The reference initramfs images (``core-image-minimal-initramfs``, -``core-image-tiny-initramfs`` and ``core-image-testmaster-initramfs``) now -set an empty string for :term:`IMAGE_NAME_SUFFIX`, which otherwise defaults -to ``".rootfs"``. These images aren't root filesystems and thus the rootfs -label didn't make sense. If you are looking for the output files generated -by these image recipes directly then you will need to adapt to the new -naming without the ``.rootfs`` part. - - -.. _migration-3.2-image-artifact-names: - -Image artifact name variables now centralised in image-artifact-names class ---------------------------------------------------------------------------- - -The defaults for the following image artifact name variables have been moved -from bitbake.conf to a new ``image-artifact-names`` class: - -- :term:`IMAGE_BASENAME` -- :term:`IMAGE_LINK_NAME` -- :term:`IMAGE_NAME` -- :term:`IMAGE_NAME_SUFFIX` -- :term:`IMAGE_VERSION_SUFFIX` - -Image-related classes now inherit this class, and typically these variables -are only referenced within image recipes so those will be unaffected by this -change. However if you have references to these variables in either a recipe -that is not an image or a class that is enabled globally, then those will -now need to be changed to ``inherit image-artifact-names``. - - -.. _migration-3.2-misc: - -Miscellaneous changes ---------------------- - -- Support for the long-deprecated ``PACKAGE_GROUP`` variable has now been removed - replace any remaining instances with :term:`FEATURE_PACKAGES`. -- The ``FILESPATHPKG`` variable, having been previously deprecated, has now been removed. Replace any remaining references with appropriate use of :term:`FILESEXTRAPATHS`. -- Erroneous use of ``inherit +=`` (instead of ``INHERIT +=``) in a configuration file now triggers an error instead of silently being ignored. -- ptest support has been removed from the ``kbd`` recipe, as upstream has moved to autotest which is difficult to work with in a cross-compilation environment. -- ``oe.utils.is_machine_specific()`` and ``oe.utils.machine_paths()`` have been removed as their utility was questionable. In the unlikely event that you have references to these in your own code, then the code will need to be reworked. -- The ``i2ctransfer`` module is now disabled by default when building ``busybox`` in order to be consistent with disabling the other i2c tools there. If you do wish the i2ctransfer module to be built in BusyBox then add ``CONFIG_I2CTRANSFER=y`` to your custom BusyBox configuration. -- In the ``Upstream-Status`` header convention for patches, ``Accepted`` has been replaced with ``Backport`` as these almost always mean the same thing i.e. the patch is already upstream and may need to be removed in a future recipe upgrade. If you are adding these headers to your own patches then use ``Backport`` to indicate that the patch has been sent upstream. -- The ``tune-supersparc.inc`` tune file has been removed as it does not appear to be widely used and no longer works. diff --git a/poky/documentation/ref-manual/migration-3.3.rst b/poky/documentation/ref-manual/migration-3.3.rst deleted file mode 100644 index 4fb51a39d..000000000 --- a/poky/documentation/ref-manual/migration-3.3.rst +++ /dev/null @@ -1,168 +0,0 @@ -Moving to the Yocto Project 3.3 Release (hardknott) -=================================================== - -This section provides migration information for moving to the Yocto -Project 3.3 Release (codename "hardknott") from the prior release. - - -.. _migration-3.3-minimum-system-requirements: - -Minimum system requirements ---------------------------- - -You will now need at least Python 3.6 installed on your build host. Most recent -distributions provide this, but should you be building on a distribution that -does not have it, you can use the ``buildtools-tarball`` (easily installable -using ``scripts/install-buildtools``) - see -:ref:`ref-manual/system-requirements:required git, tar, python and gcc versions` -for details. - - -.. _migration-3.3-removed-recipes: - -Removed recipes ---------------- - -The following recipes have been removed: - -- ``go-dep``: obsolete with the advent of go modules -- ``gst-validate``: replaced by ``gst-devtools`` -- ``linux-yocto``: removed 5.8 version recipes (5.4 / 5.10 still provided) -- ``vulkan-demos``: replaced by ``vulkan-samples`` - - -.. _migration-3.3-common-license-only-versions: - -Single version common license file naming ------------------------------------------ - -Some license files in ``meta/files/common-licenses`` have been renamed to match -current SPDX naming conventions: - -- AGPL-3.0 -> AGPL-3.0-only -- GPL-1.0 -> GPL-1.0-only -- GPL-2.0 -> GPL-2.0-only -- GPL-3.0 -> GPL-3.0-only -- LGPL-2.0 -> LGPL-2.0-only -- LGPL-2.1 -> LGPL-2.1-only -- LGPL-3.0 -> LGPL-3.0-only - -Additionally, corresponding "-or-later" suffixed files have been added e.g. -``GPL-2.0-or-later``. - -It is not required that you change :term:`LICENSE` values as there are mappings -from the original names in place; however, in rare cases where you have a recipe -which sets :term:`LIC_FILES_CHKSUM` to point to file(s) in -``meta/files/common-licenses`` (which in any case is not recommended) you will -need to update those. - - -.. _migration-3.3-python3targetconfig: - -New ``python3targetconfig`` class ---------------------------------- - -A new :ref:`python3targetconfig ` class has been -created for situations where you would previously have inherited the -``python3native`` class but need access to target configuration data (such as -correct installation directories). Recipes where this situation applies should -be changed to inherit ``python3targetconfig`` instead of ``python3native``. This -also adds a dependency on target ``python3``, so it should only be used where -appropriate in order to avoid unnecessarily lengthening builds. - -Some example recipes where this change has been made: ``gpgme``, ``libcap-ng``, -``python3-pycairo``. - - -.. _migration-3.3-distutils-path: - -``setup.py`` path for python modules ------------------------------------- - -In a Python module, sometimes ``setup.py`` can be buried deep in the -source tree. Previously this was handled in recipes by setting :term:`S` to -point to the subdirectory within the source where ``setup.py`` is located. -However with the recent :ref:`pseudo ` -changes, some Python modules make changes to files beneath ``${S}``, for -example:: - - S = "${WORKDIR}/git/python/pythonmodule" - -then in ``setup.py`` it works with source code in a relative fashion, such -as ``../../src``. This causes pseudo to abort as it isn't able to track -the paths properly. This release introduces a new :term:`DISTUTILS_SETUP_PATH` -variable so that recipes can specify it explicitly, for example:: - - S = "${WORKDIR}/git" - DISTUTILS_SETUP_PATH = "${S}/python/pythonmodule" - -Recipes that inherit from :ref:`distutils3 ` (or -:ref:`setuptools3 ` which itself inherits -:ref:`distutils3 `) that also set :term:`S` to -point to a Python module within a subdirectory in the aforementioned -manner should be changed to set :term:`DISTUTILS_SETUP_PATH` instead. - - -.. _migration-3.3-bitbake: - -BitBake changes ---------------- - -- BitBake is now configured to use a default ``umask`` of ``022`` for all tasks - (specified via a new :term:`BB_DEFAULT_UMASK` variable). If needed, ``umask`` can - still be set on a per-task basis via the ``umask`` varflag on the task - function, but that is unlikely to be necessary in most cases. - -- If a version specified in :term:`PREFERRED_VERSION` is not available this - will now trigger a warning instead of just a note, making such issues more - visible. - - -.. _migration-3.3-packaging: - -Packaging changes ------------------ - -The following packaging changes have been made; in all cases the main package -still depends upon the split out packages so you should not need to do anything -unless you want to take advantage of the improved granularity: - -- ``dbus``: ``-common`` and ``-tools`` split out -- ``iproute2``: split ``ip`` binary to its own package -- ``net-tools``: split ``mii-tool`` into its own package -- ``procps``: split ``ps`` and ``sysctl`` into their own packages -- ``rpm``: split build and extra functionality into separate packages -- ``sudo``: split ``sudo`` binary into ``sudo-sudo`` and libs into ``sudo-lib`` -- ``systemtap``: examples, python scripts and runtime material split out -- ``util-linux``: ``libuuid`` has been split out to its own - ``util-linux-libuuid`` recipe (and corresponding packages) to avoid circular - dependencies if ``libgcrypt`` support is enabled in ``util-linux``. - (``util-linux`` depends upon ``util-linux-libuuid``.) - - -.. _migration-3.3-misc: - -Miscellaneous changes ---------------------- - -- The default poky :term:`DISTRO_VERSION` value now uses the core metadata's - git hash (i.e. :term:`METADATA_REVISION`) rather than the date (i.e. - :term:`DATE`) to reduce one small source of non-reproducibility. You can - of course specify your own :term:`DISTRO_VERSION` value as desired - (particularly if you create your own custom distro configuration). -- ``adwaita-icon-theme`` version 3.34.3 has been added back, and is selected - as the default via :term:`PREFERRED_VERSION` in - ``meta/conf/distro/include/default-versions.inc`` due to newer versions - not working well with ``librsvg`` 2.40. ``librsvg`` is not practically - upgradeable at the moment as it has been ported to Rust, and Rust is not - (yet) in OE-Core, but this will change in a future release. -- ``ffmpeg`` is now configured to disable GPL-licensed portions by default - to make it harder to accidentally violate the GPL. To explicitly enable GPL - licensed portions, add ``gpl`` to :term:`PACKAGECONFIG` for ``ffmpeg`` - using a bbappend (or use ``PACKAGECONFIG_append_pn-ffmpeg = " gpl"`` in - your configuration.) -- ``connman`` is now set to conflict with ``systemd-networkd`` as they - overlap functionally and may interfere with each other at runtime. -- Canonical SPDX license names are now used in image license manifests in - order to avoid aliases of the same license from showing up together (e.g. - ``GPLv2`` and ``GPL-2.0``) diff --git a/poky/documentation/ref-manual/migration-general.rst b/poky/documentation/ref-manual/migration-general.rst deleted file mode 100644 index 182482ec4..000000000 --- a/poky/documentation/ref-manual/migration-general.rst +++ /dev/null @@ -1,54 +0,0 @@ -General Migration Considerations -================================ - -Some considerations are not tied to a specific Yocto Project release. -This section presents information you should consider when migrating to -any new Yocto Project release. - -- *Dealing with Customized Recipes*: - - Issues could arise if you take - older recipes that contain customizations and simply copy them - forward expecting them to work after you migrate to new Yocto Project - metadata. For example, suppose you have a recipe in your layer that - is a customized version of a core recipe copied from the earlier - release, rather than through the use of an append file. When you - migrate to a newer version of Yocto Project, the metadata (e.g. - perhaps an include file used by the recipe) could have changed in a - way that would break the build. Say, for example, a function is - removed from an include file and the customized recipe tries to call - that function. - - You could "forward-port" all your customizations in your recipe so - that everything works for the new release. However, this is not the - optimal solution as you would have to repeat this process with each - new release if changes occur that give rise to problems. - - The better solution (where practical) is to use append files - (``*.bbappend``) to capture any customizations you want to make to a - recipe. Doing so, isolates your changes from the main recipe making - them much more manageable. However, sometimes it is not practical to - use an append file. A good example of this is when introducing a - newer or older version of a recipe in another layer. - -- *Updating Append Files*: - - Since append files generally only contain - your customizations, they often do not need to be adjusted for new - releases. However, if the ``.bbappend`` file is specific to a - particular version of the recipe (i.e. its name does not use the % - wildcard) and the version of the recipe to which it is appending has - changed, then you will at a minimum need to rename the append file to - match the name of the recipe file. A mismatch between an append file - and its corresponding recipe file (``.bb``) will trigger an error - during parsing. - - Depending on the type of customization the append file applies, other - incompatibilities might occur when you upgrade. For example, if your - append file applies a patch and the recipe to which it is appending - is updated to a newer version, the patch might no longer apply. If - this is the case and assuming the patch is still needed, you must - modify the patch file so that it does apply. - - - diff --git a/poky/documentation/ref-manual/migration.rst b/poky/documentation/ref-manual/migration.rst deleted file mode 100644 index a01d4ee14..000000000 --- a/poky/documentation/ref-manual/migration.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. SPDX-License-Identifier: CC-BY-SA-2.0-UK - -****************************************** -Migrating to a Newer Yocto Project Release -****************************************** - -This chapter provides information you can use to migrate work to a newer -Yocto Project release. You can find the same information in the release -notes for a given release. - -.. toctree:: - - migration-general - migration-1.3 - migration-1.4 - migration-1.5 - migration-1.6 - migration-1.7 - migration-1.8 - migration-2.0 - migration-2.1 - migration-2.2 - migration-2.3 - migration-2.4 - migration-2.5 - migration-2.6 - migration-2.7 - migration-3.0 - migration-3.1 - migration-3.2 - migration-3.3 - diff --git a/poky/documentation/ref-manual/qa-checks.rst b/poky/documentation/ref-manual/qa-checks.rst index 2e98713a2..a105acc2c 100644 --- a/poky/documentation/ref-manual/qa-checks.rst +++ b/poky/documentation/ref-manual/qa-checks.rst @@ -88,7 +88,7 @@ Errors and Warnings A file-level dependency has been identified from the specified package on the specified files, but there is no explicit corresponding entry in :term:`RDEPENDS`. If - particular files are required at runtime then ``RDEPENDS`` should be + particular files are required at runtime then :term:`RDEPENDS` should be declared in the recipe to ensure the packages providing them are built. @@ -104,7 +104,7 @@ Errors and Warnings :term:`RDEPENDS` value being added at the packaging stage rather than up front, which is usually automatic based on the contents of the package. In most cases, you should change the recipe - to add an explicit ``RDEPENDS`` for the dependency. + to add an explicit :term:`RDEPENDS` for the dependency.   .. _qa-check-dev-so: @@ -152,7 +152,7 @@ Errors and Warnings not explicitly add the ``.debug`` directory to the ``-dbg`` package. If this is the case, add the ``.debug`` directory explicitly to ``FILES_${PN}-dbg``. See :term:`FILES` for additional - information on ``FILES``. + information on :term:`FILES`.   .. _qa-check-arch: @@ -235,9 +235,9 @@ Errors and Warnings This indicates that binaries produced when building the recipe have not been linked with the :term:`LDFLAGS` options - provided by the build system. Check to be sure that the ``LDFLAGS`` + provided by the build system. Check to be sure that the :term:`LDFLAGS` variable is being passed to the linker command. A common workaround - for this situation is to pass in ``LDFLAGS`` using + for this situation is to pass in :term:`LDFLAGS` using :term:`TARGET_CC_ARCH` within the recipe as follows:: @@ -403,7 +403,7 @@ Errors and Warnings If your recipe name does not match this, or you add packages to :term:`PACKAGES` that do not conform to the convention, then you will receive this error. Rename your recipe. Or, - if you have added a non-conforming package name to ``PACKAGES``, + if you have added a non-conforming package name to :term:`PACKAGES`, change the package name appropriately.   @@ -431,13 +431,13 @@ Errors and Warnings The specified recipe has a name (:term:`PN`) value that appears in :term:`OVERRIDES`. If a recipe is named - such that its ``PN`` value matches something already in ``OVERRIDES`` - (e.g. ``PN`` happens to be the same as :term:`MACHINE` + such that its :term:`PN` value matches something already in :term:`OVERRIDES` + (e.g. :term:`PN` happens to be the same as :term:`MACHINE` or :term:`DISTRO`), it can have unexpected consequences. For example, assignments such as ``FILES_${PN} = "xyz"`` effectively turn into ``FILES = "xyz"``. - Rename your recipe (or if ``PN`` is being set explicitly, change the - ``PN`` value) so that the conflict does not occur. See + Rename your recipe (or if :term:`PN` is being set explicitly, change the + :term:`PN` value) so that the conflict does not occur. See :term:`FILES` for additional information.   @@ -464,7 +464,7 @@ Errors and Warnings This check looks for instances of setting ``DEPENDS_${PN}`` which is erroneous (:term:`DEPENDS` is a recipe-wide variable and thus it is not correct to specify it for a particular package, nor will such - an assignment actually work.) Set ``DEPENDS`` instead. + an assignment actually work.) Set :term:`DEPENDS` instead. .. _qa-check-already-stripped: @@ -499,7 +499,7 @@ Errors and Warnings Package names must appear only once in the :term:`PACKAGES` variable. You might receive this - error if you are attempting to add a package to ``PACKAGES`` that is + error if you are attempting to add a package to :term:`PACKAGES` that is already in the variable's value.   @@ -523,7 +523,7 @@ Errors and Warnings in an image later on in the build process. You need to do one of the following: - - Add the files to ``FILES`` for the package you want them to appear + - Add the files to :term:`FILES` for the package you want them to appear in (e.g. ``FILES_${``\ :term:`PN`\ ``}`` for the main package). diff --git a/poky/documentation/ref-manual/release-process.rst b/poky/documentation/ref-manual/release-process.rst index 935a2e39b..ab143f7df 100644 --- a/poky/documentation/ref-manual/release-process.rst +++ b/poky/documentation/ref-manual/release-process.rst @@ -62,8 +62,10 @@ codename are likely to be compatible and thus work together. Releases are given a nominal release version as well but the codename is used in repositories for this reason. You can find information on Yocto -Project releases and codenames at -:yocto_wiki:`/Releases`. +Project releases and codenames at :yocto_wiki:`/Releases`. + +Our :doc:`/migration-guides/index` detail how to migrate from one release of +the Yocto Project to the next. Stable Release Process ====================== @@ -164,9 +166,8 @@ repository. .. note:: - You can find all these branches in the Yocto Project - Source Repositories - . + You can find all these branches in the + :ref:`overview-manual/development-environment:yocto project source repositories`. Testing within these public branches ensures in a publicly visible way that all of the main supposed architectures and recipes in OE-Core diff --git a/poky/documentation/ref-manual/structure.rst b/poky/documentation/ref-manual/structure.rst index 36c9efc1e..5f00edb06 100644 --- a/poky/documentation/ref-manual/structure.rst +++ b/poky/documentation/ref-manual/structure.rst @@ -251,9 +251,9 @@ variables are hard-coded for various reasons but such variables are relatively rare. At a minimum, you would normally edit this file to select the target -``MACHINE``, which package types you wish to use +:term:`MACHINE`, which package types you wish to use (:term:`PACKAGE_CLASSES`), and the location from -which you want to access downloaded files (``DL_DIR``). +which you want to access downloaded files (:term:`DL_DIR`). If ``local.conf`` is not present when you start the build, the OpenEmbedded build system creates it from ``local.conf.sample`` when you @@ -336,7 +336,7 @@ the build. This directory contains downloaded upstream source tarballs. You can reuse the directory for multiple builds or move the directory to another location. You can control the location of this directory through the -``DL_DIR`` variable. +:term:`DL_DIR` variable. .. _structure-build-sstate-cache: @@ -346,7 +346,7 @@ location. You can control the location of this directory through the This directory contains the shared state cache. You can reuse the directory for multiple builds or move the directory to another location. You can control the location of this directory through the -``SSTATE_DIR`` variable. +:term:`SSTATE_DIR` variable. .. _structure-build-tmp: @@ -548,7 +548,7 @@ section in the Yocto Project Overview and Concepts Manual. ------------------ This directory contains general logs that are not otherwise placed using -the package's ``WORKDIR``. Examples of logs are the output from the +the package's :term:`WORKDIR`. Examples of logs are the output from the ``do_check_pkg`` or ``do_distro_check`` tasks. Running a build does not necessarily mean this directory is created. @@ -569,7 +569,7 @@ It is worth considering the structure of a typical work directory. As an example, consider ``linux-yocto-kernel-3.0`` on the machine ``qemux86`` built within the Yocto Project. For this package, a work directory of ``tmp/work/qemux86-poky-linux/linux-yocto/3.0+git1+<.....>``, referred -to as the ``WORKDIR``, is created. Within this directory, the source is +to as the :term:`WORKDIR`, is created. Within this directory, the source is unpacked to ``linux-qemux86-standard-build`` and then patched by Quilt. (See the ":ref:`dev-manual/common-tasks:using quilt in your workflow`" section in the Yocto Project Development Tasks Manual for more information.) Within @@ -577,7 +577,7 @@ the ``linux-qemux86-standard-build`` directory, standard Quilt directories ``linux-3.0/patches`` and ``linux-3.0/.pc`` are created, and standard Quilt commands can be used. -There are other directories generated within ``WORKDIR``. The most +There are other directories generated within :term:`WORKDIR`. The most important directory is ``WORKDIR/temp/``, which has log files for each task (``log.do_*.pid``) and contains the scripts BitBake runs for each task (``run.do_*.pid``). The ``WORKDIR/image/`` directory is where "make @@ -709,7 +709,7 @@ support for a new machine to the Yocto Project, look in this directory. The contents of this directory controls any distribution-specific configurations. For the Yocto Project, the ``defaultsetup.conf`` is the -main file here. This directory includes the versions and the ``SRCDATE`` +main file here. This directory includes the versions and the :term:`SRCDATE` definitions for applications that are configured here. An example of an alternative configuration might be ``poky-bleeding.conf``. Although this file mainly inherits its configuration from Poky. diff --git a/poky/documentation/ref-manual/tasks.rst b/poky/documentation/ref-manual/tasks.rst index 5bceb79b8..970b08394 100644 --- a/poky/documentation/ref-manual/tasks.rst +++ b/poky/documentation/ref-manual/tasks.rst @@ -57,7 +57,7 @@ the current working directory set to ``${``\ :term:`B`\ ``}``. The default behavior of this task is to run ``oe_runmake clean`` if a makefile (``Makefile``, ``makefile``, or ``GNUmakefile``) is found and :term:`CLEANBROKEN` is not set to "1". If no such -file is found or the ``CLEANBROKEN`` variable is set to "1", the +file is found or the :term:`CLEANBROKEN` variable is set to "1", the ``do_configure`` task does nothing. .. _ref-tasks-configure_ptest_base: @@ -308,17 +308,17 @@ This recipe has two patch files located here:: poky/meta/recipes-connectivity/bluez5/bluez5 -In the ``bluez5`` recipe, the ``SRC_URI`` statements point to the source +In the ``bluez5`` recipe, the :term:`SRC_URI` statements point to the source and patch files needed to build the package. .. note:: - In the case for the ``bluez5_5.48.bb`` recipe, the ``SRC_URI`` statements + In the case for the ``bluez5_5.48.bb`` recipe, the :term:`SRC_URI` statements are from an include file ``bluez5.inc``. As mentioned earlier, the build system treats files whose file types are ``.patch`` and ``.diff`` as patch files. However, you can use the -"apply=yes" parameter with the ``SRC_URI`` statement to indicate any +"apply=yes" parameter with the :term:`SRC_URI` statement to indicate any file as a patch file:: SRC_URI = " \ @@ -329,7 +329,7 @@ file as a patch file:: Conversely, if you have a directory full of patch files and you want to exclude some so that the ``do_patch`` task does not apply them during the patch phase, you can use the "apply=no" parameter with the -``SRC_URI`` statement:: +:term:`SRC_URI` statement:: SRC_URI = " \ git://path_to_repo/some_package \ @@ -430,7 +430,7 @@ variable also plays a role in where unpacked source files ultimately reside. For more information on how source files are unpacked, see the ":ref:`overview-manual/concepts:source fetching`" section in the Yocto Project Overview and Concepts Manual and also see -the ``WORKDIR`` and ``S`` variable descriptions. +the :term:`WORKDIR` and :term:`S` variable descriptions. Manually Called Tasks ===================== diff --git a/poky/documentation/ref-manual/terms.rst b/poky/documentation/ref-manual/terms.rst index 0af9af648..54469e507 100644 --- a/poky/documentation/ref-manual/terms.rst +++ b/poky/documentation/ref-manual/terms.rst @@ -97,11 +97,11 @@ universal, the list includes them just in case: .. note:: By default, the Build Directory contains :term:`TMPDIR`, which is a - temporary directory the build system uses for its work. ``TMPDIR`` cannot + 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 - set this up by setting ``TMPDIR`` in your ``local.conf`` file to use a local - drive. Doing so effectively separates ``TMPDIR`` from :term:`TOPDIR`, which is the + 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 Host` diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst index df6413b68..71c2e11d9 100644 --- a/poky/documentation/ref-manual/variables.rst +++ b/poky/documentation/ref-manual/variables.rst @@ -63,7 +63,7 @@ system and gives an overview of their function and contents. Used by the alternatives system to map duplicated commands to actual locations. For example, if the ``bracket`` command provided by the ``busybox`` package is duplicated through another package, you must - use the ``ALTERNATIVE_LINK_NAME`` variable to specify the actual + use the :term:`ALTERNATIVE_LINK_NAME` variable to specify the actual location:: ALTERNATIVE_LINK_NAME[bracket] = "/usr/bin/[" @@ -73,7 +73,7 @@ system and gives an overview of their function and contents. .. note:: - If ``ALTERNATIVE_LINK_NAME`` is not defined, it defaults to ``${bindir}/name``. + If :term:`ALTERNATIVE_LINK_NAME` is not defined, it defaults to ``${bindir}/name``. For more information on the alternatives system, see the ":ref:`update-alternatives.bbclass `" @@ -109,11 +109,11 @@ system and gives an overview of their function and contents. .. note:: - If ``ALTERNATIVE_TARGET`` is not defined, it inherits the value + If :term:`ALTERNATIVE_TARGET` is not defined, it inherits the value from the :term:`ALTERNATIVE_LINK_NAME` variable. - If ``ALTERNATIVE_LINK_NAME`` and ``ALTERNATIVE_TARGET`` are the - same, the target for ``ALTERNATIVE_TARGET`` has "``.{BPN}``" + If :term:`ALTERNATIVE_LINK_NAME` and :term:`ALTERNATIVE_TARGET` are the + same, the target for :term:`ALTERNATIVE_TARGET` has "``.{BPN}``" appended to it. Finally, if the file referenced has not been renamed, the @@ -131,8 +131,8 @@ system and gives an overview of their function and contents. class, this variable identifies a list of distribution features where at least one must be enabled in the current configuration in order for the OpenEmbedded build system to build the recipe. In other words, - if none of the features listed in ``ANY_OF_DISTRO_FEATURES`` - appear in ``DISTRO_FEATURES`` within the current configuration, then + if none of the features listed in :term:`ANY_OF_DISTRO_FEATURES` + appear in :term:`DISTRO_FEATURES` within the current configuration, then the recipe will be skipped, and if the build system attempts to build the recipe then an error will be triggered. @@ -174,7 +174,7 @@ system and gives an overview of their function and contents. attempt to build. Instead, BitBake assumes these recipes have already been built. - In OpenEmbedded-Core, ``ASSUME_PROVIDED`` mostly specifies native + In OpenEmbedded-Core, :term:`ASSUME_PROVIDED` mostly specifies native tools that should not be built. An example is ``git-native``, which when specified, allows for the Git binary from the host to be used rather than building ``git-native``. @@ -200,7 +200,7 @@ system and gives an overview of their function and contents. :term:`AUTO_LIBNAME_PKGS` When the :ref:`debian ` class is inherited, - which is the default behavior, ``AUTO_LIBNAME_PKGS`` specifies which + which is the default behavior, :term:`AUTO_LIBNAME_PKGS` specifies which packages should be checked for libraries and renamed according to Debian library package naming. @@ -213,7 +213,7 @@ system and gives an overview of their function and contents. :ref:`syslinux ` class checks this variable. :term:`AUTOREV` - When ``SRCREV`` is set to the value of this variable, it specifies to + When :term:`SRCREV` is set to the value of this variable, it specifies to use the latest source revision in the repository. Here is an example:: SRCREV = "${AUTOREV}" @@ -224,7 +224,7 @@ system and gives an overview of their function and contents. have a kernel recipe that inherits the :ref:`kernel ` class and you use the previous statement. In this example, ``${SRCPV}`` does not automatically get - into ``PV``. Consequently, you need to change ``PV`` in your recipe + into :term:`PV`. Consequently, you need to change :term:`PV` in your recipe so that it does contain ``${SRCPV}``. For more information see the @@ -238,8 +238,8 @@ system and gives an overview of their function and contents. .. note:: - It is assumed that all changes to ``COMMON_LICENSE_DIR`` and - ``LICENSE_PATH`` have been done before ``AVAILABLE_LICENSES`` + It is assumed that all changes to :term:`COMMON_LICENSE_DIR` and + :term:`LICENSE_PATH` have been done before :term:`AVAILABLE_LICENSES` is defined (in :ref:`ref-classes-license`). :term:`AVAILTUNES` @@ -279,7 +279,7 @@ system and gives an overview of their function and contents. S = "${WORKDIR}/${BP}" - You can separate the (``S``) directory and the directory pointed to + You can separate the (:term:`S`) directory and the directory pointed to by the ``B`` variable. Most Autotools-based recipes support separating these directories. The build system defaults to using separate directories for ``gcc`` and some kernel recipes. @@ -289,7 +289,7 @@ system and gives an overview of their function and contents. packages are packages installed only through the :term:`RRECOMMENDS` variable. You can prevent any of these "recommended" packages from being installed by listing them - with the ``BAD_RECOMMENDATIONS`` variable:: + with the :term:`BAD_RECOMMENDATIONS` variable:: BAD_RECOMMENDATIONS = "package_name package_name package_name ..." @@ -314,12 +314,12 @@ system and gives an overview of their function and contents. :term:`BASE_LIB` The library directory name for the CPU or Application Binary - Interface (ABI) tune. The ``BASE_LIB`` applies only in the Multilib + Interface (ABI) tune. The :term:`BASE_LIB` applies only in the Multilib context. See the ":ref:`dev-manual/common-tasks:combining multiple versions of library files into one image`" section in the Yocto Project Development Tasks Manual for information on Multilib. - The ``BASE_LIB`` variable is defined in the machine include files in + The :term:`BASE_LIB` variable is defined in the machine include files in the :term:`Source Directory`. If Multilib is not being used, the value defaults to "lib". @@ -332,7 +332,7 @@ system and gives an overview of their function and contents. to use to obtain the required source code. Following are considerations surrounding this variable: - - This host list is only used if ``BB_NO_NETWORK`` is either not set + - This host list is only used if :term:`BB_NO_NETWORK` is either not set or set to "0". - There is limited support for wildcard matching against the beginning of @@ -357,14 +357,14 @@ system and gives an overview of their function and contents. - Attempts to access networks not in the host list cause a failure. - Using ``BB_ALLOWED_NETWORKS`` in conjunction with + Using :term:`BB_ALLOWED_NETWORKS` in conjunction with :term:`PREMIRRORS` is very useful. Adding the host - you want to use to ``PREMIRRORS`` results in the source code being + you want to use to :term:`PREMIRRORS` results in the source code being fetched from an allowed location and avoids raising an error when a host that is not allowed is in a :term:`SRC_URI` statement. This is because the fetcher does not attempt to use the - host listed in ``SRC_URI`` after a successful fetch from the - ``PREMIRRORS`` occurs. + host listed in :term:`SRC_URI` after a successful fetch from the + :term:`PREMIRRORS` occurs. :term:`BB_DANGLINGAPPENDS_WARNONLY` Defines how BitBake handles situations where an append file @@ -389,7 +389,7 @@ system and gives an overview of their function and contents. you to control the build based on these parameters. Disk space monitoring is disabled by default. To enable monitoring, - add the ``BB_DISKMON_DIRS`` variable to your ``conf/local.conf`` file + add the :term:`BB_DISKMON_DIRS` variable to your ``conf/local.conf`` file found in the :term:`Build Directory`. Use the following form: @@ -444,7 +444,7 @@ system and gives an overview of their function and contents. variable, the build system also issue a warning when the disk space in the ``${SSTATE_DIR}`` directory drops below 1 Gbyte or the number of free inodes drops below 100 Kbytes. Subsequent warnings are issued - during intervals as defined by the ``BB_DISKMON_WARNINTERVAL`` + during intervals as defined by the :term:`BB_DISKMON_WARNINTERVAL` variable. The second example stops the build after all currently executing @@ -461,14 +461,14 @@ system and gives an overview of their function and contents. intervals, define the variable in your ``conf/local.conf`` file in the :term:`Build Directory`. - If you are going to use the ``BB_DISKMON_WARNINTERVAL`` variable, you + If you are going to use the :term:`BB_DISKMON_WARNINTERVAL` variable, you must also use the :term:`BB_DISKMON_DIRS` variable and define its action as "WARN". During the build, subsequent warnings are issued each time disk space or number of free inodes further reduces by the respective interval. - If you do not provide a ``BB_DISKMON_WARNINTERVAL`` variable and you - do use ``BB_DISKMON_DIRS`` with the "WARN" action, the disk + If you do not provide a :term:`BB_DISKMON_WARNINTERVAL` variable and you + do use :term:`BB_DISKMON_DIRS` with the "WARN" action, the disk monitoring interval defaults to the following:: BB_DISKMON_WARNINTERVAL = "50M,5K" @@ -521,7 +521,7 @@ system and gives an overview of their function and contents. ``local.conf`` file in the :term:`Build Directory`. Once you have the tarballs containing your source files, you can - clean up your ``DL_DIR`` directory by deleting any Git or other + clean up your :term:`DL_DIR` directory by deleting any Git or other source control work directories. :term:`BB_NUMBER_THREADS` @@ -529,13 +529,13 @@ system and gives an overview of their function and contents. time. The OpenEmbedded build system automatically configures this variable to be equal to the number of cores on the build system. For example, a system with a dual core processor that also uses - hyper-threading causes the ``BB_NUMBER_THREADS`` variable to default + hyper-threading causes the :term:`BB_NUMBER_THREADS` variable to default to "4". For single socket systems (i.e. one CPU), you should not have to override this variable to gain optimal parallelism during builds. However, if you have very large systems that employ multiple physical - CPUs, you might want to make sure the ``BB_NUMBER_THREADS`` variable + CPUs, you might want to make sure the :term:`BB_NUMBER_THREADS` variable is not set higher than "20". For more information on speeding up builds, see the @@ -544,7 +544,7 @@ system and gives an overview of their function and contents. :term:`BB_SERVER_TIMEOUT` Specifies the time (in seconds) after which to unload the BitBake - server due to inactivity. Set ``BB_SERVER_TIMEOUT`` to determine how + server due to inactivity. Set :term:`BB_SERVER_TIMEOUT` to determine how long the BitBake server stays resident between invocations. For example, the following statement in your ``local.conf`` file @@ -562,7 +562,7 @@ system and gives an overview of their function and contents. system; "crosses" such as ``gcc-cross``, which is a compiler built to run on the build machine but produces binaries that run on the target :term:`MACHINE`; "nativesdk", which targets the SDK - machine instead of ``MACHINE``; and "mulitlibs" in the form + machine instead of :term:`MACHINE`; and "mulitlibs" in the form "``multilib:``\ multilib_name". To build a different variant of the recipe with a minimal amount of @@ -573,13 +573,13 @@ system and gives an overview of their function and contents. .. note:: - Internally, the ``BBCLASSEXTEND`` mechanism generates recipe + Internally, the :term:`BBCLASSEXTEND` mechanism generates recipe variants by rewriting variable values and applying overrides such as ``_class-native``. For example, to generate a native version of a recipe, a :term:`DEPENDS` on "foo" is rewritten to a ``DEPENDS`` on "foo-native". - Even when using ``BBCLASSEXTEND``, the recipe is only parsed once. + Even when using :term:`BBCLASSEXTEND`, the recipe is only parsed once. Parsing once adds some limitations. For example, it is not possible to include a different file depending on the variant, since ``include`` statements are processed when the recipe is @@ -605,14 +605,14 @@ system and gives an overview of their function and contents. - effectively letting you control the precedence for the multiple layers. The precedence established through this variable stands regardless of a recipe's version (:term:`PV` variable). For - example, a layer that has a recipe with a higher ``PV`` value but for - which the ``BBFILE_PRIORITY`` is set to have a lower precedence still + example, a layer that has a recipe with a higher :term:`PV` value but for + which the :term:`BBFILE_PRIORITY` is set to have a lower precedence still has a lower precedence. - A larger value for the ``BBFILE_PRIORITY`` variable results in a + A larger value for the :term:`BBFILE_PRIORITY` variable results in a higher precedence. For example, the value 6 has a higher precedence - than the value 5. If not specified, the ``BBFILE_PRIORITY`` variable - is set based on layer dependencies (see the ``LAYERDEPENDS`` variable + than the value 5. If not specified, the :term:`BBFILE_PRIORITY` variable + is set based on layer dependencies (see the :term:`LAYERDEPENDS` variable for more information. The default priority, if unspecified for a layer with no dependencies, is the lowest defined priority + 1 (or 1 if no priorities are defined). @@ -635,12 +635,12 @@ system and gives an overview of their function and contents. Activates content when identified layers are present. You identify the layers by the collections that the layers define. - Use the ``BBFILES_DYNAMIC`` variable to avoid ``.bbappend`` files + Use the :term:`BBFILES_DYNAMIC` variable to avoid ``.bbappend`` files whose corresponding ``.bb`` file is in a layer that attempts to modify other layers through ``.bbappend`` but does not want to introduce a hard dependency on those other layers. - Use the following form for ``BBFILES_DYNAMIC``: + Use the following form for :term:`BBFILES_DYNAMIC`: collection_name:filename_pattern The following example identifies two collection names and two filename patterns:: @@ -664,7 +664,7 @@ system and gives an overview of their function and contents. :term:`BBINCLUDELOGS_LINES` If :term:`BBINCLUDELOGS` is set, specifies the maximum number of lines from the task log file to print when - reporting a failed task. If you do not set ``BBINCLUDELOGS_LINES``, + reporting a failed task. If you do not set :term:`BBINCLUDELOGS_LINES`, the entire log is printed. :term:`BBLAYERS` @@ -685,7 +685,7 @@ system and gives an overview of their function and contents. :term:`BBMASK` Prevents BitBake from processing recipes and recipe append files. - You can use the ``BBMASK`` variable to "hide" these ``.bb`` and + You can use the :term:`BBMASK` variable to "hide" these ``.bb`` and ``.bbappend`` files. BitBake ignores any recipe or recipe append files that match any of the expressions. It is as if BitBake does not see them at all. Consequently, matching files are not parsed or @@ -732,7 +732,7 @@ system and gives an overview of their function and contents. ``conf/multiconfig`` directory (e.g. build_directory\ ``/conf/multiconfig/configA.conf``). - For information on how to use ``BBMULTICONFIG`` in an environment + For information on how to use :term:`BBMULTICONFIG` in an environment that supports building targets with multiple configurations, see the ":ref:`dev-manual/common-tasks:building images for multiple targets using multiple configurations`" section in the Yocto Project Development Tasks Manual. @@ -744,7 +744,7 @@ system and gives an overview of their function and contents. .. note:: If you run BitBake from a directory outside of the - :term:`Build Directory`, you must be sure to set ``BBPATH`` + :term:`Build Directory`, you must be sure to set :term:`BBPATH` to point to the Build Directory. Set the variable as you would any environment variable and then run BitBake:: @@ -754,7 +754,7 @@ system and gives an overview of their function and contents. :term:`BBSERVER` - If defined in the BitBake environment, ``BBSERVER`` points to the + If defined in the BitBake environment, :term:`BBSERVER` points to the BitBake remote server. Use the following format to export the variable to the BitBake @@ -762,9 +762,9 @@ system and gives an overview of their function and contents. export BBSERVER=localhost:$port - By default, ``BBSERVER`` also appears in + By default, :term:`BBSERVER` also appears in :term:`bitbake:BB_HASHBASE_WHITELIST`. - Consequently, ``BBSERVER`` is excluded from checksum and dependency + Consequently, :term:`BBSERVER` is excluded from checksum and dependency data. :term:`BINCONFIG` @@ -791,7 +791,7 @@ system and gives an overview of their function and contents. .. note:: - The ``BINCONFIG_GLOB`` variable uses + The :term:`BINCONFIG_GLOB` variable uses `shell globbing `__, which is recognition and expansion of wildcards during pattern matching. Shell globbing is very similar to @@ -806,7 +806,7 @@ system and gives an overview of their function and contents. :term:`BP` The base recipe name and version but without any special recipe name - suffix (i.e. ``-native``, ``lib64-``, and so forth). ``BP`` is + suffix (i.e. ``-native``, ``lib64-``, and so forth). :term:`BP` is comprised of the following:: ${BPN}-${PV} @@ -828,23 +828,23 @@ system and gives an overview of their function and contents. :term:`BUILD_ARCH` Specifies the architecture of the build host (e.g. ``i686``). The - OpenEmbedded build system sets the value of ``BUILD_ARCH`` from the + OpenEmbedded build system sets the value of :term:`BUILD_ARCH` from the machine name reported by the ``uname`` command. :term:`BUILD_AS_ARCH` Specifies the architecture-specific assembler flags for the build - host. By default, the value of ``BUILD_AS_ARCH`` is empty. + host. By default, the value of :term:`BUILD_AS_ARCH` is empty. :term:`BUILD_CC_ARCH` Specifies the architecture-specific C compiler flags for the build - host. By default, the value of ``BUILD_CC_ARCH`` is empty. + host. By default, the value of :term:`BUILD_CC_ARCH` is empty. :term:`BUILD_CCLD` Specifies the linker command to be used for the build host when the C - compiler is being used as the linker. By default, ``BUILD_CCLD`` + compiler is being used as the linker. By default, :term:`BUILD_CCLD` points to GCC and passes as arguments the value of :term:`BUILD_CC_ARCH`, assuming - ``BUILD_CC_ARCH`` is set. + :term:`BUILD_CC_ARCH` is set. :term:`BUILD_CFLAGS` Specifies the flags to pass to the C compiler when building for the @@ -866,19 +866,19 @@ system and gives an overview of their function and contents. :term:`BUILD_FC` Specifies the Fortran compiler command for the build host. By - default, ``BUILD_FC`` points to Gfortran and passes as arguments the + default, :term:`BUILD_FC` points to Gfortran and passes as arguments the value of :term:`BUILD_CC_ARCH`, assuming - ``BUILD_CC_ARCH`` is set. + :term:`BUILD_CC_ARCH` is set. :term:`BUILD_LD` Specifies the linker command for the build host. By default, - ``BUILD_LD`` points to the GNU linker (ld) and passes as arguments + :term:`BUILD_LD` points to the GNU linker (ld) and passes as arguments the value of :term:`BUILD_LD_ARCH`, assuming - ``BUILD_LD_ARCH`` is set. + :term:`BUILD_LD_ARCH` is set. :term:`BUILD_LD_ARCH` Specifies architecture-specific linker flags for the build host. By - default, the value of ``BUILD_LD_ARCH`` is empty. + default, the value of :term:`BUILD_LD_ARCH` is empty. :term:`BUILD_LDFLAGS` Specifies the flags to pass to the linker when building for the build @@ -903,13 +903,13 @@ system and gives an overview of their function and contents. :term:`BUILD_PREFIX` The toolchain binary prefix used for native recipes. The OpenEmbedded - build system uses the ``BUILD_PREFIX`` value to set the + build system uses the :term:`BUILD_PREFIX` value to set the :term:`TARGET_PREFIX` when building for ``native`` recipes. :term:`BUILD_STRIP` Specifies the command to be used to strip debugging symbols from - binaries produced for the build host. By default, ``BUILD_STRIP`` + binaries produced for the build host. By default, :term:`BUILD_STRIP` points to ``${``\ :term:`BUILD_PREFIX`\ ``}strip``. @@ -922,7 +922,7 @@ system and gives an overview of their function and contents. on :term:`BUILD_ARCH`, :term:`BUILD_VENDOR`, and :term:`BUILD_OS`. You do not need to set the - ``BUILD_SYS`` variable yourself. + :term:`BUILD_SYS` variable yourself. :term:`BUILD_VENDOR` Specifies the vendor name to use when building for the build host. @@ -933,7 +933,7 @@ system and gives an overview of their function and contents. 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 ``BUILDDIR`` defaults to + not provide a Build Directory path, the :term:`BUILDDIR` defaults to ``build`` in the current directory. :term:`BUILDHISTORY_COMMIT` @@ -954,12 +954,12 @@ system and gives an overview of their function and contents. :term:`BUILDHISTORY_COMMIT_AUTHOR` When inheriting the :ref:`buildhistory ` class, this variable specifies the author to use for each Git commit. - In order for the ``BUILDHISTORY_COMMIT_AUTHOR`` variable to work, the + In order for the :term:`BUILDHISTORY_COMMIT_AUTHOR` variable to work, the :term:`BUILDHISTORY_COMMIT` variable must be set to "1". Git requires that the value you provide for the - ``BUILDHISTORY_COMMIT_AUTHOR`` variable takes the form of "name + :term:`BUILDHISTORY_COMMIT_AUTHOR` variable takes the form of "name email@host". Providing an email address or host that is not valid does not produce an error. @@ -1025,7 +1025,7 @@ system and gives an overview of their function and contents. When inheriting the :ref:`buildhistory ` class, this variable optionally specifies a remote repository to which build history pushes Git changes. In order for - ``BUILDHISTORY_PUSH_REPO`` to work, + :term:`BUILDHISTORY_PUSH_REPO` to work, :term:`BUILDHISTORY_COMMIT` must be set to "1". @@ -1066,7 +1066,7 @@ system and gives an overview of their function and contents. Points to the location of the directory that holds build statistics when you use and enable the :ref:`buildstats ` class. The - ``BUILDSTATS_BASE`` directory defaults to + :term:`BUILDSTATS_BASE` directory defaults to ``${``\ :term:`TMPDIR`\ ``}/buildstats/``. :term:`BUSYBOX_SPLIT_SUID` @@ -1075,7 +1075,7 @@ system and gives an overview of their function and contents. ``setuid root``, and one for the remaining features (i.e. those that do not require ``setuid root``). - The ``BUSYBOX_SPLIT_SUID`` variable defaults to "1", which results in + The :term:`BUSYBOX_SPLIT_SUID` variable defaults to "1", which results in splitting the output executable file. Set the variable to "0" to get a single output executable file. @@ -1092,7 +1092,7 @@ system and gives an overview of their function and contents. exported to an environment variable and thus made visible to the software being built during the compilation step. - Default initialization for ``CFLAGS`` varies depending on what is + Default initialization for :term:`CFLAGS` varies depending on what is being built: - :term:`TARGET_CFLAGS` when building for the @@ -1131,12 +1131,12 @@ system and gives an overview of their function and contents. FOO_class-native = "native" FOO = "other" - The underlying mechanism behind ``CLASSOVERRIDE`` is simply + The underlying mechanism behind :term:`CLASSOVERRIDE` is simply that it is included in the default value of :term:`OVERRIDES`. :term:`CLEANBROKEN` - If set to "1" within a recipe, ``CLEANBROKEN`` specifies that the + If set to "1" within a recipe, :term:`CLEANBROKEN` specifies that the ``make clean`` command does not work for the software being built. Consequently, the OpenEmbedded build system will not try to run ``make clean`` during the :ref:`ref-tasks-configure` @@ -1185,7 +1185,7 @@ system and gives an overview of their function and contents. .. note:: - The ``COMPLEMENTARY_GLOB`` variable uses Unix filename pattern matching + The :term:`COMPLEMENTARY_GLOB` variable uses Unix filename pattern matching (`fnmatch `__), which is similar to the Unix style pathname pattern expansion (`glob `__). @@ -1193,7 +1193,7 @@ system and gives an overview of their function and contents. The resulting list of complementary packages is associated with an item that can be added to :term:`IMAGE_FEATURES`. An example usage of - this is the "dev-pkgs" item that when added to ``IMAGE_FEATURES`` + this is the "dev-pkgs" item that when added to :term:`IMAGE_FEATURES` will install -dev packages (containing headers and other development files) for every package in the image. @@ -1215,7 +1215,7 @@ system and gives an overview of their function and contents. :term:`CONF_VERSION` Tracks the version of the local configuration file (i.e. - ``local.conf``). The value for ``CONF_VERSION`` increments each time + ``local.conf``). The value for :term:`CONF_VERSION` increments each time ``build/conf/`` compatibility changes. :term:`CONFFILES` @@ -1225,28 +1225,28 @@ system and gives an overview of their function and contents. files you have changed after the original installation and that you now want to remain unchanged are overwritten. In other words, editable files might exist in the package that you do not want reset - as part of the package update process. You can use the ``CONFFILES`` + as part of the package update process. You can use the :term:`CONFFILES` variable to list the files in the package that you wish to prevent the PMS from overwriting during this update process. - To use the ``CONFFILES`` variable, provide a package name override + To use the :term:`CONFFILES` variable, provide a package name override that identifies the resulting package. Then, provide a space-separated list of files. Here is an example:: CONFFILES_${PN} += "${sysconfdir}/file1 \ ${sysconfdir}/file2 ${sysconfdir}/file3" - There is a relationship between the ``CONFFILES`` and ``FILES`` - variables. The files listed within ``CONFFILES`` must be a subset of - the files listed within ``FILES``. Because the configuration files - you provide with ``CONFFILES`` are simply being identified so that + There is a relationship between the :term:`CONFFILES` and :term:`FILES` + variables. The files listed within :term:`CONFFILES` must be a subset of + the files listed within :term:`FILES`. Because the configuration files + you provide with :term:`CONFFILES` are simply being identified so that the PMS will not overwrite them, it makes sense that the files must - already be included as part of the package through the ``FILES`` + already be included as part of the package through the :term:`FILES` variable. .. note:: - When specifying paths as part of the ``CONFFILES`` variable, it is + When specifying paths as part of the :term:`CONFFILES` variable, it is good practice to use appropriate path variables. For example, ``${sysconfdir}`` rather than ``/etc`` or ``${bindir}`` rather than ``/usr/bin``. You can find a list of these variables at @@ -1259,7 +1259,7 @@ system and gives an overview of their function and contents. variable as an environment variable. By default, the variable is set to null (""). - The ``CONFIG_INITRAMFS_SOURCE`` can be either a single cpio archive + The :term:`CONFIG_INITRAMFS_SOURCE` can be either a single cpio archive with a ``.cpio`` suffix or a space-separated list of directories and files for building the initramfs image. A cpio archive should contain a filesystem archive to be used as an initramfs image. Directories @@ -1287,8 +1287,8 @@ system and gives an overview of their function and contents. :ref:`features_check ` class, this variable identifies distribution features that would be in conflict should the recipe be built. In other words, if the - ``CONFLICT_DISTRO_FEATURES`` variable lists a feature that also - appears in ``DISTRO_FEATURES`` within the current configuration, then + :term:`CONFLICT_DISTRO_FEATURES` variable lists a feature that also + appears in :term:`DISTRO_FEATURES` within the current configuration, then the recipe will be skipped, and if the build system attempts to build the recipe then an error will be triggered. @@ -1297,16 +1297,16 @@ system and gives an overview of their function and contents. archived by the :ref:`archiver ` class. In other words, if a license in a recipe's :term:`LICENSE` value is in the value of - ``COPYLEFT_LICENSE_EXCLUDE``, then its source is not archived by the + :term:`COPYLEFT_LICENSE_EXCLUDE`, then its source is not archived by the class. .. note:: - The ``COPYLEFT_LICENSE_EXCLUDE`` variable takes precedence over the + The :term:`COPYLEFT_LICENSE_EXCLUDE` variable takes precedence over the :term:`COPYLEFT_LICENSE_INCLUDE` variable. The default value, which is "CLOSED Proprietary", for - ``COPYLEFT_LICENSE_EXCLUDE`` is set by the + :term:`COPYLEFT_LICENSE_EXCLUDE` is set by the :ref:`copyleft_filter ` class, which is inherited by the ``archiver`` class. @@ -1314,7 +1314,7 @@ system and gives an overview of their function and contents. A space-separated list of licenses to include in the source archived by the :ref:`archiver ` class. In other words, if a license in a recipe's :term:`LICENSE` - value is in the value of ``COPYLEFT_LICENSE_INCLUDE``, then its + value is in the value of :term:`COPYLEFT_LICENSE_INCLUDE`, then its source is archived by the class. The default value is set by the @@ -1325,28 +1325,28 @@ system and gives an overview of their function and contents. :term:`COPYLEFT_PN_EXCLUDE` A list of recipes to exclude in the source archived by the :ref:`archiver ` class. The - ``COPYLEFT_PN_EXCLUDE`` variable overrides the license inclusion and + :term:`COPYLEFT_PN_EXCLUDE` variable overrides the license inclusion and exclusion caused through the :term:`COPYLEFT_LICENSE_INCLUDE` and :term:`COPYLEFT_LICENSE_EXCLUDE` variables, respectively. The default value, which is "" indicating to not explicitly exclude - any recipes by name, for ``COPYLEFT_PN_EXCLUDE`` is set by the + any recipes by name, for :term:`COPYLEFT_PN_EXCLUDE` is set by the :ref:`copyleft_filter ` class, which is inherited by the ``archiver`` class. :term:`COPYLEFT_PN_INCLUDE` A list of recipes to include in the source archived by the :ref:`archiver ` class. The - ``COPYLEFT_PN_INCLUDE`` variable overrides the license inclusion and + :term:`COPYLEFT_PN_INCLUDE` variable overrides the license inclusion and exclusion caused through the :term:`COPYLEFT_LICENSE_INCLUDE` and :term:`COPYLEFT_LICENSE_EXCLUDE` variables, respectively. The default value, which is "" indicating to not explicitly include - any recipes by name, for ``COPYLEFT_PN_INCLUDE`` is set by the + any recipes by name, for :term:`COPYLEFT_PN_INCLUDE` is set by the :ref:`copyleft_filter ` class, which is inherited by the ``archiver`` class. @@ -1356,7 +1356,7 @@ system and gives an overview of their function and contents. Recipe types are ``target``, ``native``, ``nativesdk``, ``cross``, ``crosssdk``, and ``cross-canadian``. - The default value, which is "target*", for ``COPYLEFT_RECIPE_TYPES`` + The default value, which is "target*", for :term:`COPYLEFT_RECIPE_TYPES` is set by the :ref:`copyleft_filter ` class, which is inherited by the ``archiver`` class. @@ -1370,7 +1370,7 @@ system and gives an overview of their function and contents. .. note:: - The ``COPY_LIC_DIRS`` does not offer a path for adding licenses for + The :term:`COPY_LIC_DIRS` does not offer a path for adding licenses for newly installed packages to an image, which might be most suitable for read-only filesystems that cannot be upgraded. See the :term:`LICENSE_CREATE_PACKAGE` variable for additional information. @@ -1386,7 +1386,7 @@ system and gives an overview of their function and contents. .. note:: - The ``COPY_LIC_MANIFEST`` does not offer a path for adding licenses for + The :term:`COPY_LIC_MANIFEST` does not offer a path for adding licenses for newly installed packages to an image, which might be most suitable for read-only filesystems that cannot be upgraded. See the :term:`LICENSE_CREATE_PACKAGE` variable for additional information. @@ -1406,24 +1406,24 @@ system and gives an overview of their function and contents. Specifies the parent directory of the OpenEmbedded-Core Metadata layer (i.e. ``meta``). - It is an important distinction that ``COREBASE`` points to the parent + It is an important distinction that :term:`COREBASE` points to the parent of this layer and not the layer itself. Consider an example where you have cloned the Poky Git repository and retained the ``poky`` name - for your local copy of the repository. In this case, ``COREBASE`` + for your local copy of the repository. In this case, :term:`COREBASE` points to the ``poky`` folder because it is the parent directory of the ``poky/meta`` layer. :term:`COREBASE_FILES` Lists files from the :term:`COREBASE` directory that should be copied other than the layers listed in the - ``bblayers.conf`` file. The ``COREBASE_FILES`` variable allows + ``bblayers.conf`` file. The :term:`COREBASE_FILES` variable allows to copy metadata from the OpenEmbedded build system into the extensible SDK. - Explicitly listing files in ``COREBASE`` is needed because it + Explicitly listing files in :term:`COREBASE` is needed because it typically contains build directories and other files that should not normally be copied into the extensible SDK. Consequently, the value - of ``COREBASE_FILES`` is used in order to only copy the files that + of :term:`COREBASE_FILES` is used in order to only copy the files that are actually needed. :term:`CPP` @@ -1435,7 +1435,7 @@ system and gives an overview of their function and contents. variable and thus made visible to the software being built during the compilation step. - Default initialization for ``CPPFLAGS`` varies depending on what is + Default initialization for :term:`CPPFLAGS` varies depending on what is being built: - :term:`TARGET_CPPFLAGS` when building for @@ -1449,12 +1449,12 @@ system and gives an overview of their function and contents. :term:`CROSS_COMPILE` The toolchain binary prefix for the target tools. The - ``CROSS_COMPILE`` variable is the same as the + :term:`CROSS_COMPILE` variable is the same as the :term:`TARGET_PREFIX` variable. .. note:: - The OpenEmbedded build system sets the ``CROSS_COMPILE`` + The OpenEmbedded build system sets the :term:`CROSS_COMPILE` variable only in certain contexts (e.g. when building for kernel and kernel module recipes). @@ -1470,7 +1470,7 @@ system and gives an overview of their function and contents. exported to an environment variable and thus made visible to the software being built during the compilation step. - Default initialization for ``CXXFLAGS`` varies depending on what is + Default initialization for :term:`CXXFLAGS` varies depending on what is being built: - :term:`TARGET_CXXFLAGS` when building for @@ -1505,7 +1505,7 @@ system and gives an overview of their function and contents. :term:`DEBIAN_NOAUTONAME` When the :ref:`debian ` class is inherited, - which is the default behavior, ``DEBIAN_NOAUTONAME`` specifies a + which is the default behavior, :term:`DEBIAN_NOAUTONAME` specifies a particular package should not be renamed according to Debian library package naming. You must use the package name as an override when you set this variable. Here is an example from the ``fontconfig`` recipe:: @@ -1514,7 +1514,7 @@ system and gives an overview of their function and contents. :term:`DEBIANNAME` When the :ref:`debian ` class is inherited, - which is the default behavior, ``DEBIANNAME`` allows you to override + which is the default behavior, :term:`DEBIANNAME` allows you to override the library name for an individual package. Overriding the library name in these cases is rare. You must use the package name as an override when you set this variable. Here is an example from the @@ -1542,14 +1542,14 @@ system and gives an overview of their function and contents. .. note:: - The bias provided by ``DEFAULT_PREFERENCE`` is weak and is overridden + The bias provided by :term:`DEFAULT_PREFERENCE` is weak and is overridden by :term:`BBFILE_PRIORITY` if that variable is different between two layers that contain different versions of the same recipe. :term:`DEFAULTTUNE` The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system. The - ``DEFAULTTUNE`` helps define + :term:`DEFAULTTUNE` helps define :term:`TUNE_FEATURES`. The default tune is either implicitly or explicitly set by the @@ -1574,17 +1574,17 @@ system and gives an overview of their function and contents. :ref:`ref-tasks-configure` task for ``foo`` runs. This mechanism is implemented by having ``do_configure`` depend on the :ref:`ref-tasks-populate_sysroot` task of - each recipe listed in ``DEPENDS``, through a + each recipe listed in :term:`DEPENDS`, through a ``[``\ :ref:`deptask `\ ``]`` declaration in the :ref:`base ` class. .. note:: - It seldom is necessary to reference, for example, ``STAGING_DIR_HOST`` + It seldom is necessary to reference, for example, :term:`STAGING_DIR_HOST` explicitly. The standard classes and build-related variables are configured to automatically use the appropriate staging sysroots. - As another example, ``DEPENDS`` can also be used to add utilities + As another example, :term:`DEPENDS` can also be used to add utilities that run on the build machine during the build. For example, a recipe that makes use of a code generator built by the recipe ``codegen`` might have the following:: @@ -1597,15 +1597,15 @@ system and gives an overview of their function and contents. .. note:: - - ``DEPENDS`` is a list of recipe names. Or, to be more precise, + - :term:`DEPENDS` is a list of recipe names. Or, to be more precise, it is a list of :term:`PROVIDES` names, which usually match recipe names. Putting a package name such as - "foo-dev" in ``DEPENDS`` does not make sense. Use "foo" + "foo-dev" in :term:`DEPENDS` does not make sense. Use "foo" instead, as this will put files from all the packages that make up ``foo``, which includes those from ``foo-dev``, into the sysroot. - - One recipe having another recipe in ``DEPENDS`` does not by + - One recipe having another recipe in :term:`DEPENDS` does not by itself add any runtime dependencies between the packages produced by the two recipes. However, as explained in the ":ref:`overview-manual/concepts:automatically added runtime dependencies`" @@ -1613,12 +1613,12 @@ system and gives an overview of their function and contents. runtime dependencies will often be added automatically, meaning ``DEPENDS`` alone is sufficient for most recipes. - - Counterintuitively, ``DEPENDS`` is often necessary even for + - Counterintuitively, :term:`DEPENDS` is often necessary even for recipes that install precompiled components. For example, if ``libfoo`` is a precompiled library that links against ``libbar``, then linking against ``libfoo`` requires both ``libfoo`` and ``libbar`` to be available in the sysroot. - Without a ``DEPENDS`` from the recipe that installs ``libfoo`` + Without a :term:`DEPENDS` from the recipe that installs ``libfoo`` to the recipe that installs ``libbar``, other recipes might fail to link against ``libfoo``. @@ -1658,7 +1658,7 @@ system and gives an overview of their function and contents. DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb" The :ref:`package_deb ` class uses the - ``DEPLOY_DIR_DEB`` variable to make sure the + :term:`DEPLOY_DIR_DEB` variable to make sure the :ref:`ref-tasks-package_write_deb` task writes Debian packages into the appropriate folder. For more information on how packaging works, see the @@ -1673,6 +1673,13 @@ system and gives an overview of their function and contents. resides within the :term:`Build Directory` as ``${DEPLOY_DIR}/images/${MACHINE}/``. + It must not be used directly in recipes when deploying files. Instead, + it's only useful when a recipe needs to "read" a file already deployed + by a dependency. So, it should be filled with the contents of + :term:`DEPLOYDIR` by the :ref:`deploy ` class or + with the contents of :term:`IMGDEPLOYDIR` by the :ref:`image + ` class. + For more information on the structure of the Build Directory, see ":ref:`ref-manual/structure:the build directory - \`\`build/\`\``" section. For more detail on the contents of the ``deploy`` directory, see the @@ -1693,7 +1700,7 @@ system and gives an overview of their function and contents. DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk" The :ref:`package_ipk ` class uses the - ``DEPLOY_DIR_IPK`` variable to make sure the + :term:`DEPLOY_DIR_IPK` variable to make sure the :ref:`ref-tasks-package_write_ipk` task writes IPK packages into the appropriate folder. For more information on how packaging works, see the @@ -1713,7 +1720,7 @@ system and gives an overview of their function and contents. DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm" The :ref:`package_rpm ` class uses the - ``DEPLOY_DIR_RPM`` variable to make sure the + :term:`DEPLOY_DIR_RPM` variable to make sure the :ref:`ref-tasks-package_write_rpm` task writes RPM packages into the appropriate folder. For more information on how packaging works, see the @@ -1733,7 +1740,7 @@ system and gives an overview of their function and contents. DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar" The :ref:`package_tar ` class uses the - ``DEPLOY_DIR_TAR`` variable to make sure the + :term:`DEPLOY_DIR_TAR` variable to make sure the :ref:`ref-tasks-package_write_tar` task writes TAR packages into the appropriate folder. For more information on how packaging works, see the @@ -1742,19 +1749,19 @@ system and gives an overview of their function and contents. :term:`DEPLOYDIR` When inheriting the :ref:`deploy ` class, the - ``DEPLOYDIR`` points to a temporary work area for deployed files that + :term:`DEPLOYDIR` points to a temporary work area for deployed files that is set in the ``deploy`` class as follows:: DEPLOYDIR = "${WORKDIR}/deploy-${PN}" Recipes inheriting the ``deploy`` class should copy files to be - deployed into ``DEPLOYDIR``, and the class will take care of copying + deployed into :term:`DEPLOYDIR`, and the class will take care of copying them into :term:`DEPLOY_DIR_IMAGE` afterwards. :term:`DESCRIPTION` The package description used by package managers. If not set, - ``DESCRIPTION`` takes the value of the :term:`SUMMARY` + :term:`DESCRIPTION` takes the value of the :term:`SUMMARY` variable. :term:`DISTRO` @@ -1762,26 +1769,26 @@ system and gives an overview of their function and contents. of the distribution, see the :term:`DISTRO_NAME` variable. - The ``DISTRO`` variable corresponds to a distribution configuration + The :term:`DISTRO` variable corresponds to a distribution configuration file whose root name is the same as the variable's argument and whose filename extension is ``.conf``. For example, the distribution configuration file for the Poky distribution is named ``poky.conf`` and resides in the ``meta-poky/conf/distro`` directory of the :term:`Source Directory`. - Within that ``poky.conf`` file, the ``DISTRO`` variable is set as + Within that ``poky.conf`` file, the :term:`DISTRO` variable is set as follows:: DISTRO = "poky" Distribution configuration files are located in a ``conf/distro`` directory within the :term:`Metadata` that contains the - distribution configuration. The value for ``DISTRO`` must not contain + distribution configuration. The value for :term:`DISTRO` must not contain spaces, and is typically all lower-case. .. note:: - If the ``DISTRO`` variable is blank, a set of default configurations + If the :term:`DISTRO` variable is blank, a set of default configurations are used, which are specified within ``meta/conf/distro/defaultsetup.conf`` also in the Source Directory. @@ -1808,11 +1815,11 @@ system and gives an overview of their function and contents. configuration file. In most cases, the presence or absence of a feature in - ``DISTRO_FEATURES`` is translated to the appropriate option supplied + :term:`DISTRO_FEATURES` is translated to the appropriate option supplied to the configure script during the :ref:`ref-tasks-configure` task for recipes that optionally support the feature. For example, specifying "x11" in - ``DISTRO_FEATURES``, causes every piece of software built for the + :term:`DISTRO_FEATURES`, causes every piece of software built for the target that can optionally support X11 to have its X11 support enabled. @@ -1821,8 +1828,8 @@ system and gives an overview of their function and contents. provide with this variable, see the ":ref:`ref-features-distro`" section. :term:`DISTRO_FEATURES_BACKFILL` - Features to be added to ``DISTRO_FEATURES`` if not also present in - ``DISTRO_FEATURES_BACKFILL_CONSIDERED``. + Features to be added to :term:`DISTRO_FEATURES` if not also present in + :term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`. This variable is set in the ``meta/conf/bitbake.conf`` file. It is not intended to be user-configurable. It is best to just reference @@ -1831,8 +1838,8 @@ system and gives an overview of their function and contents. for more information. :term:`DISTRO_FEATURES_BACKFILL_CONSIDERED` - Features from ``DISTRO_FEATURES_BACKFILL`` that should not be - backfilled (i.e. added to ``DISTRO_FEATURES``) during the build. See + Features from :term:`DISTRO_FEATURES_BACKFILL` that should not be + backfilled (i.e. added to :term:`DISTRO_FEATURES`) during the build. See the ":ref:`ref-features-backfill`" section for more information. :term:`DISTRO_FEATURES_DEFAULT` @@ -1844,14 +1851,14 @@ system and gives an overview of their function and contents. able to reuse the default :term:`DISTRO_FEATURES` options without the need to write out the full set. Here is an example that uses - ``DISTRO_FEATURES_DEFAULT`` from a custom distro configuration file:: + :term:`DISTRO_FEATURES_DEFAULT` from a custom distro configuration file:: DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature" :term:`DISTRO_FEATURES_FILTER_NATIVE` Specifies a list of features that if present in the target :term:`DISTRO_FEATURES` value should be - included in ``DISTRO_FEATURES`` when building native recipes. This + included in :term:`DISTRO_FEATURES` when building native recipes. This variable is used in addition to the features filtered using the :term:`DISTRO_FEATURES_NATIVE` variable. @@ -1859,7 +1866,7 @@ system and gives an overview of their function and contents. :term:`DISTRO_FEATURES_FILTER_NATIVESDK` Specifies a list of features that if present in the target :term:`DISTRO_FEATURES` value should be - included in ``DISTRO_FEATURES`` when building nativesdk recipes. This + included in :term:`DISTRO_FEATURES` when building nativesdk recipes. This variable is used in addition to the features filtered using the :term:`DISTRO_FEATURES_NATIVESDK` variable. @@ -1884,14 +1891,14 @@ system and gives an overview of their function and contents. The long name of the distribution. For information on the short name of the distribution, see the :term:`DISTRO` variable. - The ``DISTRO_NAME`` variable corresponds to a distribution + The :term:`DISTRO_NAME` variable corresponds to a distribution configuration file whose root name is the same as the variable's argument and whose filename extension is ``.conf``. For example, the distribution configuration file for the Poky distribution is named ``poky.conf`` and resides in the ``meta-poky/conf/distro`` directory of the :term:`Source Directory`. - Within that ``poky.conf`` file, the ``DISTRO_NAME`` variable is set + Within that ``poky.conf`` file, the :term:`DISTRO_NAME` variable is set as follows:: DISTRO_NAME = "Poky (Yocto Project Reference Distro)" @@ -1902,7 +1909,7 @@ system and gives an overview of their function and contents. .. note:: - If the ``DISTRO_NAME`` variable is blank, a set of default + If the :term:`DISTRO_NAME` variable is blank, a set of default configurations are used, which are specified within ``meta/conf/distro/defaultsetup.conf`` also in the Source Directory. @@ -1914,10 +1921,10 @@ system and gives an overview of their function and contents. distribution. By default, this list includes the value of :term:`DISTRO`. - You can extend ``DISTROOVERRIDES`` to add extra overrides that should + You can extend :term:`DISTROOVERRIDES` to add extra overrides that should apply to the distribution. - The underlying mechanism behind ``DISTROOVERRIDES`` is simply that it + The underlying mechanism behind :term:`DISTROOVERRIDES` is simply that it is included in the default value of :term:`OVERRIDES`. @@ -1936,13 +1943,13 @@ system and gives an overview of their function and contents. :term:`DL_DIR` The central download directory used by the build process to store - downloads. By default, ``DL_DIR`` gets files suitable for mirroring + downloads. By default, :term:`DL_DIR` gets files suitable for mirroring for everything except Git repositories. If you want tarballs of Git repositories, use the :term:`BB_GENERATE_MIRROR_TARBALLS` variable. - You can set this directory by defining the ``DL_DIR`` variable in the + 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`. @@ -1956,7 +1963,7 @@ system and gives an overview of their function and contents. During a first build, the system downloads many different source code tarballs from various upstream projects. Downloading can take a while, particularly if your network connection is slow. Tarballs are - all stored in the directory defined by ``DL_DIR`` and the build + all stored in the directory defined by :term:`DL_DIR` and the build system looks there first to find source tarballs. .. note:: @@ -1985,7 +1992,7 @@ system and gives an overview of their function and contents. :term:`EFI_PROVIDER` When building bootable images (i.e. where ``hddimg``, ``iso``, or ``wic.vmdk`` is in :term:`IMAGE_FSTYPES`), the - ``EFI_PROVIDER`` variable specifies the EFI bootloader to use. The + :term:`EFI_PROVIDER` variable specifies the EFI bootloader to use. The default is "grub-efi", but "systemd-boot" can be used instead. See the :ref:`systemd-boot ` and @@ -2006,7 +2013,7 @@ system and gives an overview of their function and contents. database. By default, the value of this variable is ``${``\ :term:`LOG_DIR`\ ``}/error-report``. - You can set ``ERR_REPORT_DIR`` to the path you want the error + You can set :term:`ERR_REPORT_DIR` to the path you want the error reporting tool to store the debug files as follows in your ``local.conf`` file:: @@ -2031,11 +2038,11 @@ system and gives an overview of their function and contents. libraries resolver might implicitly define some dependencies between packages. - The ``EXCLUDE_FROM_SHLIBS`` variable is similar to the + The :term:`EXCLUDE_FROM_SHLIBS` variable is similar to the :term:`PRIVATE_LIBS` variable, which excludes a package's particular libraries only and not the whole package. - Use the ``EXCLUDE_FROM_SHLIBS`` variable by setting it to "1" for a + Use the :term:`EXCLUDE_FROM_SHLIBS` variable by setting it to "1" for a particular package:: EXCLUDE_FROM_SHLIBS = "1" @@ -2051,18 +2058,18 @@ system and gives an overview of their function and contents. .. note:: - Recipes added to ``EXCLUDE_FROM_WORLD`` may still be built during a + Recipes added to :term:`EXCLUDE_FROM_WORLD` may still be built during a world build in order to satisfy dependencies of other recipes. Adding - a recipe to ``EXCLUDE_FROM_WORLD`` only ensures that the recipe is not + a recipe to :term:`EXCLUDE_FROM_WORLD` only ensures that the recipe is not explicitly added to the list of build targets in a world build. :term:`EXTENDPE` Used with file and pathnames to create a prefix for a recipe's - version based on the recipe's :term:`PE` value. If ``PE`` - is set and greater than zero for a recipe, ``EXTENDPE`` becomes that - value (e.g if ``PE`` is equal to "1" then ``EXTENDPE`` becomes "1"). - If a recipe's ``PE`` is not set (the default) or is equal to zero, - ``EXTENDPE`` becomes "". + version based on the recipe's :term:`PE` value. If :term:`PE` + is set and greater than zero for a recipe, :term:`EXTENDPE` becomes that + value (e.g if :term:`PE` is equal to "1" then :term:`EXTENDPE` becomes "1"). + If a recipe's :term:`PE` is not set (the default) or is equal to zero, + :term:`EXTENDPE` becomes "". See the :term:`STAMP` variable for an example. @@ -2078,11 +2085,11 @@ system and gives an overview of their function and contents. manager to upgrade these types of packages in lock-step. :term:`EXTERNAL_KERNEL_TOOLS` - When set, the ``EXTERNAL_KERNEL_TOOLS`` variable indicates that these + When set, the :term:`EXTERNAL_KERNEL_TOOLS` variable indicates that these tools are not in the source tree. When kernel tools are available in the tree, they are preferred over - any externally installed tools. Setting the ``EXTERNAL_KERNEL_TOOLS`` + any externally installed tools. Setting the :term:`EXTERNAL_KERNEL_TOOLS` variable tells the OpenEmbedded build system to prefer the installed external tools. See the :ref:`kernel-yocto ` class in @@ -2117,7 +2124,7 @@ system and gives an overview of their function and contents. :term:`EXTRA_AUTORECONF` For recipes inheriting the :ref:`autotools ` - class, you can use ``EXTRA_AUTORECONF`` to specify extra options to + class, you can use :term:`EXTRA_AUTORECONF` to specify extra options to pass to the ``autoreconf`` command that is executed during the :ref:`ref-tasks-configure` task. @@ -2179,7 +2186,7 @@ system and gives an overview of their function and contents. installing into the root filesystem. Sometimes a recipe is required to build the final image but is not - needed in the root filesystem. You can use the ``EXTRA_IMAGEDEPENDS`` + needed in the root filesystem. You can use the :term:`EXTRA_IMAGEDEPENDS` variable to list these recipes and thus specify the dependencies. A typical example is a required bootloader in a machine configuration. @@ -2210,12 +2217,12 @@ system and gives an overview of their function and contents. :term:`EXTRA_OEMAKE` Additional GNU ``make`` options. - Because the ``EXTRA_OEMAKE`` defaults to "", you need to set the + Because the :term:`EXTRA_OEMAKE` defaults to "", you need to set the variable to specify any required GNU options. :term:`PARALLEL_MAKE` and :term:`PARALLEL_MAKEINST` also make use of - ``EXTRA_OEMAKE`` to pass the required flags. + :term:`EXTRA_OEMAKE` to pass the required flags. :term:`EXTRA_OESCONS` When inheriting the :ref:`scons ` class, this @@ -2231,7 +2238,7 @@ system and gives an overview of their function and contents. group configurations to a specific recipe. The set list of commands you can configure using the - ``EXTRA_USERS_PARAMS`` is shown in the ``extrausers`` class. These + :term:`EXTRA_USERS_PARAMS` is shown in the ``extrausers`` class. These commands map to the normal Unix commands of the same names:: # EXTRA_USERS_PARAMS = "\ @@ -2257,19 +2264,19 @@ system and gives an overview of their function and contents. :term:`FEATURE_PACKAGES` Defines one or more packages to include in an image when a specific item is included in :term:`IMAGE_FEATURES`. - When setting the value, ``FEATURE_PACKAGES`` should have the name of + When setting the value, :term:`FEATURE_PACKAGES` should have the name of the feature item as an override. Here is an example:: FEATURE_PACKAGES_widget = "package1 package2" - In this example, if "widget" were added to ``IMAGE_FEATURES``, + In this example, if "widget" were added to :term:`IMAGE_FEATURES`, package1 and package2 would be included in the image. .. note:: - Packages installed by features defined through ``FEATURE_PACKAGES`` + Packages installed by features defined through :term:`FEATURE_PACKAGES` are often package groups. While similarly named, you should not - confuse the ``FEATURE_PACKAGES`` variable with package groups, which + confuse the :term:`FEATURE_PACKAGES` variable with package groups, which are discussed elsewhere in the documentation. :term:`FEED_DEPLOYDIR_BASE_URI` @@ -2294,7 +2301,7 @@ system and gives an overview of their function and contents. :term:`PACKAGES` variable lists the packages generated by a recipe. - To use the ``FILES`` variable, provide a package name override that + To use the :term:`FILES` variable, provide a package name override that identifies the resulting package. Then, provide a space-separated list of files or paths that identify the files you want included as part of the resulting package. Here is an example:: @@ -2309,7 +2316,7 @@ system and gives an overview of their function and contents. syntax. For details on the syntax, see the documentation by following the previous link. - - When specifying paths as part of the ``FILES`` variable, it is + - When specifying paths as part of the :term:`FILES` variable, it is good practice to use appropriate path variables. For example, use ``${sysconfdir}`` rather than ``/etc``, or ``${bindir}`` rather than ``/usr/bin``. You can find a list of these @@ -2318,7 +2325,7 @@ system and gives an overview of their function and contents. find the default values of the various ``FILES_*`` variables in this file. - If some of the files you provide with the ``FILES`` variable are + If some of the files you provide with the :term:`FILES` variable are editable and you know they should not be overwritten during the package update process by the Package Management System (PMS), you can identify these files so that the PMS will not overwrite them. See @@ -2328,7 +2335,7 @@ system and gives an overview of their function and contents. :term:`FILES_SOLIBSDEV` Defines the file specification to match :term:`SOLIBSDEV`. In other words, - ``FILES_SOLIBSDEV`` defines the full path name of the development + :term:`FILES_SOLIBSDEV` defines the full path name of the development symbolic link (symlink) for shared libraries on the target platform. The following statement from the ``bitbake.conf`` shows how it is @@ -2341,11 +2348,11 @@ system and gives an overview of their function and contents. looking for files and patches as it processes recipes and append files. The default directories BitBake uses when it processes recipes are initially defined by the :term:`FILESPATH` - variable. You can extend ``FILESPATH`` variable by using - ``FILESEXTRAPATHS``. + variable. You can extend :term:`FILESPATH` variable by using + :term:`FILESEXTRAPATHS`. Best practices dictate that you accomplish this by using - ``FILESEXTRAPATHS`` from within a ``.bbappend`` file and that you + :term:`FILESEXTRAPATHS` from within a ``.bbappend`` file and that you prepend paths as follows:: FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" @@ -2356,7 +2363,7 @@ system and gives an overview of their function and contents. .. note:: - When extending ``FILESEXTRAPATHS``, be sure to use the immediate + When extending :term:`FILESEXTRAPATHS`, be sure to use the immediate expansion (``:=``) operator. Immediate expansion makes sure that BitBake evaluates :term:`THISDIR` at the time the directive is encountered rather than at some later time when @@ -2373,7 +2380,7 @@ system and gives an overview of their function and contents. FILESEXTRAPATHS_prepend := "${THISDIR}/files:" In this example, the build system extends the - ``FILESPATH`` variable to include a directory named ``files`` that is + :term:`FILESPATH` variable to include a directory named ``files`` that is in the same directory as the corresponding append file. This next example specifically adds three paths:: @@ -2396,7 +2403,7 @@ system and gives an overview of their function and contents. .. note:: For a layer that supports a single BSP, the override could just be - the value of ``MACHINE``. + the value of :term:`MACHINE`. By prepending paths in ``.bbappend`` files, you allow multiple append files that reside in different layers but are used for the same @@ -2405,7 +2412,7 @@ system and gives an overview of their function and contents. :term:`FILESOVERRIDES` A subset of :term:`OVERRIDES` used by the OpenEmbedded build system for creating - :term:`FILESPATH`. The ``FILESOVERRIDES`` variable + :term:`FILESPATH`. The :term:`FILESOVERRIDES` variable uses overrides to automatically extend the :term:`FILESPATH` variable. For an example of how that works, see the :term:`FILESPATH` variable @@ -2414,13 +2421,13 @@ system and gives an overview of their function and contents. ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax (overrides)`" section of the BitBake User Manual. - By default, the ``FILESOVERRIDES`` variable is defined as:: + By default, the :term:`FILESOVERRIDES` variable is defined as:: FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}" .. note:: - Do not hand-edit the ``FILESOVERRIDES`` variable. The values match up + Do not hand-edit the :term:`FILESOVERRIDES` variable. The values match up with expected overrides and are used in an expected manner by the build system. @@ -2429,11 +2436,11 @@ system and gives an overview of their function and contents. when searching for patches and files. During the build process, BitBake searches each directory in - ``FILESPATH`` in the specified order when looking for files and + :term:`FILESPATH` in the specified order when looking for files and patches specified by each ``file://`` URI in a recipe's :term:`SRC_URI` statements. - The default value for the ``FILESPATH`` variable is defined in the + The default value for the :term:`FILESPATH` variable is defined in the ``base.bbclass`` class found in ``meta/classes`` in the :term:`Source Directory`:: @@ -2441,22 +2448,22 @@ system and gives an overview of their function and contents. "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}" The - ``FILESPATH`` variable is automatically extended using the overrides + :term:`FILESPATH` variable is automatically extended using the overrides from the :term:`FILESOVERRIDES` variable. .. note:: - - Do not hand-edit the ``FILESPATH`` variable. If you want the + - Do not hand-edit the :term:`FILESPATH` variable. If you want the build system to look in directories other than the defaults, - extend the ``FILESPATH`` variable by using the + extend the :term:`FILESPATH` variable by using the :term:`FILESEXTRAPATHS` variable. - - Be aware that the default ``FILESPATH`` directories do not map + - Be aware that the default :term:`FILESPATH` directories do not map to directories in custom layers where append files (``.bbappend``) are used. If you want the build system to find patches or files that reside with your append files, you need - to extend the ``FILESPATH`` variable by using the - ``FILESEXTRAPATHS`` variable. + to extend the :term:`FILESPATH` variable by using the + :term:`FILESEXTRAPATHS` variable. You can take advantage of this searching behavior in useful ways. For example, consider a case where there is the following directory structure @@ -2466,10 +2473,10 @@ system and gives an overview of their function and contents. files/MACHINEA/defconfig files/MACHINEB/defconfig - Also in the example, the ``SRC_URI`` statement contains + Also in the example, the :term:`SRC_URI` statement contains "file://defconfig". Given this scenario, you can set :term:`MACHINE` to "MACHINEA" and cause the build - system to use files from ``files/MACHINEA``. Set ``MACHINE`` to + system to use files from ``files/MACHINEA``. Set :term:`MACHINE` to "MACHINEB" and the build system uses files from ``files/MACHINEB``. Finally, for any machine other than "MACHINEA" and "MACHINEB", the build system uses files from ``files/defconfig``. @@ -2494,7 +2501,7 @@ system and gives an overview of their function and contents. permissions setting table, you should place it in your layer or the distro's layer. - You define the ``FILESYSTEM_PERMS_TABLES`` variable in the + 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 @@ -2513,7 +2520,7 @@ system and gives an overview of their function and contents. :term:`FIT_GENERATE_KEYS` Decides whether to generate the keys for signing fitImage if they - don't already exist. The keys are created in ``UBOOT_SIGN_KEYDIR``. + don't already exist. The keys are created in :term:`UBOOT_SIGN_KEYDIR`. The default value is 0. :term:`FIT_HASH_ALG` @@ -2594,7 +2601,7 @@ system and gives an overview of their function and contents. :term:`GCCVERSION` Specifies the default version of the GNU C Compiler (GCC) used for - compilation. By default, ``GCCVERSION`` is set to "8.x" in the + compilation. By default, :term:`GCCVERSION` is set to "8.x" in the ``meta/conf/distro/include/tcmode-default.inc`` include file:: GCCVERSION ?= "8.%" @@ -2618,7 +2625,7 @@ system and gives an overview of their function and contents. If you specifically remove the locale ``en_US.UTF-8``, you must set :term:`IMAGE_LINGUAS` appropriately. - You can set ``GLIBC_GENERATE_LOCALES`` in your ``local.conf`` file. + You can set :term:`GLIBC_GENERATE_LOCALES` in your ``local.conf`` file. By default, all locales are generated. :: @@ -2660,7 +2667,7 @@ system and gives an overview of their function and contents. configuration. Use a semi-colon character (``;``) to separate multiple options. - The ``GRUB_OPTS`` variable is optional. See the + The :term:`GRUB_OPTS` variable is optional. See the :ref:`grub-efi ` class for more information on how this variable is used. @@ -2668,7 +2675,7 @@ system and gives an overview of their function and contents. Specifies the timeout before executing the default ``LABEL`` in the GNU GRand Unified Bootloader (GRUB). - The ``GRUB_TIMEOUT`` variable is optional. See the + The :term:`GRUB_TIMEOUT` variable is optional. See the :ref:`grub-efi ` class for more information on how this variable is used. @@ -2702,7 +2709,7 @@ system and gives an overview of their function and contents. Specifies architecture-specific compiler flags that are passed to the C compiler. - Default initialization for ``HOST_CC_ARCH`` varies depending on what + Default initialization for :term:`HOST_CC_ARCH` varies depending on what is being built: - :term:`TARGET_CC_ARCH` when building for the @@ -2722,7 +2729,7 @@ system and gives an overview of their function and contents. "linux-musleabi" values possible. :term:`HOST_PREFIX` - Specifies the prefix for the cross-compile toolchain. ``HOST_PREFIX`` + Specifies the prefix for the cross-compile toolchain. :term:`HOST_PREFIX` is normally the same as :term:`TARGET_PREFIX`. :term:`HOST_SYS` @@ -2751,7 +2758,7 @@ system and gives an overview of their function and contents. A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks. Using this filter helps reduce the possibility of host contamination. If a tool - specified in the value of ``HOSTTOOLS`` is not found on the build + specified in the value of :term:`HOSTTOOLS` is not found on the build host, the OpenEmbedded build system produces an error and the build is not started. @@ -2764,11 +2771,11 @@ system and gives an overview of their function and contents. filter helps reduce the possibility of host contamination. Unlike :term:`HOSTTOOLS`, the OpenEmbedded build system does not produce an error if a tool specified in the value of - ``HOSTTOOLS_NONFATAL`` is not found on the build host. Thus, you can - use ``HOSTTOOLS_NONFATAL`` to filter optional host tools. + :term:`HOSTTOOLS_NONFATAL` is not found on the build host. Thus, you can + use :term:`HOSTTOOLS_NONFATAL` to filter optional host tools. :term:`HOST_VENDOR` - Specifies the name of the vendor. ``HOST_VENDOR`` is normally the + Specifies the name of the vendor. :term:`HOST_VENDOR` is normally the same as :term:`TARGET_VENDOR`. :term:`ICECC_DISABLED` @@ -2813,12 +2820,12 @@ system and gives an overview of their function and contents. network lag, available memory, and existing machine loads can all affect build time. Consequently, unlike the :term:`PARALLEL_MAKE` variable, there is no - rule-of-thumb for setting ``ICECC_PARALLEL_MAKE`` to achieve optimal + rule-of-thumb for setting :term:`ICECC_PARALLEL_MAKE` to achieve optimal performance. - If you do not set ``ICECC_PARALLEL_MAKE``, the build system does not + If you do not set :term:`ICECC_PARALLEL_MAKE`, the build system does not use it (i.e. the system does not detect and assign the number of - cores as is done with ``PARALLEL_MAKE``). + cores as is done with :term:`PARALLEL_MAKE`). :term:`ICECC_PATH` The location of the ``icecc`` binary. You can set this variable in @@ -2931,7 +2938,7 @@ system and gives an overview of their function and contents. this variable to specify the list of classes that register the different types of images the OpenEmbedded build system creates. - The default value for ``IMAGE_CLASSES`` is ``image_types``. You can + The default value for :term:`IMAGE_CLASSES` is ``image_types``. You can set this variable in your ``local.conf`` or in a distribution configuration file. @@ -2945,8 +2952,8 @@ system and gives an overview of their function and contents. ``btrfs``, and so forth). When setting this variable, you should use an override for the associated type. Here is an example:: - IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} \ - --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \ + IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime \ + --output=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.jffs2 \ ${EXTRA_IMAGECMD}" You typically do not need to set this variable unless you are adding @@ -2958,7 +2965,7 @@ system and gives an overview of their function and contents. Specifies one or more files that contain custom device tables that are passed to the ``makedevs`` command as part of creating an image. These files list basic device nodes that should be created under - ``/dev`` within the image. If ``IMAGE_DEVICE_TABLES`` is not set, + ``/dev`` within the image. If :term:`IMAGE_DEVICE_TABLES` is not set, ``files/device_table-minimal.txt`` is used, which is located by :term:`BBPATH`. For details on how you should write device table files, see ``meta/files/device_table-minimal.txt`` as an @@ -2986,7 +2993,7 @@ system and gives an overview of their function and contents. :term:`IMAGE_FSTYPES` Specifies the formats the OpenEmbedded build system uses during the build when creating the root filesystem. For example, setting - ``IMAGE_FSTYPES`` as follows causes the build system to create root + :term:`IMAGE_FSTYPES` as follows causes the build system to create root filesystems using two formats: ``.ext3`` and ``.tar.bz2``:: IMAGE_FSTYPES = "ext3 tar.bz2" @@ -2997,25 +3004,25 @@ system and gives an overview of their function and contents. .. note:: - If an image recipe uses the "inherit image" line and you are - setting ``IMAGE_FSTYPES`` inside the recipe, you must set + setting :term:`IMAGE_FSTYPES` inside the recipe, you must set ``IMAGE_FSTYPES`` prior to using the "inherit image" line. - Due to the way the OpenEmbedded build system processes this variable, you cannot update its contents by using ``_append`` or ``_prepend``. You must use the ``+=`` operator to add one or - more options to the ``IMAGE_FSTYPES`` variable. + more options to the :term:`IMAGE_FSTYPES` variable. :term:`IMAGE_INSTALL` Used by recipes to specify the packages to install into an image through the :ref:`image ` class. Use the - ``IMAGE_INSTALL`` variable with care to avoid ordering issues. + :term:`IMAGE_INSTALL` variable with care to avoid ordering issues. - Image recipes set ``IMAGE_INSTALL`` to specify the packages to + Image recipes set :term:`IMAGE_INSTALL` to specify the packages to install into an image through ``image.bbclass``. Additionally, there are "helper" classes such as the :ref:`core-image ` class which can - take lists used with ``IMAGE_FEATURES`` and turn them into - auto-generated entries in ``IMAGE_INSTALL`` in addition to its + take lists used with :term:`IMAGE_FEATURES` and turn them into + auto-generated entries in :term:`IMAGE_INSTALL` in addition to its default contents. When you use this variable, it is best to use it as follows:: @@ -3030,24 +3037,24 @@ system and gives an overview of their function and contents. - When working with a :ref:`core-image-minimal-initramfs ` - image, do not use the ``IMAGE_INSTALL`` variable to specify + image, do not use the :term:`IMAGE_INSTALL` variable to specify packages for installation. Instead, use the :term:`PACKAGE_INSTALL` variable, which allows the initial RAM filesystem (initramfs) recipe to use a - fixed set of packages and not be affected by ``IMAGE_INSTALL``. + fixed set of packages and not be affected by :term:`IMAGE_INSTALL`. For information on creating an initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section in the Yocto Project Development Tasks Manual. - - Using ``IMAGE_INSTALL`` with the + - Using :term:`IMAGE_INSTALL` with the :ref:`+= ` BitBake operator within the ``/conf/local.conf`` file or from within an image recipe is not recommended. Use of this operator in these ways can cause ordering issues. Since - ``core-image.bbclass`` sets ``IMAGE_INSTALL`` to a default + ``core-image.bbclass`` sets :term:`IMAGE_INSTALL` to a default value using the :ref:`?= ` - operator, using a ``+=`` operation against ``IMAGE_INSTALL`` + operator, using a ``+=`` operation against :term:`IMAGE_INSTALL` results in unexpected behavior when used within ``conf/local.conf``. Furthermore, the same operation from within an image recipe may or may not succeed depending on the @@ -3058,7 +3065,7 @@ system and gives an overview of their function and contents. Specifies the list of locales to install into the image during the root filesystem construction process. The OpenEmbedded build system automatically splits locale files, which are used for localization, - into separate packages. Setting the ``IMAGE_LINGUAS`` variable + into separate packages. Setting the :term:`IMAGE_LINGUAS` variable ensures that any locale packages that correspond to packages already selected for installation into the image are also installed. Here is an example:: @@ -3092,13 +3099,13 @@ system and gives an overview of their function and contents. packagename packagearch version - The :ref:`image ` class defines the manifest + The :ref:`rootfs-postcommands ` class defines the manifest file as follows:: - IMAGE_MANIFEST ="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest" + IMAGE_MANIFEST ="${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.manifest" The location is - derived using the :term:`DEPLOY_DIR_IMAGE` + derived using the :term:`IMGDEPLOYDIR` and :term:`IMAGE_NAME` variables. You can find information on how the image is created in the ":ref:`overview-manual/concepts:image generation`" section in the Yocto Project Overview and Concepts Manual. @@ -3122,7 +3129,7 @@ system and gives an overview of their function and contents. Defines a multiplier that the build system applies to the initial image size for cases when the multiplier times the returned disk usage value for the image is greater than the sum of - ``IMAGE_ROOTFS_SIZE`` and ``IMAGE_ROOTFS_EXTRA_SPACE``. The result of + :term:`IMAGE_ROOTFS_SIZE` and :term:`IMAGE_ROOTFS_EXTRA_SPACE`. The result of the multiplier applied to the initial image size creates free disk space in the image as overhead. By default, the build process uses a multiplier of 1.3 for this variable. This default value results in @@ -3131,7 +3138,7 @@ system and gives an overview of their function and contents. post install scripts and the package management system uses disk space inside this overhead area. Consequently, the multiplier does not produce an image with all the theoretical free disk space. See - ``IMAGE_ROOTFS_SIZE`` for information on how the build system + :term:`IMAGE_ROOTFS_SIZE` for information on how the build system determines the overall image size. The default 30% free disk space typically gives the image enough room @@ -3143,7 +3150,7 @@ system and gives an overview of their function and contents. IMAGE_OVERHEAD_FACTOR = "1.5" Alternatively, you can ensure a specific amount of free disk space is - added to the image by using the ``IMAGE_ROOTFS_EXTRA_SPACE`` + added to the image by using the :term:`IMAGE_ROOTFS_EXTRA_SPACE` variable. :term:`IMAGE_PKGTYPE` @@ -3160,10 +3167,10 @@ system and gives an overview of their function and contents. recommended that you do not use it. The :ref:`populate_sdk_* ` and - :ref:`image ` classes use the ``IMAGE_PKGTYPE`` + :ref:`image ` classes use the :term:`IMAGE_PKGTYPE` for packaging up images and SDKs. - You should not set the ``IMAGE_PKGTYPE`` manually. Rather, the + You should not set the :term:`IMAGE_PKGTYPE` manually. Rather, the variable is set indirectly through the appropriate :ref:`package_* ` class using the :term:`PACKAGE_CLASSES` variable. The @@ -3218,7 +3225,7 @@ system and gives an overview of their function and contents. Defines additional free disk space created in the image in Kbytes. By default, this variable is set to "0". This free disk space is added to the image after the build system determines the image size as - described in ``IMAGE_ROOTFS_SIZE``. + described in :term:`IMAGE_ROOTFS_SIZE`. This variable is particularly useful when you want to ensure that a specific amount of free disk space is available on a device after an @@ -3279,6 +3286,9 @@ system and gives an overview of their function and contents. - cpio.lzma - cpio.xz - cramfs + - erofs + - erofs-lz4 + - erofs-lz4hc - ext2 - ext2.bz2 - ext2.gz @@ -3321,6 +3331,18 @@ system and gives an overview of their function and contents. desired, and this suffix would then be used consistently across the build artifacts. + :term:`IMGDEPLOYDIR` + When inheriting the :ref:`image ` class directly or + through the :ref:`core-image ` class, the + ``IMGDEPLOYDIR`` points to a temporary work area for deployed files + that is set in the ``image`` class as follows:: + + IMGDEPLOYDIR = "${WORKDIR}/deploy-${PN}-image-complete" + + Recipes inheriting the ``image`` class should copy files to be + deployed into ``IMGDEPLOYDIR``, and the class will take care of + copying them into :term:`DEPLOY_DIR_IMAGE` afterwards. + :term:`INC_PR` Helps define the recipe revision for recipes that share a common ``include`` file. You can think of this variable as part of the @@ -3336,16 +3358,16 @@ system and gives an overview of their function and contents. common functionality are upgraded to a new revision. A more efficient way of dealing with this situation is to set the - ``INC_PR`` variable inside the ``include`` files that the recipes - share and then expand the ``INC_PR`` variable within the recipes to + :term:`INC_PR` variable inside the ``include`` files that the recipes + share and then expand the :term:`INC_PR` variable within the recipes to help define the recipe revision. The following provides an example that shows how to use the - ``INC_PR`` variable given a common ``include`` file that defines the + :term:`INC_PR` variable given a common ``include`` file that defines the variable. Once the variable is defined in the ``include`` file, you - can use the variable to set the ``PR`` values in each recipe. You - will notice that when you set a recipe's ``PR`` you can provide more - granular revisioning by appending values to the ``INC_PR`` variable:: + can use the variable to set the :term:`PR` values in each recipe. You + will notice that when you set a recipe's :term:`PR` you can provide more + granular revisioning by appending values to the :term:`INC_PR` variable:: recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2" recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1" @@ -3356,7 +3378,7 @@ system and gives an overview of their function and contents. first line of the example establishes the baseline revision to be used for all recipes that use the ``include`` file. The remaining lines in the example are from individual recipes and show how the - ``PR`` value is set. + :term:`PR` value is set. :term:`INCOMPATIBLE_LICENSE` Specifies a space-separated list of license names (as they would @@ -3382,12 +3404,12 @@ system and gives an overview of their function and contents. It is possible to define a list of licenses that are allowed to be used instead of the licenses that are excluded. To do this, define a variable ``COMPATIBLE_LICENSES`` with the names of the licenses - that are allowed. Then define ``INCOMPATIBLE_LICENSE`` as:: + that are allowed. Then define :term:`INCOMPATIBLE_LICENSE` as:: INCOMPATIBLE_LICENSE = "${@' '.join(sorted(set(d.getVar('AVAILABLE_LICENSES').split()) - set(d.getVar('COMPATIBLE_LICENSES').split())))}" - This will result in ``INCOMPATIBLE_LICENSE`` containing the names of + This will result in :term:`INCOMPATIBLE_LICENSE` containing the names of all licenses from :term:`AVAILABLE_LICENSES` except the ones specified in ``COMPATIBLE_LICENSES``, thus only allowing the latter licenses to be used. @@ -3396,9 +3418,9 @@ system and gives an overview of their function and contents. Causes the named class or classes to be inherited globally. Anonymous functions in the class or classes are not executed for the base configuration and in each individual recipe. The OpenEmbedded build - system ignores changes to ``INHERIT`` in individual recipes. + system ignores changes to :term:`INHERIT` in individual recipes. - For more information on ``INHERIT``, see the + For more information on :term:`INHERIT`, see the :ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:\`\`inherit\`\` configuration directive`" section in the Bitbake User Manual. @@ -3430,7 +3452,7 @@ system and gives an overview of their function and contents. variable. To prevent the build system from splitting out debug information - during packaging, set the ``INHIBIT_PACKAGE_DEBUG_SPLIT`` variable as + during packaging, set the :term:`INHIBIT_PACKAGE_DEBUG_SPLIT` variable as follows:: INHIBIT_PACKAGE_DEBUG_SPLIT = "1" @@ -3442,7 +3464,7 @@ system and gives an overview of their function and contents. By default, the OpenEmbedded build system strips binaries and puts the debugging symbols into ``${``\ :term:`PN`\ ``}-dbg``. - Consequently, you should not set ``INHIBIT_PACKAGE_STRIP`` when you + Consequently, you should not set :term:`INHIBIT_PACKAGE_STRIP` when you plan to debug in general. :term:`INHIBIT_SYSROOT_STRIP` @@ -3451,7 +3473,7 @@ system and gives an overview of their function and contents. By default, the OpenEmbedded build system strips binaries in the resulting sysroot. When you specifically set the - ``INHIBIT_SYSROOT_STRIP`` variable to "1" in your recipe, you inhibit + :term:`INHIBIT_SYSROOT_STRIP` variable to "1" in your recipe, you inhibit this stripping. If you want to use this variable, include the @@ -3461,7 +3483,7 @@ system and gives an overview of their function and contents. .. note:: - Use of the ``INHIBIT_SYSROOT_STRIP`` variable occurs in rare and + Use of the :term:`INHIBIT_SYSROOT_STRIP` variable occurs in rare and special circumstances. For example, suppose you are building bare-metal firmware by using an external GCC toolchain. Furthermore, even if the toolchain's binaries are strippable, there are other files @@ -3483,7 +3505,7 @@ system and gives an overview of their function and contents. :term:`INITRAMFS_IMAGE` Specifies the :term:`PROVIDES` name of an image recipe that is used to build an initial RAM filesystem (initramfs) - image. In other words, the ``INITRAMFS_IMAGE`` variable causes an + image. In other words, the :term:`INITRAMFS_IMAGE` variable causes an additional recipe to be built as a dependency to whatever root filesystem recipe you might be using (e.g. ``core-image-sato``). The initramfs image recipe you provide should set @@ -3499,16 +3521,16 @@ system and gives an overview of their function and contents. See the ``meta/recipes-core/images/core-image-minimal-initramfs.bb`` recipe in the :term:`Source Directory` for an example initramfs recipe. To select this sample recipe as - the one built to provide the initramfs image, set ``INITRAMFS_IMAGE`` + the one built to provide the initramfs image, set :term:`INITRAMFS_IMAGE` to "core-image-minimal-initramfs". You can also find more information by referencing the ``meta-poky/conf/local.conf.sample.extended`` configuration file in the Source Directory, the :ref:`image ` class, and the :ref:`kernel ` class to see how to use - the ``INITRAMFS_IMAGE`` variable. + the :term:`INITRAMFS_IMAGE` variable. - If ``INITRAMFS_IMAGE`` is empty, which is the default, then no + If :term:`INITRAMFS_IMAGE` is empty, which is the default, then no initramfs image is built. For more information, you can also see the @@ -3543,7 +3565,7 @@ system and gives an overview of their function and contents. Setting the variable to "1" in a configuration file causes the OpenEmbedded build system to generate a kernel image with the - initramfs specified in ``INITRAMFS_IMAGE`` bundled within:: + initramfs specified in :term:`INITRAMFS_IMAGE` bundled within:: INITRAMFS_IMAGE_BUNDLE = "1" @@ -3555,7 +3577,7 @@ system and gives an overview of their function and contents. .. note:: - You must set the ``INITRAMFS_IMAGE_BUNDLE`` variable in a + You must set the :term:`INITRAMFS_IMAGE_BUNDLE` variable in a configuration file. You cannot set the variable in a recipe file. See the @@ -3596,13 +3618,13 @@ system and gives an overview of their function and contents. Indicates list of filesystem images to concatenate and use as an initial RAM disk (``initrd``). - The ``INITRD`` variable is an optional variable used with the + The :term:`INITRD` variable is an optional variable used with the :ref:`image-live ` class. :term:`INITRD_IMAGE` When building a "live" bootable image (i.e. when :term:`IMAGE_FSTYPES` contains "live"), - ``INITRD_IMAGE`` specifies the image recipe that should be built to + :term:`INITRD_IMAGE` specifies the image recipe that should be built to provide the initial RAM disk image. The default value is "core-image-minimal-initramfs". @@ -3636,7 +3658,7 @@ system and gives an overview of their function and contents. The variable's default value is "defaults", which is set in the :ref:`update-rc.d ` class. - The value in ``INITSCRIPT_PARAMS`` is passed through to the + The value in :term:`INITSCRIPT_PARAMS` is passed through to the ``update-rc.d`` command. For more information on valid parameters, please see the ``update-rc.d`` manual page at https://manpages.debian.org/buster/init-system-helpers/update-rc.d.8.en.html @@ -3655,7 +3677,7 @@ system and gives an overview of their function and contents. :term:`INSTALL_TIMEZONE_FILE` By default, the ``tzdata`` recipe packages an ``/etc/timezone`` file. - Set the ``INSTALL_TIMEZONE_FILE`` variable to "0" at the + Set the :term:`INSTALL_TIMEZONE_FILE` variable to "0" at the configuration level to disable this behavior. :term:`IPK_FEED_URIS` @@ -3687,7 +3709,7 @@ system and gives an overview of their function and contents. Values for this variable are set in the kernel's recipe file and the kernel's append file. For example, if you are using the ``linux-yocto_4.12`` kernel, the kernel recipe file is the - ``meta/recipes-kernel/linux/linux-yocto_4.12.bb`` file. ``KBRANCH`` + ``meta/recipes-kernel/linux/linux-yocto_4.12.bb`` file. :term:`KBRANCH` is set as follows in that kernel recipe file:: KBRANCH ?= "standard/base" @@ -3707,7 +3729,7 @@ system and gives an overview of their function and contents. KBRANCH_edgerouter = "standard/edgerouter" KBRANCH_beaglebone = "standard/beaglebone" - The ``KBRANCH`` statements + The :term:`KBRANCH` statements identify the kernel branch to use when building for each supported BSP. @@ -3721,7 +3743,7 @@ system and gives an overview of their function and contents. would place patch files and configuration fragment files (i.e. "out-of-tree"). However, if you want to use a ``defconfig`` file that is part of the kernel tree (i.e. "in-tree"), you can use the - ``KBUILD_DEFCONFIG`` variable and append the + :term:`KBUILD_DEFCONFIG` variable and append the :term:`KMACHINE` variable to point to the ``defconfig`` file. @@ -3730,7 +3752,7 @@ system and gives an overview of their function and contents. KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file - Here is an example from a "raspberrypi2" ``KMACHINE`` build that uses + Here is an example from a "raspberrypi2" :term:`KMACHINE` build that uses a ``defconfig`` file named "bcm2709_defconfig":: KBUILD_DEFCONFIG_raspberrypi2 = "bcm2709_defconfig" @@ -3740,7 +3762,7 @@ system and gives an overview of their function and contents. KBUILD_DEFCONFIG_pn-linux-yocto ?= defconfig_file For more - information on how to use the ``KBUILD_DEFCONFIG`` variable, see the + information on how to use the :term:`KBUILD_DEFCONFIG` variable, see the ":ref:`kernel-dev/common:using an "in-tree" \`\`defconfig\`\` file`" section in the Yocto Project Linux Kernel Development Manual. @@ -3757,27 +3779,27 @@ system and gives an overview of their function and contents. options not explicitly specified will be disabled in the kernel config. - In case ``KCONFIG_MODE`` is not set the behaviour will depend on where + In case :term:`KCONFIG_MODE` is not set the behaviour will depend on where the ``defconfig`` file is coming from. An "in-tree" ``defconfig`` file will be handled in ``alldefconfig`` mode, a ``defconfig`` file placed in ``${WORKDIR}`` through a meta-layer will be handled in ``allnoconfig`` mode. An "in-tree" ``defconfig`` file can be selected via the - :term:`KBUILD_DEFCONFIG` variable. ``KCONFIG_MODE`` does not need to + :term:`KBUILD_DEFCONFIG` variable. :term:`KCONFIG_MODE` does not need to be explicitly set. A ``defconfig`` file compatible with ``allnoconfig`` mode can be generated by copying the ``.config`` file from a working Linux kernel build, renaming it to ``defconfig`` and placing it into the Linux - kernel ``${WORKDIR}`` through your meta-layer. ``KCONFIG_MODE`` does + kernel ``${WORKDIR}`` through your meta-layer. :term:`KCONFIG_MODE` does not need to be explicitly set. A ``defconfig`` file compatible with ``alldefconfig`` mode can be generated using the :ref:`ref-tasks-savedefconfig` task and placed into the Linux kernel ``${WORKDIR}`` through your - meta-layer. Explicitely set ``KCONFIG_MODE``:: + meta-layer. Explicitely set :term:`KCONFIG_MODE`:: KCONFIG_MODE = "alldefconfig" @@ -3789,10 +3811,10 @@ system and gives an overview of their function and contents. :term:`KERNEL_ARTIFACT_NAME` Specifies the name of all of the build artifacts. You can change the - name of the artifacts by changing the ``KERNEL_ARTIFACT_NAME`` + name of the artifacts by changing the :term:`KERNEL_ARTIFACT_NAME` variable. - The value of ``KERNEL_ARTIFACT_NAME``, which is set in the + The value of :term:`KERNEL_ARTIFACT_NAME`, which is set in the ``meta/classes/kernel-artifact-names.bbclass`` file, has the following default value:: @@ -3869,13 +3891,13 @@ system and gives an overview of their function and contents. system, the default Board Support Packages (BSPs) :term:`Metadata` is provided through the :term:`KMACHINE` and :term:`KBRANCH` - variables. You can use the ``KERNEL_FEATURES`` variable from within + variables. You can use the :term:`KERNEL_FEATURES` variable from within the kernel recipe or kernel append file to further add metadata for all BSPs or specific BSPs. The metadata you add through this variable includes config fragments and features descriptions, which usually includes patches as well as - config fragments. You typically override the ``KERNEL_FEATURES`` + config fragments. You typically override the :term:`KERNEL_FEATURES` variable for a specific machine. In this way, you can provide validated, but optional, sets of kernel configurations and features. @@ -3935,12 +3957,12 @@ system and gives an overview of their function and contents. :term:`KERNEL_IMAGE_MAXSIZE` Specifies the maximum size of the kernel image file in kilobytes. If - ``KERNEL_IMAGE_MAXSIZE`` is set, the size of the kernel image file is + :term:`KERNEL_IMAGE_MAXSIZE` is set, the size of the kernel image file is checked against the set value during the :ref:`ref-tasks-sizecheck` task. The task fails if the kernel image file is larger than the setting. - ``KERNEL_IMAGE_MAXSIZE`` is useful for target devices that have a + :term:`KERNEL_IMAGE_MAXSIZE` is useful for target devices that have a limited amount of space in which the kernel image must be stored. By default, this variable is not set, which means the size of the @@ -3965,7 +3987,7 @@ system and gives an overview of their function and contents. build. If you want to build an alternate kernel image type in addition to that - specified by ``KERNEL_IMAGETYPE``, use the :term:`KERNEL_ALT_IMAGETYPE` + specified by :term:`KERNEL_IMAGETYPE`, use the :term:`KERNEL_ALT_IMAGETYPE` variable. :term:`KERNEL_MODULE_AUTOLOAD` @@ -3976,7 +3998,7 @@ system and gives an overview of their function and contents. This variable replaces the deprecated :term:`module_autoload` variable. - You can use the ``KERNEL_MODULE_AUTOLOAD`` variable anywhere that it + You can use the :term:`KERNEL_MODULE_AUTOLOAD` variable anywhere that it can be recognized by the kernel recipe or by an out-of-tree kernel module recipe (e.g. a machine configuration file, a distribution configuration file, an append file for the recipe, or the recipe @@ -3986,7 +4008,7 @@ system and gives an overview of their function and contents. KERNEL_MODULE_AUTOLOAD += "module_name1 module_name2 module_name3" - Including ``KERNEL_MODULE_AUTOLOAD`` causes the OpenEmbedded build + Including :term:`KERNEL_MODULE_AUTOLOAD` causes the OpenEmbedded build system to populate the ``/etc/modules-load.d/modname.conf`` file with the list of modules to be auto-loaded on boot. The modules appear one-per-line in the file. Here is an example of the most common use @@ -4015,7 +4037,7 @@ system and gives an overview of their function and contents. To help maximize compatibility with out-of-tree drivers used to build modules, the OpenEmbedded build system also recognizes and uses the :term:`KERNEL_SRC` variable, which is identical to - the ``KERNEL_PATH`` variable. Both variables are common variables + the :term:`KERNEL_PATH` variable. Both variables are common variables used by external Makefiles to point to the kernel source directory. :term:`KERNEL_SRC` @@ -4029,7 +4051,7 @@ system and gives an overview of their function and contents. To help maximize compatibility with out-of-tree drivers used to build modules, the OpenEmbedded build system also recognizes and uses the :term:`KERNEL_PATH` variable, which is identical - to the ``KERNEL_SRC`` variable. Both variables are common variables + to the :term:`KERNEL_SRC` variable. Both variables are common variables used by external Makefiles to point to the kernel source directory. :term:`KERNEL_VERSION` @@ -4042,9 +4064,9 @@ system and gives an overview of their function and contents. :term:`KERNELDEPMODDEPEND` Specifies whether the data referenced through :term:`PKGDATA_DIR` is needed or not. - ``KERNELDEPMODDEPEND`` does not control whether or not that data + :term:`KERNELDEPMODDEPEND` does not control whether or not that data exists, but simply whether or not it is used. If you do not need to - use the data, set the ``KERNELDEPMODDEPEND`` variable in your + use the data, set the :term:`KERNELDEPMODDEPEND` variable in your ``initramfs`` recipe. Setting the variable there when the data is not needed avoids a potential dependency loop. @@ -4063,7 +4085,7 @@ system and gives an overview of their function and contents. OpenEmbedded build system understands as ``core2-32-intel-common`` goes by a different name in the Linux Yocto kernel. The kernel understands that machine as ``intel-core2-32``. For cases like these, - the ``KMACHINE`` variable maps the kernel machine name to the + the :term:`KMACHINE` variable maps the kernel machine name to the OpenEmbedded build system machine name. These mappings between different names occur in the Yocto Linux @@ -4078,7 +4100,7 @@ system and gives an overview of their function and contents. KBRANCH_core2-32-intel-common = "standard/base" KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" - The ``KMACHINE`` statement says + The :term:`KMACHINE` statement says that the kernel understands the machine name as "intel-core2-32". However, the OpenEmbedded build system understands the machine as "core2-32-intel-common". @@ -4091,7 +4113,7 @@ system and gives an overview of their function and contents. Yocto Project Linux Kernel Development Manual for more information on kernel types. - You define the ``KTYPE`` variable in the + You define the :term:`KTYPE` variable in the :ref:`kernel-dev/advanced:bsp descriptions`. The value you use must match the value used for the :term:`LINUX_KERNEL_TYPE` value used by the @@ -4144,7 +4166,7 @@ system and gives an overview of their function and contents. :term:`LAYERSERIES_COMPAT` Lists the versions of the :term:`OpenEmbedded-Core (OE-Core)` for which - a layer is compatible. Using the ``LAYERSERIES_COMPAT`` variable + a layer is compatible. Using the :term:`LAYERSERIES_COMPAT` variable allows the layer maintainer to indicate which combinations of the layer and OE-Core can be expected to work. The variable gives the system a way to detect when a layer has not been tested with new @@ -4161,7 +4183,7 @@ system and gives an overview of their function and contents. .. note:: - Setting ``LAYERSERIES_COMPAT`` is required by the Yocto Project + Setting :term:`LAYERSERIES_COMPAT` is required by the Yocto Project Compatible version 2 standard. The OpenEmbedded build system produces a warning if the variable is not set for any given layer. @@ -4185,7 +4207,7 @@ system and gives an overview of their function and contents. to an environment variable and thus made visible to the software being built during the compilation step. - Default initialization for ``LDFLAGS`` varies depending on what is + Default initialization for :term:`LDFLAGS` varies depending on what is being built: - :term:`TARGET_LDFLAGS` when building for the @@ -4260,7 +4282,7 @@ system and gives an overview of their function and contents. LICENSE_${PN}-doc = "GFDL-1.2" :term:`LICENSE_CREATE_PACKAGE` - Setting ``LICENSE_CREATE_PACKAGE`` to "1" causes the OpenEmbedded + Setting :term:`LICENSE_CREATE_PACKAGE` to "1" causes the OpenEmbedded build system to create an extra package (i.e. ``${``\ :term:`PN`\ ``}-lic``) for each recipe and to add those packages to the @@ -4305,9 +4327,9 @@ system and gives an overview of their function and contents. :term:`LICENSE_PATH` Path to additional licenses used during the build. By default, the - OpenEmbedded build system uses ``COMMON_LICENSE_DIR`` to define the + OpenEmbedded build system uses :term:`COMMON_LICENSE_DIR` to define the directory that holds common license text used during the build. The - ``LICENSE_PATH`` variable allows you to extend that location to other + :term:`LICENSE_PATH` variable allows you to extend that location to other areas that have additional licenses:: LICENSE_PATH += "path-to-additional-common-licenses" @@ -4320,9 +4342,9 @@ system and gives an overview of their function and contents. Yocto Project Linux Kernel Development Manual for more information on kernel types. - If you do not specify a ``LINUX_KERNEL_TYPE``, it defaults to + If you do not specify a :term:`LINUX_KERNEL_TYPE`, it defaults to "standard". Together with :term:`KMACHINE`, the - ``LINUX_KERNEL_TYPE`` variable defines the search arguments used by + :term:`LINUX_KERNEL_TYPE` variable defines the search arguments used by the kernel tools to find the appropriate description within the kernel :term:`Metadata` with which to build out the sources and configuration. @@ -4336,7 +4358,7 @@ system and gives an overview of their function and contents. LINUX_VERSION ?= "3.4.24" - The ``LINUX_VERSION`` variable is used to define :term:`PV` + The :term:`LINUX_VERSION` variable is used to define :term:`PV` for the recipe:: PV = "${LINUX_VERSION}+git${SRCPV}" @@ -4366,8 +4388,8 @@ system and gives an overview of their function and contents. :term:`MACHINE` Specifies the target device for which the image is built. You define - ``MACHINE`` in the ``local.conf`` file found in the - :term:`Build Directory`. By default, ``MACHINE`` is set to + :term:`MACHINE` in the ``local.conf`` file found in the + :term:`Build Directory`. By default, :term:`MACHINE` is set to "qemux86", which is an x86-based architecture machine to be emulated using QEMU:: @@ -4375,7 +4397,7 @@ system and gives an overview of their function and contents. The variable corresponds to a machine configuration file of the same name, through which machine-specific configurations are set. Thus, - when ``MACHINE`` is set to "qemux86", the corresponding + when :term:`MACHINE` is set to "qemux86", the corresponding ``qemux86.conf`` machine configuration file can be found in the :term:`Source Directory` in ``meta/conf/machine``. @@ -4401,13 +4423,13 @@ system and gives an overview of their function and contents. .. note:: Adding additional Board Support Package (BSP) layers to your - configuration adds new possible settings for ``MACHINE``. + configuration adds new possible settings for :term:`MACHINE`. :term:`MACHINE_ARCH` Specifies the name of the machine-specific architecture. This variable is set automatically from :term:`MACHINE` or :term:`TUNE_PKGARCH`. You should not hand-edit - the ``MACHINE_ARCH`` variable. + the :term:`MACHINE_ARCH` variable. :term:`MACHINE_ESSENTIAL_EXTRA_RDEPENDS` A list of required machine-specific packages to install as part of @@ -4419,7 +4441,7 @@ system and gives an overview of their function and contents. image. This variable is similar to the - ``MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS`` variable with the exception + :term:`MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS` variable with the exception that the image being built has a build dependency on the variable's list of packages. In other words, the image will not build if a file in this list is not found. @@ -4440,7 +4462,7 @@ system and gives an overview of their function and contents. on ``packagegroup-core-boot``, including the ``core-image-minimal`` image. - This variable is similar to the ``MACHINE_ESSENTIAL_EXTRA_RDEPENDS`` + This variable is similar to the :term:`MACHINE_ESSENTIAL_EXTRA_RDEPENDS` variable with the exception that the image being built does not have a build dependency on the variable's list of packages. In other words, the image will still build if a package in this list is not @@ -4482,7 +4504,7 @@ system and gives an overview of their function and contents. which does not include the ``core-image-minimal`` or ``core-image-full-cmdline`` images. - The variable is similar to the ``MACHINE_EXTRA_RRECOMMENDS`` variable + The variable is similar to the :term:`MACHINE_EXTRA_RRECOMMENDS` variable with the exception that the image being built has a build dependency on the variable's list of packages. In other words, the image will not build if a file in this list is not found. @@ -4507,7 +4529,7 @@ system and gives an overview of their function and contents. which does not include the ``core-image-minimal`` or ``core-image-full-cmdline`` images. - This variable is similar to the ``MACHINE_EXTRA_RDEPENDS`` variable + This variable is similar to the :term:`MACHINE_EXTRA_RDEPENDS` variable with the exception that the image being built does not have a build dependency on the variable's list of packages. In other words, the image will build if a file in this list is not found. @@ -4536,8 +4558,8 @@ system and gives an overview of their function and contents. shipped, see the ":ref:`ref-features-machine`" section. :term:`MACHINE_FEATURES_BACKFILL` - Features to be added to ``MACHINE_FEATURES`` if not also present in - ``MACHINE_FEATURES_BACKFILL_CONSIDERED``. + Features to be added to :term:`MACHINE_FEATURES` if not also present in + :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED`. This variable is set in the ``meta/conf/bitbake.conf`` file. It is not intended to be user-configurable. It is best to just reference @@ -4546,8 +4568,8 @@ system and gives an overview of their function and contents. section for more information. :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED` - Features from ``MACHINE_FEATURES_BACKFILL`` that should not be - backfilled (i.e. added to ``MACHINE_FEATURES``) during the build. See + Features from :term:`MACHINE_FEATURES_BACKFILL` that should not be + backfilled (i.e. added to :term:`MACHINE_FEATURES`) during the build. See the ":ref:`ref-features-backfill`" section for more information. :term:`MACHINEOVERRIDES` @@ -4555,11 +4577,11 @@ system and gives an overview of their function and contents. machine. By default, this list includes the value of :term:`MACHINE`. - You can extend ``MACHINEOVERRIDES`` to add extra overrides that + You can extend :term:`MACHINEOVERRIDES` to add extra overrides that should apply to a machine. For example, all machines emulated in QEMU (e.g. ``qemuarm``, ``qemux86``, and so forth) include a file named ``meta/conf/machine/include/qemu.inc`` that prepends the following - override to ``MACHINEOVERRIDES``:: + override to :term:`MACHINEOVERRIDES`:: MACHINEOVERRIDES =. "qemuall:" @@ -4573,7 +4595,7 @@ system and gives an overview of their function and contents. " The underlying mechanism behind - ``MACHINEOVERRIDES`` is simply that it is included in the default + :term:`MACHINEOVERRIDES` is simply that it is included in the default value of :term:`OVERRIDES`. :term:`MAINTAINER` @@ -4593,10 +4615,10 @@ system and gives an overview of their function and contents. first tries the local download directory. If that location fails, the build system tries locations defined by :term:`PREMIRRORS`, the upstream source, and then - locations specified by ``MIRRORS`` in that order. + locations specified by :term:`MIRRORS` in that order. Assuming your distribution (:term:`DISTRO`) is "poky", - the default value for ``MIRRORS`` is defined in the + the default value for :term:`MIRRORS` is defined in the ``conf/distro/poky.conf`` file in the ``meta-poky`` Git repository. :term:`MLPREFIX` @@ -4604,16 +4626,16 @@ system and gives an overview of their function and contents. special version of a recipe or package (i.e. a Multilib version). The variable is used in places where the prefix needs to be added to or removed from a the name (e.g. the :term:`BPN` variable). - ``MLPREFIX`` gets set when a prefix has been added to ``PN``. + :term:`MLPREFIX` gets set when a prefix has been added to :term:`PN`. .. note:: - The "ML" in ``MLPREFIX`` stands for "MultiLib". This representation is + The "ML" in :term:`MLPREFIX` stands for "MultiLib". This representation is historical and comes from a time when ``nativesdk`` was a suffix rather than a prefix on the recipe name. When ``nativesdk`` was turned - into a prefix, it made sense to set ``MLPREFIX`` for it as well. + into a prefix, it made sense to set :term:`MLPREFIX` for it as well. - To help understand when ``MLPREFIX`` might be needed, consider when + To help understand when :term:`MLPREFIX` might be needed, consider when :term:`BBCLASSEXTEND` is used to provide a ``nativesdk`` version of a recipe in addition to the target version. If that recipe declares build-time dependencies on tasks in other @@ -4629,10 +4651,10 @@ system and gives an overview of their function and contents. do_foo[depends] += "${MLPREFIX}recipe:do_foo" - module_autoload - This variable has been replaced by the ``KERNEL_MODULE_AUTOLOAD`` + :term:`module_autoload` + This variable has been replaced by the :term:`KERNEL_MODULE_AUTOLOAD` variable. You should replace all occurrences of ``module_autoload`` - with additions to ``KERNEL_MODULE_AUTOLOAD``, for example:: + with additions to :term:`KERNEL_MODULE_AUTOLOAD`, for example:: module_autoload_rfcomm = "rfcomm" @@ -4642,7 +4664,7 @@ system and gives an overview of their function and contents. See the :term:`KERNEL_MODULE_AUTOLOAD` variable for more information. - module_conf + :term:`module_conf` Specifies `modprobe.d `_ syntax lines for inclusion in the ``/etc/modprobe.d/modname.conf`` file. @@ -4716,7 +4738,7 @@ system and gives an overview of their function and contents. Some classes (e.g. :ref:`cross-canadian `) modify the - ``MULTIMACH_TARGET_SYS`` value. + :term:`MULTIMACH_TARGET_SYS` value. See the :term:`STAMP` variable for an example. See the :term:`STAGING_DIR_TARGET` variable for more information. @@ -4745,10 +4767,10 @@ system and gives an overview of their function and contents. licenses that are not in any way common. Also, new licenses are added occasionally to avoid introducing a lot of common license files, which are only applicable to a specific package. - ``NO_GENERIC_LICENSE`` is used to allow copying a license that does + :term:`NO_GENERIC_LICENSE` is used to allow copying a license that does not exist in common licenses. - The following example shows how to add ``NO_GENERIC_LICENSE`` to a + The following example shows how to add :term:`NO_GENERIC_LICENSE` to a recipe:: NO_GENERIC_LICENSE[license_name] = "license_file_in_fetched_source" @@ -4763,7 +4785,7 @@ system and gives an overview of their function and contents. Prevents installation of all "recommended-only" packages. Recommended-only packages are packages installed only through the :term:`RRECOMMENDS` variable). Setting the - ``NO_RECOMMENDATIONS`` variable to "1" turns this feature on:: + :term:`NO_RECOMMENDATIONS` variable to "1" turns this feature on:: NO_RECOMMENDATIONS = "1" @@ -4795,7 +4817,7 @@ system and gives an overview of their function and contents. :term:`NOAUTOPACKAGEDEBUG` Disables auto package from splitting ``.debug`` files. If a recipe requires ``FILES_${PN}-dbg`` to be set manually, the - ``NOAUTOPACKAGEDEBUG`` can be defined allowing you to define the + :term:`NOAUTOPACKAGEDEBUG` can be defined allowing you to define the content of the debug package. For example:: NOAUTOPACKAGEDEBUG = "1" @@ -4803,6 +4825,13 @@ system and gives an overview of their function and contents. FILES_${PN}-dbg = "/usr/src/debug/" FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch" + :term:`NON_MULTILIB_RECIPES` + A list of recipes that should not be built for multilib. OE-Core's + ``multilib.conf`` file defines a reasonable starting point for this + list with:: + + NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf u-boot" + :term:`OBJCOPY` The minimal command and arguments to run ``objcopy``. @@ -4838,7 +4867,7 @@ system and gives an overview of their function and contents. value is "oe-init-build-env". If you use a custom script to set up your build environment, set the - ``OE_INIT_ENV_SCRIPT`` variable to its name. + :term:`OE_INIT_ENV_SCRIPT` variable to its name. :term:`OE_TERMINAL` Controls how the OpenEmbedded build system spawns interactive @@ -4861,7 +4890,7 @@ system and gives an overview of their function and contents. The directory from which the top-level build environment setup script is sourced. The Yocto Project provides a top-level build environment setup script: :ref:`structure-core-script`. When you run this - script, the ``OEROOT`` variable resolves to the directory that + script, the :term:`OEROOT` variable resolves to the directory that contains the script. For additional information on how this variable is used, see the @@ -4881,12 +4910,12 @@ system and gives an overview of their function and contents. A colon-separated list of overrides that currently apply. Overrides are a BitBake mechanism that allows variables to be selectively overridden at the end of parsing. The set of overrides in - ``OVERRIDES`` represents the "state" during building, which includes + :term:`OVERRIDES` represents the "state" during building, which includes the current recipe being built, the machine for which it is being built, and so forth. As an example, if the string "an-override" appears as an element in - the colon-separated list in ``OVERRIDES``, then the following + the colon-separated list in :term:`OVERRIDES`, then the following assignment will override ``FOO`` with the value "overridden" at the end of parsing:: @@ -4897,7 +4926,7 @@ system and gives an overview of their function and contents. section in the BitBake User Manual for more information on the overrides mechanism. - The default value of ``OVERRIDES`` includes the values of the + The default value of :term:`OVERRIDES` includes the values of the :term:`CLASSOVERRIDE`, :term:`MACHINEOVERRIDES`, and :term:`DISTROOVERRIDES` variables. Another @@ -4909,13 +4938,13 @@ system and gives an overview of their function and contents. .. note:: - An easy way to see what overrides apply is to search for ``OVERRIDES`` + An easy way to see what overrides apply is to search for :term:`OVERRIDES` in the output of the ``bitbake -e`` command. See the ":ref:`dev-manual/common-tasks:viewing variable values`" section in the Yocto Project Development Tasks Manual for more information. :term:`P` - The recipe name and version. ``P`` is comprised of the following:: + The recipe name and version. :term:`P` is comprised of the following:: ${PN}-${PV} @@ -4950,7 +4979,7 @@ system and gives an overview of their function and contents. However, if your recipe's output packages are built specific to the target machine rather than generally for the architecture of the - machine, you should set ``PACKAGE_ARCH`` to the value of + machine, you should set :term:`PACKAGE_ARCH` to the value of :term:`MACHINE_ARCH` in the recipe as follows:: PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -4959,11 +4988,11 @@ system and gives an overview of their function and contents. Specifies a list of architectures compatible with the target machine. This variable is set automatically and should not normally be hand-edited. Entries are separated using spaces and listed in order - of priority. The default value for ``PACKAGE_ARCHS`` is "all any + of priority. The default value for :term:`PACKAGE_ARCHS` is "all any noarch ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}". :term:`PACKAGE_BEFORE_PN` - Enables easily adding packages to ``PACKAGES`` before ``${PN}`` so + Enables easily adding packages to :term:`PACKAGES` before ``${PN}`` so that those added packages can pick up files that would normally be included in the default package. @@ -5003,7 +5032,7 @@ system and gives an overview of their function and contents. creating ``*-dbg`` packages to be used with the GNU Project Debugger (GDB). - With the ``PACKAGE_DEBUG_SPLIT_STYLE`` variable, you can control + With the :term:`PACKAGE_DEBUG_SPLIT_STYLE` variable, you can control where debug information, which can include or exclude source files, is stored: @@ -5040,7 +5069,7 @@ system and gives an overview of their function and contents. are using :term:`IMAGE_FEATURES` to install ``dev-pkgs``, you might not want to install all packages from a particular multilib. If you find yourself in this situation, you can - use the ``PACKAGE_EXCLUDE_COMPLEMENTARY`` variable to specify regular + use the :term:`PACKAGE_EXCLUDE_COMPLEMENTARY` variable to specify regular expressions to match the packages you want to exclude. :term:`PACKAGE_EXCLUDE` @@ -5078,7 +5107,7 @@ system and gives an overview of their function and contents. :term:`PACKAGE_FEED_ARCHS` Optionally specifies the package architectures used as part of the package feed URIs during the build. When used, the - ``PACKAGE_FEED_ARCHS`` variable is appended to the final package feed + :term:`PACKAGE_FEED_ARCHS` variable is appended to the final package feed URI, which is constructed using the :term:`PACKAGE_FEED_URIS` and :term:`PACKAGE_FEED_BASE_PATHS` @@ -5086,15 +5115,15 @@ system and gives an overview of their function and contents. .. note:: - You can use the ``PACKAGE_FEED_ARCHS`` + You can use the :term:`PACKAGE_FEED_ARCHS` variable to whitelist specific package architectures. If you do not need to whitelist specific architectures, which is a common case, you can omit this variable. Omitting the variable results in all available architectures for the current machine being included into remote package feeds. - Consider the following example where the ``PACKAGE_FEED_URIS``, - ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are + Consider the following example where the :term:`PACKAGE_FEED_URIS`, + :term:`PACKAGE_FEED_BASE_PATHS`, and :term:`PACKAGE_FEED_ARCHS` variables are defined in your ``local.conf`` file:: PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \ @@ -5117,13 +5146,13 @@ system and gives an overview of their function and contents. :term:`PACKAGE_FEED_BASE_PATHS` Specifies the base path used when constructing package feed URIs. The - ``PACKAGE_FEED_BASE_PATHS`` variable makes up the middle portion of a + :term:`PACKAGE_FEED_BASE_PATHS` variable makes up the middle portion of a package feed URI used by the OpenEmbedded build system. The base path lies between the :term:`PACKAGE_FEED_URIS` and :term:`PACKAGE_FEED_ARCHS` variables. - Consider the following example where the ``PACKAGE_FEED_URIS``, - ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are + Consider the following example where the :term:`PACKAGE_FEED_URIS`, + :term:`PACKAGE_FEED_BASE_PATHS`, and :term:`PACKAGE_FEED_ARCHS` variables are defined in your ``local.conf`` file:: PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \ @@ -5147,12 +5176,12 @@ system and gives an overview of their function and contents. :term:`PACKAGE_FEED_URIS` Specifies the front portion of the package feed URI used by the OpenEmbedded build system. Each final package feed URI is comprised - of ``PACKAGE_FEED_URIS``, + of :term:`PACKAGE_FEED_URIS`, :term:`PACKAGE_FEED_BASE_PATHS`, and :term:`PACKAGE_FEED_ARCHS` variables. - Consider the following example where the ``PACKAGE_FEED_URIS``, - ``PACKAGE_FEED_BASE_PATHS``, and ``PACKAGE_FEED_ARCHS`` variables are + Consider the following example where the :term:`PACKAGE_FEED_URIS`, + :term:`PACKAGE_FEED_BASE_PATHS`, and :term:`PACKAGE_FEED_ARCHS` variables are defined in your ``local.conf`` file:: PACKAGE_FEED_URIS = "https://example.com/packagerepos/release \ @@ -5178,7 +5207,7 @@ system and gives an overview of their function and contents. installation into the image. Because the package manager controls actual installation of all - packages, the list of packages passed using ``PACKAGE_INSTALL`` is + packages, the list of packages passed using :term:`PACKAGE_INSTALL` is not the final list of packages that are actually installed. This variable is internal to the image construction code. Consequently, in general, you should use the @@ -5186,7 +5215,7 @@ system and gives an overview of their function and contents. packages for installation. The exception to this is when working with the :ref:`core-image-minimal-initramfs ` image. When working with an initial RAM filesystem (initramfs) image, - use the ``PACKAGE_INSTALL`` variable. For information on creating an + use the :term:`PACKAGE_INSTALL` variable. For information on creating an initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section in the Yocto Project Development Tasks Manual. @@ -5207,7 +5236,7 @@ system and gives an overview of their function and contents. post-installation or pre-installation script can execute at rootfs creation time rather than on the target but depends on a native tool in order to execute, you need to list the tools in - ``PACKAGE_WRITE_DEPS``. + :term:`PACKAGE_WRITE_DEPS`. For information on running post-installation scripts, see the ":ref:`dev-manual/common-tasks:post-installation scripts`" @@ -5215,7 +5244,7 @@ system and gives an overview of their function and contents. :term:`PACKAGECONFIG` This variable provides a means of enabling or disabling features of a - recipe on a per-recipe basis. ``PACKAGECONFIG`` blocks are defined in + recipe on a per-recipe basis. :term:`PACKAGECONFIG` blocks are defined in recipes when you specify features and then arguments that define feature behaviors. Here is the basic block structure (broken over multiple lines for readability):: @@ -5243,8 +5272,8 @@ system and gives an overview of their function and contents. :term:`PACKAGECONFIG_CONFARGS`) if the feature is enabled. - 2. Extra arguments that should be added to ``EXTRA_OECONF`` or - ``PACKAGECONFIG_CONFARGS`` if the feature is disabled. + 2. Extra arguments that should be added to :term:`EXTRA_OECONF` or + :term:`PACKAGECONFIG_CONFARGS` if the feature is disabled. 3. Additional build dependencies (:term:`DEPENDS`) that should be added if the feature is enabled. @@ -5256,10 +5285,10 @@ system and gives an overview of their function and contents. (:term:`RRECOMMENDS`) that should be added if the feature is enabled. - 6. Any conflicting (that is, mutually exclusive) ``PACKAGECONFIG`` + 6. Any conflicting (that is, mutually exclusive) :term:`PACKAGECONFIG` settings for this feature. - Consider the following ``PACKAGECONFIG`` block taken from the + Consider the following :term:`PACKAGECONFIG` block taken from the ``librsvg`` recipe. In this example the feature is ``gtk``, which has three arguments that determine the feature's behavior. :: @@ -5269,21 +5298,21 @@ system and gives an overview of their function and contents. The ``--with-gtk3`` and ``gtk+3`` arguments apply only if the feature is enabled. In this case, ``--with-gtk3`` is added to the configure - script argument list and ``gtk+3`` is added to ``DEPENDS``. On the + script argument list and ``gtk+3`` is added to :term:`DEPENDS`. On the other hand, if the feature is disabled say through a ``.bbappend`` file in another layer, then the second argument ``--without-gtk3`` is added to the configure script instead. - The basic ``PACKAGECONFIG`` structure previously described holds true + The basic :term:`PACKAGECONFIG` structure previously described holds true regardless of whether you are creating a block or changing a block. When creating a block, use the structure inside your recipe. - If you want to change an existing ``PACKAGECONFIG`` block, you can do + If you want to change an existing :term:`PACKAGECONFIG` block, you can do so one of two ways: - *Append file:* Create an append file named recipename\ ``.bbappend`` in your layer and override the value of - ``PACKAGECONFIG``. You can either completely override the + :term:`PACKAGECONFIG`. You can either completely override the variable:: PACKAGECONFIG = "f4 f5" @@ -5308,16 +5337,16 @@ system and gives an overview of their function and contents. :term:`PACKAGECONFIG` setting. Classes such as :ref:`autotools ` and - :ref:`cmake ` use ``PACKAGECONFIG_CONFARGS`` to - pass ``PACKAGECONFIG`` options to ``configure`` and ``cmake``, - respectively. If you are using ``PACKAGECONFIG`` but not a class that + :ref:`cmake ` use :term:`PACKAGECONFIG_CONFARGS` to + pass :term:`PACKAGECONFIG` options to ``configure`` and ``cmake``, + respectively. If you are using :term:`PACKAGECONFIG` but not a class that handles the ``do_configure`` task, then you need to use - ``PACKAGECONFIG_CONFARGS`` appropriately. + :term:`PACKAGECONFIG_CONFARGS` appropriately. :term:`PACKAGEGROUP_DISABLE_COMPLEMENTARY` For recipes inheriting the :ref:`packagegroup ` class, setting - ``PACKAGEGROUP_DISABLE_COMPLEMENTARY`` to "1" specifies that the + :term:`PACKAGEGROUP_DISABLE_COMPLEMENTARY` to "1" specifies that the normal complementary packages (i.e. ``-dev``, ``-dbg``, and so forth) should not be automatically created by the ``packagegroup`` recipe, which is the default behavior. @@ -5329,10 +5358,10 @@ system and gives an overview of their function and contents. ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN} During packaging, the :ref:`ref-tasks-package` task - goes through ``PACKAGES`` and uses the :term:`FILES` + goes through :term:`PACKAGES` and uses the :term:`FILES` variable corresponding to each package to assign files to the - package. If a file matches the ``FILES`` variable for more than one - package in ``PACKAGES``, it will be assigned to the earliest + package. If a file matches the :term:`FILES` variable for more than one + package in :term:`PACKAGES`, it will be assigned to the earliest (leftmost) package. Packages in the variable's list that are empty (i.e. where none of @@ -5344,10 +5373,10 @@ system and gives an overview of their function and contents. :term:`PACKAGES_DYNAMIC` A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes. - ``PACKAGES_DYNAMIC`` does not actually satisfy the dependencies, it + :term:`PACKAGES_DYNAMIC` does not actually satisfy the dependencies, it only states that they should be satisfied. For example, if a hard, runtime dependency (:term:`RDEPENDS`) of another - package is satisfied at build time through the ``PACKAGES_DYNAMIC`` + package is satisfied at build time through the :term:`PACKAGES_DYNAMIC` variable, but a package with the module name is never actually produced, then the other package will be broken. Thus, if you attempt to include that package in an image, you will get a dependency @@ -5357,9 +5386,9 @@ system and gives an overview of their function and contents. Typically, if there is a chance that such a situation can occur and the package that is not created is valid without the dependency being satisfied, then you should use :term:`RRECOMMENDS` - (a soft runtime dependency) instead of ``RDEPENDS``. + (a soft runtime dependency) instead of :term:`RDEPENDS`. - For an example of how to use the ``PACKAGES_DYNAMIC`` variable when + For an example of how to use the :term:`PACKAGES_DYNAMIC` variable when you are splitting packages, see the ":ref:`dev-manual/common-tasks:handling optional module packaging`" section in the Yocto Project Development Tasks Manual. @@ -5383,7 +5412,7 @@ system and gives an overview of their function and contents. .. note:: - In order for ``PARALLEL_MAKE`` to be effective, ``make`` must be + In order for :term:`PARALLEL_MAKE` to be effective, ``make`` must be called with ``${``\ :term:`EXTRA_OEMAKE`\ ``}``. An easy way to ensure this is to use the ``oe_runmake`` function. @@ -5394,7 +5423,7 @@ system and gives an overview of their function and contents. If the software being built experiences dependency issues during the ``do_compile`` task that result in race conditions, you can clear - the ``PARALLEL_MAKE`` variable within the recipe as a workaround. For + the :term:`PARALLEL_MAKE` variable within the recipe as a workaround. For information on addressing race conditions, see the ":ref:`dev-manual/common-tasks:debugging parallel make races`" section in the Yocto Project Development Tasks Manual. @@ -5402,7 +5431,7 @@ system and gives an overview of their function and contents. For single socket systems (i.e. one CPU), you should not have to override this variable to gain optimal parallelism during builds. However, if you have very large systems that employ multiple physical - CPUs, you might want to make sure the ``PARALLEL_MAKE`` variable is + CPUs, you might want to make sure the :term:`PARALLEL_MAKE` variable is not set higher than "-j 20". For more information on speeding up builds, see the @@ -5417,14 +5446,14 @@ system and gives an overview of their function and contents. .. note:: - In order for ``PARALLEL_MAKEINST`` to be effective, ``make`` must + In order for :term:`PARALLEL_MAKEINST` to be effective, ``make`` must be called with ``${``\ :term:`EXTRA_OEMAKE`\ ``}``. An easy way to ensure this is to use the ``oe_runmake`` function. If the software being built experiences dependency issues during the ``do_install`` task that result in race conditions, you can - clear the ``PARALLEL_MAKEINST`` variable within the recipe as a + clear the :term:`PARALLEL_MAKEINST` variable within the recipe as a workaround. For information on addressing race conditions, see the ":ref:`dev-manual/common-tasks:debugging parallel make races`" section in the Yocto Project Development Tasks Manual. @@ -5461,7 +5490,7 @@ system and gives an overview of their function and contents. variable is used to make upgrades possible when the versioning scheme changes in some backwards incompatible way. - ``PE`` is the default value of the :term:`PKGE` variable. + :term:`PE` is the default value of the :term:`PKGE` variable. :term:`PF` Specifies the recipe or package name and includes all version and @@ -5483,7 +5512,7 @@ system and gives an overview of their function and contents. .. note:: - When using the ``PKG`` variable, you must use a package name override. + When using the :term:`PKG` variable, you must use a package name override. For example, when the :ref:`debian ` class renames the output package, it does so by setting @@ -5534,45 +5563,45 @@ system and gives an overview of their function and contents. :term:`PKGDESTWORK` Points to a temporary work area where the :ref:`ref-tasks-package` task saves package metadata. - The ``PKGDESTWORK`` location defaults to the following:: + The :term:`PKGDESTWORK` location defaults to the following:: ${WORKDIR}/pkgdata Do not change this default. The :ref:`ref-tasks-packagedata` task copies the - package metadata from ``PKGDESTWORK`` to + package metadata from :term:`PKGDESTWORK` to :term:`PKGDATA_DIR` to make it available globally. :term:`PKGE` - The epoch of the package(s) built by the recipe. By default, ``PKGE`` + The epoch of the package(s) built by the recipe. By default, :term:`PKGE` is set to :term:`PE`. :term:`PKGR` The revision of the package(s) built by the recipe. By default, - ``PKGR`` is set to :term:`PR`. + :term:`PKGR` is set to :term:`PR`. :term:`PKGV` The version of the package(s) built by the recipe. By default, - ``PKGV`` is set to :term:`PV`. + :term:`PKGV` is set to :term:`PV`. :term:`PN` This variable can have two separate functions depending on the context: a recipe name or a resulting package name. - ``PN`` refers to a recipe name in the context of a file used by the + :term:`PN` refers to a recipe name in the context of a file used by the OpenEmbedded build system as input to create a package. The name is normally extracted from the recipe file name. For example, if the - recipe is named ``expat_2.0.1.bb``, then the default value of ``PN`` + recipe is named ``expat_2.0.1.bb``, then the default value of :term:`PN` will be "expat". The variable refers to a package name in the context of a file created or produced by the OpenEmbedded build system. - If applicable, the ``PN`` variable also contains any special suffix + If applicable, the :term:`PN` variable also contains any special suffix or prefix. For example, using ``bash`` to build packages for the native machine, ``PN`` is ``bash-native``. Using ``bash`` to build - packages for the target and for Multilib, ``PN`` would be ``bash`` + packages for the target and for Multilib, :term:`PN` would be ``bash`` and ``lib64-bash``, respectively. :term:`PNBLACKLIST` @@ -5581,7 +5610,7 @@ system and gives an overview of their function and contents. :ref:`blacklist ` class, which is inherited globally. - To prevent a recipe from being built, use the ``PNBLACKLIST`` + To prevent a recipe from being built, use the :term:`PNBLACKLIST` variable in your ``local.conf`` file. Here is an example that prevents ``myrecipe`` from being built:: @@ -5615,30 +5644,30 @@ system and gives an overview of their function and contents. The revision of the recipe. The default value for this variable is "r0". Subsequent revisions of the recipe conventionally have the values "r1", "r2", and so forth. When :term:`PV` increases, - ``PR`` is conventionally reset to "r0". + :term:`PR` is conventionally reset to "r0". .. note:: - The OpenEmbedded build system does not need the aid of ``PR`` + The OpenEmbedded build system does not need the aid of :term:`PR` to know when to rebuild a recipe. The build system uses the task :ref:`input checksums ` along with the :ref:`stamp ` and :ref:`overview-manual/concepts:shared state cache` mechanisms. - The ``PR`` variable primarily becomes significant when a package + The :term:`PR` variable primarily becomes significant when a package manager dynamically installs packages on an already built image. In - this case, ``PR``, which is the default value of + this case, :term:`PR`, which is the default value of :term:`PKGR`, helps the package manager distinguish which package is the most recent one in cases where many packages have the - same ``PV`` (i.e. ``PKGV``). A component having many packages with - the same ``PV`` usually means that the packages all install the same - upstream version, but with later (``PR``) version packages including + same :term:`PV` (i.e. :term:`PKGV`). A component having many packages with + the same :term:`PV` usually means that the packages all install the same + upstream version, but with later (:term:`PR`) version packages including packaging fixes. .. note:: - ``PR`` does not need to be increased for changes that do not change the + :term:`PR` does not need to be increased for changes that do not change the package contents or metadata. Because manually managing ``PR`` can be cumbersome and error-prone, @@ -5657,7 +5686,7 @@ system and gives an overview of their function and contents. PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" In the previous example, multiple recipes are providing "virtual/kernel". - The ``PREFERRED_PROVIDER`` variable is set with the name (``PN``) of + The :term:`PREFERRED_PROVIDER` variable is set with the name (:term:`PN`) of the recipe you prefer to provide "virtual/kernel". Following are more examples:: @@ -5671,9 +5700,9 @@ system and gives an overview of their function and contents. .. note:: - If you use a ``virtual/\*`` item with ``PREFERRED_PROVIDER``, then any + If you use a ``virtual/\*`` item with :term:`PREFERRED_PROVIDER`, then any recipe that :term:`PROVIDES` that item but is not selected (defined) - by ``PREFERRED_PROVIDER`` is prevented from building, which is usually + by :term:`PREFERRED_PROVIDER` is prevented from building, which is usually desirable since this mechanism is designed to select between mutually exclusive alternative providers. @@ -5684,7 +5713,7 @@ system and gives an overview of their function and contents. the first example below), and you should specify the :term:`PV` accordingly (`3.4.0` in the example). - The ``PREFERRED_VERSION`` variable supports limited wildcard use + The :term:`PREFERRED_VERSION` variable supports limited wildcard use through the "``%``" character. You can use the character to match any number of characters, which can be useful when specifying versions that contain long revision numbers that potentially change. Here are @@ -5716,7 +5745,7 @@ system and gives an overview of their function and contents. PREFERRED_VERSION_foo = "git" - Sometimes the ``PREFERRED_VERSION`` variable can be set by + Sometimes the :term:`PREFERRED_VERSION` variable can be set by configuration files in a way that is hard to change. You can use :term:`OVERRIDES` to set a machine-specific override. Here is an example:: @@ -5732,7 +5761,7 @@ system and gives an overview of their function and contents. .. note:: The ``\_forcevariable`` override is not handled specially. This override - only works because the default value of ``OVERRIDES`` includes "forcevariable". + only works because the default value of :term:`OVERRIDES` includes "forcevariable". If a recipe with the specified version is not available, a warning message will be shown. See :term:`REQUIRED_VERSION` if you want this @@ -5742,12 +5771,12 @@ system and gives an overview of their function and contents. Specifies additional paths from which the OpenEmbedded build system gets source code. When the build system searches for source code, it first tries the local download directory. If that location fails, the - build system tries locations defined by ``PREMIRRORS``, the upstream + build system tries locations defined by :term:`PREMIRRORS`, the upstream source, and then locations specified by :term:`MIRRORS` in that order. Assuming your distribution (:term:`DISTRO`) is "poky", - the default value for ``PREMIRRORS`` is defined in the + the default value for :term:`PREMIRRORS` is defined in the ``conf/distro/poky.conf`` file in the ``meta-poky`` Git repository. Typically, you could add a specific server for the build system to @@ -5770,12 +5799,12 @@ system and gives an overview of their function and contents. :term:`PRIORITY` Indicates the importance of a package. - ``PRIORITY`` is considered to be part of the distribution policy + :term:`PRIORITY` is considered to be part of the distribution policy because the importance of any given recipe depends on the purpose for - which the distribution is being produced. Thus, ``PRIORITY`` is not + which the distribution is being produced. Thus, :term:`PRIORITY` is not normally set within recipes. - You can set ``PRIORITY`` to "required", "standard", "extra", and + You can set :term:`PRIORITY` to "required", "standard", "extra", and "optional", which is the default. :term:`PRIVATE_LIBS` @@ -5805,19 +5834,19 @@ system and gives an overview of their function and contents. :term:`PROVIDES` A list of aliases by which a particular recipe can be known. By - default, a recipe's own ``PN`` is implicitly already in its - ``PROVIDES`` list and therefore does not need to mention that it - provides itself. If a recipe uses ``PROVIDES``, the additional + default, a recipe's own :term:`PN` is implicitly already in its + :term:`PROVIDES` list and therefore does not need to mention that it + provides itself. If a recipe uses :term:`PROVIDES`, the additional aliases are synonyms for the recipe and can be useful for satisfying dependencies of other recipes during the build as specified by - ``DEPENDS``. + :term:`DEPENDS`. - Consider the following example ``PROVIDES`` statement from the recipe + Consider the following example :term:`PROVIDES` statement from the recipe file ``eudev_3.2.9.bb``:: PROVIDES += "udev" - The ``PROVIDES`` statement + The :term:`PROVIDES` statement results in the "eudev" recipe also being available as simply "udev". .. note:: @@ -5827,12 +5856,12 @@ system and gives an overview of their function and contents. strictly necessary it is recommended to avoid confusion. In addition to providing recipes under alternate names, the - ``PROVIDES`` mechanism is also used to implement virtual targets. A + :term:`PROVIDES` mechanism is also used to implement virtual targets. A virtual target is a name that corresponds to some particular functionality (e.g. a Linux kernel). Recipes that provide the - functionality in question list the virtual target in ``PROVIDES``. + functionality in question list the virtual target in :term:`PROVIDES`. Recipes that depend on the functionality in question can include the - virtual target in ``DEPENDS`` to leave the choice of provider open. + virtual target in :term:`DEPENDS` to leave the choice of provider open. Conventionally, virtual targets have names on the form "virtual/function" (e.g. "virtual/kernel"). The slash is simply part @@ -5860,14 +5889,14 @@ system and gives an overview of their function and contents. The ``conf/local.conf.sample.extended`` configuration file in the :term:`Source Directory` shows how the - ``PRSERV_HOST`` variable is set:: + :term:`PRSERV_HOST` variable is set:: PRSERV_HOST = "localhost:0" You must set the variable if you want to automatically start a local :ref:`PR service `. You can - set ``PRSERV_HOST`` to other values to use a remote PR service. + set :term:`PRSERV_HOST` to other values to use a remote PR service. :term:`PSEUDO_IGNORE_PATHS` @@ -5889,12 +5918,12 @@ system and gives an overview of their function and contents. :term:`PV` The version of the recipe. The version is normally extracted from the recipe filename. For example, if the recipe is named - ``expat_2.0.1.bb``, then the default value of ``PV`` will be "2.0.1". - ``PV`` is generally not overridden within a recipe unless it is + ``expat_2.0.1.bb``, then the default value of :term:`PV` will be "2.0.1". + :term:`PV` is generally not overridden within a recipe unless it is building an unstable (i.e. development) version from a source code repository (e.g. Git or Subversion). - ``PV`` is the default value of the :term:`PKGV` variable. + :term:`PV` is the default value of the :term:`PKGV` variable. :term:`PYTHON_ABI` When used by recipes that inherit the @@ -5916,7 +5945,7 @@ system and gives an overview of their function and contents. When used by recipes that inherit the `distutils3 `, :ref:`setuptools3 ` classes, specifies the - major Python version being built. For Python 3.x, ``PYTHON_PN`` would + major Python version being built. For Python 3.x, :term:`PYTHON_PN` would be "python3". You do not have to set this variable as the OpenEmbedded build system automatically sets it for you. @@ -5926,7 +5955,7 @@ system and gives an overview of their function and contents. DEPENDS += "${PYTHON_PN}-native" In the previous example, - the version of the dependency is ``PYTHON_PN``. + the version of the dependency is :term:`PYTHON_PN`. :term:`RANLIB` The minimal command and arguments to run ``ranlib``. @@ -5944,7 +5973,7 @@ system and gives an overview of their function and contents. specifying versioned dependencies. Although the syntax varies depending on the packaging format, BitBake hides these differences from you. Here is the general syntax to specify versions with the - ``RCONFLICTS`` variable:: + :term:`RCONFLICTS` variable:: RCONFLICTS_${PN} = "package (operator version)" @@ -5972,12 +6001,12 @@ system and gives an overview of their function and contents. The most common types of package runtime dependencies are automatically detected and added. Therefore, - most recipes do not need to set ``RDEPENDS``. For more information, + most recipes do not need to set :term:`RDEPENDS`. For more information, see the ":ref:`overview-manual/concepts:automatically added runtime dependencies`" section in the Yocto Project Overview and Concepts Manual. - The practical effect of the above ``RDEPENDS`` assignment is that + The practical effect of the above :term:`RDEPENDS` assignment is that ``bar`` and ``baz`` will be declared as dependencies inside the package ``foo`` when it is written out by one of the :ref:`do_package_write_\* ` tasks. @@ -5988,26 +6017,26 @@ system and gives an overview of their function and contents. also install the packages on which it depends. To ensure that the packages ``bar`` and ``baz`` get built, the - previous ``RDEPENDS`` assignment also causes a task dependency to be + previous :term:`RDEPENDS` assignment also causes a task dependency to be added. This dependency is from the recipe's :ref:`ref-tasks-build` (not to be confused with :ref:`ref-tasks-compile`) task to the ``do_package_write_*`` task of the recipes that build ``bar`` and ``baz``. - The names of the packages you list within ``RDEPENDS`` must be the + The names of the packages you list within :term:`RDEPENDS` must be the names of other packages - they cannot be recipe names. Although package names and recipe names usually match, the important point - here is that you are providing package names within the ``RDEPENDS`` + here is that you are providing package names within the :term:`RDEPENDS` variable. For an example of the default list of packages created from a recipe, see the :term:`PACKAGES` variable. - Because the ``RDEPENDS`` variable applies to packages being built, + Because the :term:`RDEPENDS` variable applies to packages being built, you should always use the variable in a form with an attached package name (remember that a single recipe can build multiple packages). For example, suppose you are building a development package that depends on the ``perl`` package. In this case, you would use the following - ``RDEPENDS`` statement:: + :term:`RDEPENDS` statement:: RDEPENDS_${PN}-dev += "perl" @@ -6024,19 +6053,19 @@ system and gives an overview of their function and contents. ``${PN}`` when modifying ``RDEPENDS_${PN}-dev``. Use the "+=" operator rather than the "=" operator. - The package names you use with ``RDEPENDS`` must appear as they would - in the ``PACKAGES`` variable. The :term:`PKG` variable + The package names you use with :term:`RDEPENDS` must appear as they would + in the :term:`PACKAGES` variable. The :term:`PKG` variable allows a different name to be used for the final package (e.g. the :ref:`debian ` class uses this to rename packages), but this final package name cannot be used with - ``RDEPENDS``, which makes sense as ``RDEPENDS`` is meant to be + :term:`RDEPENDS`, which makes sense as :term:`RDEPENDS` is meant to be independent of the package format used. BitBake, which the OpenEmbedded build system uses, supports specifying versioned dependencies. Although the syntax varies depending on the packaging format, BitBake hides these differences from you. Here is the general syntax to specify versions with the - ``RDEPENDS`` variable:: + :term:`RDEPENDS` variable:: RDEPENDS_${PN} = "package (operator version)" @@ -6052,7 +6081,7 @@ system and gives an overview of their function and contents. .. note:: - You can use ``EXTENDPKGV`` to provide a full package version + You can use :term:`EXTENDPKGV` to provide a full package version specification. For example, the following sets up a dependency on version 1.2 or @@ -6073,8 +6102,8 @@ system and gives an overview of their function and contents. class, this variable identifies distribution features that must exist in the current configuration in order for the OpenEmbedded build system to build the recipe. In other words, if the - ``REQUIRED_DISTRO_FEATURES`` variable lists a feature that does not - appear in ``DISTRO_FEATURES`` within the current configuration, then + :term:`REQUIRED_DISTRO_FEATURES` variable lists a feature that does not + appear in :term:`DISTRO_FEATURES` within the current configuration, then the recipe will be skipped, and if the build system attempts to build the recipe then an error will be triggered. @@ -6122,7 +6151,7 @@ system and gives an overview of their function and contents. :term:`ROOTFS` Indicates a filesystem image to include as the root filesystem. - The ``ROOTFS`` variable is an optional variable used with the + The :term:`ROOTFS` variable is an optional variable used with the :ref:`image-live ` class. :term:`ROOTFS_POSTINSTALL_COMMAND` @@ -6183,11 +6212,11 @@ system and gives an overview of their function and contents. A list of package name aliases that a package also provides. These aliases are useful for satisfying runtime dependencies of other packages both during the build and on the target (as specified by - ``RDEPENDS``). + :term:`RDEPENDS`). .. note:: - A package's own name is implicitly already in its ``RPROVIDES`` list. + A package's own name is implicitly already in its :term:`RPROVIDES` list. As with all package-controlling variables, you must always use the variable in conjunction with a package name override. Here is an @@ -6200,16 +6229,16 @@ system and gives an overview of their function and contents. built. The package being built does not depend on this list of packages in order to successfully build, but rather uses them for extended usability. To specify runtime dependencies for packages, see - the ``RDEPENDS`` variable. + the :term:`RDEPENDS` variable. - The package manager will automatically install the ``RRECOMMENDS`` + The package manager will automatically install the :term:`RRECOMMENDS` list of packages when installing the built package. However, you can prevent listed packages from being installed by using the :term:`BAD_RECOMMENDATIONS`, :term:`NO_RECOMMENDATIONS`, and :term:`PACKAGE_EXCLUDE` variables. - Packages specified in ``RRECOMMENDS`` need not actually be produced. + Packages specified in :term:`RRECOMMENDS` need not actually be produced. However, there must be a recipe providing each package, either through the :term:`PACKAGES` or :term:`PACKAGES_DYNAMIC` variables or the @@ -6217,7 +6246,7 @@ system and gives an overview of their function and contents. during the build. If such a recipe does exist and the package is not produced, the build continues without error. - Because the ``RRECOMMENDS`` variable applies to packages being built, + Because the :term:`RRECOMMENDS` variable applies to packages being built, you should always attach an override to the variable to specify the particular package whose usability is being extended. For example, suppose you are building a development package that is extended to @@ -6228,14 +6257,14 @@ system and gives an overview of their function and contents. In the example, the package name (``${PN}-dev``) must appear as it would in - the ``PACKAGES`` namespace before any renaming of the output package + the :term:`PACKAGES` namespace before any renaming of the output package by classes such as ``debian.bbclass``. BitBake, which the OpenEmbedded build system uses, supports specifying versioned recommends. Although the syntax varies depending on the packaging format, BitBake hides these differences from you. Here is the general syntax to specify versions with the - ``RRECOMMENDS`` variable:: + :term:`RRECOMMENDS` variable:: RRECOMMENDS_${PN} = "package (operator version)" @@ -6257,7 +6286,7 @@ system and gives an overview of their function and contents. this variable to determine which package should be installed to replace other package(s) during an upgrade. In order to also have the other package(s) removed at the same time, you must add the name of - the other package to the ``RCONFLICTS`` variable. + the other package to the :term:`RCONFLICTS` variable. As with all package-controlling variables, you must use this variable in conjunction with a package name override. Here is an example:: @@ -6268,7 +6297,7 @@ system and gives an overview of their function and contents. specifying versioned replacements. Although the syntax varies depending on the packaging format, BitBake hides these differences from you. Here is the general syntax to specify versions with the - ``RREPLACES`` variable:: + :term:`RREPLACES` variable:: RREPLACES_${PN} = "package (operator version)" @@ -6304,7 +6333,7 @@ system and gives an overview of their function and contents. version. If the source tarball extracts the code to a directory named anything other than ``${BPN}-${PV}``, or if the source code is fetched from an SCM such as Git or Subversion, then you must set - ``S`` in the recipe so that the OpenEmbedded build system knows where + :term:`S` in the recipe so that the OpenEmbedded build system knows where to find the unpacked source. As an example, assume a :term:`Source Directory` @@ -6319,7 +6348,7 @@ system and gives an overview of their function and contents. This next example assumes a Git repository. By default, Git repositories are cloned to ``${WORKDIR}/git`` during :ref:`ref-tasks-fetch`. Since this path is different - from the default value of ``S``, you must set it specifically so the + from the default value of :term:`S`, you must set it specifically so the source can be located:: SRC_URI = "git://path/to/repo.git" @@ -6336,7 +6365,7 @@ system and gives an overview of their function and contents. been tested against. Identifiers consist of the host distributor ID followed by the release, as reported by the ``lsb_release`` tool or as read from ``/etc/lsb-release``. Separate the list items with - explicit newline characters (``\n``). If ``SANITY_TESTED_DISTROS`` is + explicit newline characters (``\n``). If :term:`SANITY_TESTED_DISTROS` is not empty and the current value of :term:`NATIVELSBSTRING` does not appear in the list, then the build system reports a warning that indicates the @@ -6347,7 +6376,7 @@ system and gives an overview of their function and contents. set this variable. Instead, use :term:`SDKMACHINE`. :term:`SDK_CUSTOM_TEMPLATECONF` - When building the extensible SDK, if ``SDK_CUSTOM_TEMPLATECONF`` is set to + When building the extensible SDK, if :term:`SDK_CUSTOM_TEMPLATECONF` is set to "1" and a ``conf/templateconf.conf`` file exists in the build directory (:term:`TOPDIR`) then this will be copied into the SDK. @@ -6355,7 +6384,7 @@ system and gives an overview of their function and contents. The directory set up and used by the :ref:`populate_sdk_base ` class to which the SDK is deployed. The ``populate_sdk_base`` class defines - ``SDK_DEPLOY`` as follows:: + :term:`SDK_DEPLOY` as follows:: SDK_DEPLOY = "${TMPDIR}/deploy/sdk" @@ -6369,8 +6398,8 @@ system and gives an overview of their function and contents. .. note:: - The ``SDK_DIR`` directory is a temporary directory as it is part of - ``WORKDIR``. The final output directory is :term:`SDK_DEPLOY`. + The :term:`SDK_DIR` directory is a temporary directory as it is part of + :term:`WORKDIR`. The final output directory is :term:`SDK_DEPLOY`. :term:`SDK_EXT_TYPE` Controls whether or not shared state artifacts are copied into the @@ -6409,7 +6438,7 @@ system and gives an overview of their function and contents. .. note:: - Enabling the ``SDK_INCLUDE_PKGDATA`` + Enabling the :term:`SDK_INCLUDE_PKGDATA` variable significantly increases build time because all of world needs to be built. Enabling the variable also slightly increases the size of the extensible SDK. @@ -6423,9 +6452,9 @@ system and gives an overview of their function and contents. IDE or from other tools and you do not want to perform additional steps to install the toolchain. - The ``SDK_INCLUDE_TOOLCHAIN`` variable defaults to "0" if - ``SDK_EXT_TYPE`` is set to "minimal", and defaults to "1" if - ``SDK_EXT_TYPE`` is set to "full". + The :term:`SDK_INCLUDE_TOOLCHAIN` variable defaults to "0" if + :term:`SDK_EXT_TYPE` is set to "minimal", and defaults to "1" if + :term:`SDK_EXT_TYPE` is set to "full". :term:`SDK_INHERIT_BLACKLIST` A list of classes to remove from the :term:`INHERIT` @@ -6451,7 +6480,7 @@ system and gives an overview of their function and contents. build system is running and thus would be potentially problematic within the extensible SDK. - By default, ``SDK_LOCAL_CONF_BLACKLIST`` is set in the + By default, :term:`SDK_LOCAL_CONF_BLACKLIST` is set in the :ref:`populate-sdk-ext ` class and excludes the following variables: @@ -6513,7 +6542,7 @@ system and gives an overview of their function and contents. .. note:: - The ``SDK_OUTPUT`` directory is a temporary directory as it is part of + The :term:`SDK_OUTPUT` directory is a temporary directory as it is part of :term:`WORKDIR` by way of :term:`SDK_DIR`. The final output directory is :term:`SDK_DEPLOY`. @@ -6521,7 +6550,7 @@ system and gives an overview of their function and contents. Specifies a list of architectures compatible with the SDK machine. This variable is set automatically and should not normally be hand-edited. Entries are separated using spaces and listed in order - of priority. The default value for ``SDK_PACKAGE_ARCHS`` is "all any + of priority. The default value for :term:`SDK_PACKAGE_ARCHS` is "all any noarch ${SDK_ARCH}-${SDKPKGSUFFIX}". :term:`SDK_POSTPROCESS_COMMAND` @@ -6536,7 +6565,7 @@ system and gives an overview of their function and contents. :term:`SDK_PREFIX` The toolchain binary prefix used for ``nativesdk`` recipes. The - OpenEmbedded build system uses the ``SDK_PREFIX`` value to set the + OpenEmbedded build system uses the :term:`SDK_PREFIX` value to set the :term:`TARGET_PREFIX` when building ``nativesdk`` recipes. The default value is "${SDK_SYS}-". @@ -6550,9 +6579,9 @@ system and gives an overview of their function and contents. - do_deploy Despite the default value of "" for the - ``SDK_RECRDEP_TASKS`` variable, the above four tasks are always added + :term:`SDK_RECRDEP_TASKS` variable, the above four tasks are always added to the SDK. To specify tasks beyond these four, you need to use the - ``SDK_RECRDEP_TASKS`` variable (e.g. you are defining additional + :term:`SDK_RECRDEP_TASKS` variable (e.g. you are defining additional tasks that are needed in order to build :term:`SDK_TARGETS`). @@ -6563,7 +6592,7 @@ system and gives an overview of their function and contents. The OpenEmbedded build system automatically sets this variable based on :term:`SDK_ARCH`, :term:`SDK_VENDOR`, and - :term:`SDK_OS`. You do not need to set the ``SDK_SYS`` + :term:`SDK_OS`. You do not need to set the :term:`SDK_SYS` variable yourself. :term:`SDK_TARGET_MANIFEST` @@ -6587,7 +6616,7 @@ system and gives an overview of their function and contents. standard or extensible SDK installation. The default value is "${PN}" (i.e. the image from which the SDK is built). - The ``SDK_TARGETS`` variable is an internal variable and typically + The :term:`SDK_TARGETS` variable is an internal variable and typically would not be changed. :term:`SDK_TITLE` @@ -6600,7 +6629,7 @@ system and gives an overview of their function and contents. SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK" For the default distribution "poky", - ``SDK_TITLE`` is set to "Poky (Yocto Project Reference Distro)". + :term:`SDK_TITLE` is set to "Poky (Yocto Project Reference Distro)". For information on how to change this default title, see the ":ref:`sdk-manual/appendix-customizing:changing the extensible sdk installer title`" @@ -6618,7 +6647,7 @@ system and gives an overview of their function and contents. :term:`SDK_VERSION` Specifies the version of the SDK. The Poky distribution configuration file (``/meta-poky/conf/distro/poky.conf``) sets the default - ``SDK_VERSION`` as follows:: + :term:`SDK_VERSION` as follows:: SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}" @@ -6636,7 +6665,7 @@ system and gives an overview of their function and contents. SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk" For the - default distribution "poky", the ``SDKEXTPATH`` is set to "poky_sdk". + default distribution "poky", the :term:`SDKEXTPATH` is set to "poky_sdk". For information on how to change this default directory, see the ":ref:`sdk-manual/appendix-customizing:changing the default sdk installation directory`" @@ -6644,7 +6673,7 @@ system and gives an overview of their function and contents. Extensible Software Development Kit (eSDK) manual. :term:`SDKIMAGE_FEATURES` - Equivalent to ``IMAGE_FEATURES``. However, this variable applies to + Equivalent to :term:`IMAGE_FEATURES`. However, this variable applies to the SDK generated from an image using the following command:: $ bitbake -c populate_sdk imagename @@ -6652,7 +6681,7 @@ system and gives an overview of their function and contents. :term:`SDKMACHINE` The machine for which the SDK is built. In other words, the SDK is built such that it runs on the target you specify with the - ``SDKMACHINE`` value. The value points to a corresponding ``.conf`` + :term:`SDKMACHINE` value. The value points to a corresponding ``.conf`` file under ``conf/machine-sdk/``. You can use "i686" and "x86_64" as possible values for this variable. @@ -6664,7 +6693,7 @@ system and gives an overview of their function and contents. .. note:: - You cannot set the ``SDKMACHINE`` + You cannot set the :term:`SDKMACHINE` variable in your distribution configuration file. If you do, the configuration will not take affect. @@ -6689,7 +6718,7 @@ system and gives an overview of their function and contents. building for the target. The flags are passed through the default value of the :term:`TARGET_CFLAGS` variable. - The ``SELECTED_OPTIMIZATION`` variable takes the value of + The :term:`SELECTED_OPTIMIZATION` variable takes the value of :term:`FULL_OPTIMIZATION` unless :term:`DEBUG_BUILD` = "1", in which case the value of :term:`DEBUG_OPTIMIZATION` is used. @@ -6703,7 +6732,7 @@ system and gives an overview of their function and contents. .. note:: - The ``SERIAL_CONSOLE`` variable is deprecated. Please use the + The :term:`SERIAL_CONSOLE` variable is deprecated. Please use the :term:`SERIAL_CONSOLES` variable. :term:`SERIAL_CONSOLES` @@ -6821,7 +6850,7 @@ system and gives an overview of their function and contents. :term:`SOURCE_MIRROR_FETCH` When you are fetching files to create a mirror of sources (i.e. - creating a source mirror), setting ``SOURCE_MIRROR_FETCH`` to "1" in + creating a source mirror), setting :term:`SOURCE_MIRROR_FETCH` to "1" in your ``local.conf`` configuration file ensures the source for all recipes are fetched regardless of whether or not a recipe is compatible with the configuration. A recipe is considered @@ -6833,7 +6862,7 @@ system and gives an overview of their function and contents. .. note:: - Do not set the ``SOURCE_MIRROR_FETCH`` + Do not set the :term:`SOURCE_MIRROR_FETCH` variable unless you are creating a source mirror. In other words, do not set the variable during a normal build. @@ -6851,11 +6880,11 @@ system and gives an overview of their function and contents. .. note:: - You can specify only a single URL in ``SOURCE_MIRROR_URL``. + You can specify only a single URL in :term:`SOURCE_MIRROR_URL`. :term:`SPDXLICENSEMAP` Maps commonly used license names to their SPDX counterparts found in - ``meta/files/common-licenses/``. For the default ``SPDXLICENSEMAP`` + ``meta/files/common-licenses/``. For the default :term:`SPDXLICENSEMAP` mappings, see the ``meta/conf/licenses.conf`` file. For additional information, see the :term:`LICENSE` @@ -6886,7 +6915,7 @@ system and gives an overview of their function and contents. SPL_IMAGE ?= "${SPL_BINARYNAME}-${MACHINE}-${PV}-${PR}" SPL_SYMLINK ?= "${SPL_BINARYNAME}-${MACHINE}" - The ``SPL_BINARY`` variable helps form + The :term:`SPL_BINARY` variable helps form various ``SPL_*`` variables used by the OpenEmbedded build system. See the BeagleBone machine configuration example in the @@ -6899,7 +6928,7 @@ system and gives an overview of their function and contents. OpenEmbedded build system which bits to pull in for the build and how to pull them in. For example, if the recipe or append file only needs to fetch a tarball from the Internet, the recipe or append file uses - a single ``SRC_URI`` entry. On the other hand, if the recipe or + a single :term:`SRC_URI` entry. On the other hand, if the recipe or append file needs to fetch a tarball, apply two patches, and include a custom file, the recipe or append file would include four instances of the variable. @@ -6978,7 +7007,7 @@ system and gives an overview of their function and contents. - ``az://`` - Fetches files from an Azure Storage account. - There are standard and recipe-specific options for ``SRC_URI``. Here are + There are standard and recipe-specific options for :term:`SRC_URI`. Here are standard ones: - ``apply`` - Whether to apply the patch or not. The default @@ -6997,19 +7026,19 @@ system and gives an overview of their function and contents. :term:`SRCDATE` is equal to or greater than ``mindate``. - - ``maxdate`` - Apply the patch only if ``SRCDATE`` is not later + - ``maxdate`` - Apply the patch only if :term:`SRCDATE` is not later than ``maxdate``. - - ``minrev`` - Apply the patch only if ``SRCREV`` is equal to or + - ``minrev`` - Apply the patch only if :term:`SRCREV` is equal to or greater than ``minrev``. - - ``maxrev`` - Apply the patch only if ``SRCREV`` is not later + - ``maxrev`` - Apply the patch only if :term:`SRCREV` is not later than ``maxrev``. - - ``rev`` - Apply the patch only if ``SRCREV`` is equal to + - ``rev`` - Apply the patch only if :term:`SRCREV` is equal to ``rev``. - - ``notrev`` - Apply the patch only if ``SRCREV`` is not equal to + - ``notrev`` - Apply the patch only if :term:`SRCREV` is not equal to ``rev``. Here are some additional options worth mentioning: @@ -7022,19 +7051,19 @@ system and gives an overview of their function and contents. the Git fetcher is used. - ``subdir`` - Places the file (or extracts its contents) into the - specified subdirectory of ``WORKDIR`` when the local (``file://``) + specified subdirectory of :term:`WORKDIR` when the local (``file://``) fetcher is used. - ``localdir`` - Places the file (or extracts its contents) into - the specified subdirectory of ``WORKDIR`` when the CVS fetcher is + the specified subdirectory of :term:`WORKDIR` when the CVS fetcher is used. - ``subpath`` - Limits the checkout to a specific subpath of the tree when using the Git fetcher is used. - ``name`` - Specifies a name to be used for association with - ``SRC_URI`` checksums or :term:`SRCREV` when you have more than one - file or git repository specified in ``SRC_URI``. For example:: + :term:`SRC_URI` checksums or :term:`SRCREV` when you have more than one + file or git repository specified in :term:`SRC_URI`. For example:: SRC_URI = "git://example.com/foo.git;name=first \ git://example.com/bar.git;name=second \ @@ -7051,7 +7080,7 @@ system and gives an overview of their function and contents. :term:`SRC_URI_OVERRIDES_PACKAGE_ARCH` By default, the OpenEmbedded build system automatically detects whether ``SRC_URI`` contains files that are machine-specific. If so, - the build system automatically changes ``PACKAGE_ARCH``. Setting this + the build system automatically changes :term:`PACKAGE_ARCH`. Setting this variable to "0" disables this behavior. :term:`SRCDATE` @@ -7063,16 +7092,16 @@ system and gives an overview of their function and contents. Returns the version string of the current package. This string is used to help define the value of :term:`PV`. - The ``SRCPV`` variable is defined in the ``meta/conf/bitbake.conf`` + The :term:`SRCPV` variable is defined in the ``meta/conf/bitbake.conf`` configuration file in the :term:`Source Directory` as follows:: SRCPV = "${@bb.fetch2.get_srcrev(d)}" - Recipes that need to define ``PV`` do so with the help of the - ``SRCPV``. For example, the ``ofono`` recipe (``ofono_git.bb``) + Recipes that need to define :term:`PV` do so with the help of the + :term:`SRCPV`. For example, the ``ofono`` recipe (``ofono_git.bb``) located in ``meta/recipes-connectivity`` in the Source Directory - defines ``PV`` as follows:: + defines :term:`PV` as follows:: PV = "0.12-git${SRCPV}" @@ -7081,26 +7110,50 @@ system and gives an overview of their function and contents. variable applies to Subversion, Git, Mercurial, and Bazaar only. Note that if you want to build a fixed revision and you want to avoid performing a query on the remote repository every time BitBake parses - your recipe, you should specify a ``SRCREV`` that is a full revision + your recipe, you should specify a :term:`SRCREV` that is a full revision identifier and not just a tag. .. note:: For information on limitations when inheriting the latest revision - of software using ``SRCREV``, see the :term:`AUTOREV` variable + of software using :term:`SRCREV`, see the :term:`AUTOREV` variable description and the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`" section, which is in the Yocto Project Development Tasks Manual. + :term:`SRCTREECOVEREDTASKS` + A list of tasks that are typically not relevant (and therefore skipped) + when building using the :ref:`externalsrc ` + class. The default value as set in that class file is the set of tasks + that are rarely needed when using external source:: + + SRCTREECOVEREDTASKS ?= "do_patch do_unpack do_fetch" + + The notable exception is when processing external kernel source as + defined in the :ref:`kernel-yocto ` + class file (formatted for aesthetics):: + + SRCTREECOVEREDTASKS += "\ + do_validate_branches \ + do_kernel_configcheck \ + do_kernel_checkout \ + do_fetch \ + do_unpack \ + do_patch \ + " + + See the associated :term:`EXTERNALSRC` and :term:`EXTERNALSRC_BUILD` + variables for more information. + :term:`SSTATE_DIR` The directory for the shared state cache. :term:`SSTATE_MIRROR_ALLOW_NETWORK` If set to "1", allows fetches from mirrors that are specified in :term:`SSTATE_MIRRORS` to work even when - fetching from the network is disabled by setting ``BB_NO_NETWORK`` to - "1". Using the ``SSTATE_MIRROR_ALLOW_NETWORK`` variable is useful if - you have set ``SSTATE_MIRRORS`` to point to an internal server for + fetching from the network is disabled by setting :term:`BB_NO_NETWORK` to + "1". Using the :term:`SSTATE_MIRROR_ALLOW_NETWORK` variable is useful if + you have set :term:`SSTATE_MIRRORS` to point to an internal server for your shared state cache, but you want to disable any other fetching from the network. @@ -7118,7 +7171,7 @@ system and gives an overview of their function and contents. When pointing to sstate build artifacts on another machine that uses a different GCC version for native builds, you must configure - ``SSTATE_MIRRORS`` with a regular expression that maps local search + :term:`SSTATE_MIRRORS` with a regular expression that maps local search paths to server paths. The paths need to take into account :term:`NATIVELSBSTRING` set by the :ref:`uninative ` class. For example, the @@ -7147,8 +7200,8 @@ system and gives an overview of their function and contents. (sstate) object during the first stage of preparing the sysroots. That object is scanned for hardcoded paths for original installation locations. The list of files that are scanned for paths is controlled - by the ``SSTATE_SCAN_FILES`` variable. Typically, recipes add files - they want to be scanned to the value of ``SSTATE_SCAN_FILES`` rather + by the :term:`SSTATE_SCAN_FILES` variable. Typically, recipes add files + they want to be scanned to the value of :term:`SSTATE_SCAN_FILES` rather than the variable being comprehensively set. The :ref:`sstate ` class specifies the default list of files. @@ -7210,7 +7263,7 @@ system and gives an overview of their function and contents. .. note:: - Recipes should never write files directly under the ``STAGING_DIR`` + Recipes should never write files directly under the :term:`STAGING_DIR` directory because the OpenEmbedded build system manages the directory automatically. Instead, files should be installed to ``${``\ :term:`D`\ ``}`` within your recipe's :ref:`ref-tasks-install` @@ -7225,7 +7278,7 @@ system and gives an overview of their function and contents. files. Exceptions include ``-native`` recipes, where the ``do_populate_sysroot`` task instead uses :term:`STAGING_DIR_NATIVE`. Depending on - the type of recipe and the build target, ``STAGING_DIR_HOST`` can + the type of recipe and the build target, :term:`STAGING_DIR_HOST` can have the following values: - For recipes building for the target machine, the value is @@ -7243,7 +7296,7 @@ system and gives an overview of their function and contents. standard build environment variables such as :term:`CPPFLAGS` and :term:`CFLAGS` are set up so that both host paths - and ``STAGING_DIR_NATIVE`` are searched for libraries and + and :term:`STAGING_DIR_NATIVE` are searched for libraries and headers using, for example, GCC's ``-isystem`` option. Thus, the emphasis is that the ``STAGING_DIR*`` variables @@ -7251,7 +7304,7 @@ system and gives an overview of their function and contents. :ref:`ref-tasks-configure`, :ref:`ref-tasks-compile`, and :ref:`ref-tasks-install`. Having the real system - root correspond to ``STAGING_DIR_HOST`` makes conceptual sense + root correspond to :term:`STAGING_DIR_HOST` makes conceptual sense for ``-native`` recipes, as they make use of host headers and libraries. @@ -7262,7 +7315,7 @@ system and gives an overview of their function and contents. :term:`STAGING_DIR_TARGET` Specifies the path to the sysroot used for the system for which the component generates code. For components that do not generate code, - which is the majority, ``STAGING_DIR_TARGET`` is set to match + which is the majority, :term:`STAGING_DIR_TARGET` is set to match :term:`STAGING_DIR_HOST`. Some recipes build binaries that can run on the target system but @@ -7271,8 +7324,8 @@ system and gives an overview of their function and contents. primary system is referred to as the "HOST" and the secondary, or different, system is referred to as the "TARGET". Thus, the binaries run on the "HOST" system and generate binaries for the "TARGET" - system. The ``STAGING_DIR_HOST`` variable points to the sysroot used - for the "HOST" system, while ``STAGING_DIR_TARGET`` points to the + system. The :term:`STAGING_DIR_HOST` variable points to the sysroot used + for the "HOST" system, while :term:`STAGING_DIR_TARGET` points to the sysroot used for the "TARGET" system. :term:`STAGING_ETCDIR_NATIVE` @@ -7297,7 +7350,7 @@ system and gives an overview of their function and contents. Points to the directory containing the kernel build artifacts. Recipes building software that needs to access kernel build artifacts (e.g. ``systemtap-uprobes``) can look in the directory specified with - the ``STAGING_KERNEL_BUILDDIR`` variable to find these artifacts + the :term:`STAGING_KERNEL_BUILDDIR` variable to find these artifacts after the kernel has been built. :term:`STAGING_KERNEL_DIR` @@ -7317,7 +7370,7 @@ system and gives an overview of their function and contents. Specifies the base path used to create recipe stamp files. The path to an actual stamp file is constructed by evaluating this string and then appending additional information. Currently, the default - assignment for ``STAMP`` as set in the ``meta/conf/bitbake.conf`` + assignment for :term:`STAMP` as set in the ``meta/conf/bitbake.conf`` file is:: STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}" @@ -7344,8 +7397,8 @@ system and gives an overview of their function and contents. :term:`SUMMARY` The short (72 characters or less) summary of the binary package for packaging systems such as ``opkg``, ``rpm``, or ``dpkg``. By default, - ``SUMMARY`` is used to define the - :term:`DESCRIPTION` variable if ``DESCRIPTION`` is + :term:`SUMMARY` is used to define the + :term:`DESCRIPTION` variable if :term:`DESCRIPTION` is not set in the recipe. :term:`SVNDIR` @@ -7475,10 +7528,10 @@ system and gives an overview of their function and contents. :term:`SYSTEMD_BOOT_CFG` When :term:`EFI_PROVIDER` is set to - "systemd-boot", the ``SYSTEMD_BOOT_CFG`` variable specifies the + "systemd-boot", the :term:`SYSTEMD_BOOT_CFG` variable specifies the configuration file that should be used. By default, the :ref:`systemd-boot ` class sets the - ``SYSTEMD_BOOT_CFG`` as follows:: + :term:`SYSTEMD_BOOT_CFG` as follows:: SYSTEMD_BOOT_CFG ?= "${:term:`S`}/loader.conf" @@ -7487,11 +7540,11 @@ system and gives an overview of their function and contents. :term:`SYSTEMD_BOOT_ENTRIES` When :term:`EFI_PROVIDER` is set to - "systemd-boot", the ``SYSTEMD_BOOT_ENTRIES`` variable specifies a + "systemd-boot", the :term:`SYSTEMD_BOOT_ENTRIES` variable specifies a list of entry files (``*.conf``) to install that contain one boot entry per file. By default, the :ref:`systemd-boot ` class sets the - ``SYSTEMD_BOOT_ENTRIES`` as follows:: + :term:`SYSTEMD_BOOT_ENTRIES` as follows:: SYSTEMD_BOOT_ENTRIES ?= "" @@ -7500,10 +7553,10 @@ system and gives an overview of their function and contents. :term:`SYSTEMD_BOOT_TIMEOUT` When :term:`EFI_PROVIDER` is set to - "systemd-boot", the ``SYSTEMD_BOOT_TIMEOUT`` variable specifies the + "systemd-boot", the :term:`SYSTEMD_BOOT_TIMEOUT` variable specifies the boot menu timeout in seconds. By default, the :ref:`systemd-boot ` class sets the - ``SYSTEMD_BOOT_TIMEOUT`` as follows:: + :term:`SYSTEMD_BOOT_TIMEOUT` as follows:: SYSTEMD_BOOT_TIMEOUT ?= "10" @@ -7513,14 +7566,14 @@ system and gives an overview of their function and contents. :term:`SYSTEMD_PACKAGES` When inheriting the :ref:`systemd ` class, this variable locates the systemd unit files when they are not found - in the main recipe's package. By default, the ``SYSTEMD_PACKAGES`` + in the main recipe's package. By default, the :term:`SYSTEMD_PACKAGES` variable is set such that the systemd unit files are assumed to reside in the recipes main package:: SYSTEMD_PACKAGES ?= "${PN}" If these unit files are not in this recipe's main package, you need - to use ``SYSTEMD_PACKAGES`` to list the package or packages in which + to use :term:`SYSTEMD_PACKAGES` to list the package or packages in which the build system can find the systemd unit files. :term:`SYSTEMD_SERVICE` @@ -7541,7 +7594,7 @@ system and gives an overview of their function and contents. (allowing login), assuming :term:`USE_VT` is not set to "0". - The default value for ``SYSVINIT_ENABLED_GETTYS`` is "1" (i.e. only + The default value for :term:`SYSVINIT_ENABLED_GETTYS` is "1" (i.e. only run a getty on the first virtual terminal). :term:`T` @@ -7555,7 +7608,7 @@ system and gives an overview of their function and contents. BitBake unpacks and builds the recipe. The default ``bitbake.conf`` file sets this variable. - The ``T`` variable is not to be confused with the + The :term:`T` variable is not to be confused with the :term:`TMPDIR` variable, which points to the root of the directory tree where BitBake places the output of an entire build. @@ -7579,7 +7632,7 @@ system and gives an overview of their function and contents. :term:`TARGET_AS_ARCH` Specifies architecture-specific assembler flags for the target - system. ``TARGET_AS_ARCH`` is initialized from + system. :term:`TARGET_AS_ARCH` is initialized from :term:`TUNE_ASARGS` by default in the BitBake configuration file (``meta/conf/bitbake.conf``):: @@ -7587,20 +7640,20 @@ system and gives an overview of their function and contents. :term:`TARGET_CC_ARCH` Specifies architecture-specific C compiler flags for the target - system. ``TARGET_CC_ARCH`` is initialized from + system. :term:`TARGET_CC_ARCH` is initialized from :term:`TUNE_CCARGS` by default. .. note:: It is a common workaround to append :term:`LDFLAGS` to - ``TARGET_CC_ARCH`` in recipes that build software for the target that - would not otherwise respect the exported ``LDFLAGS`` variable. + :term:`TARGET_CC_ARCH` in recipes that build software for the target that + would not otherwise respect the exported :term:`LDFLAGS` variable. :term:`TARGET_CC_KERNEL_ARCH` This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune. The flag is used rarely and only for cases where a userspace :term:`TUNE_CCARGS` is not - compatible with the kernel compilation. The ``TARGET_CC_KERNEL_ARCH`` + compatible with the kernel compilation. The :term:`TARGET_CC_KERNEL_ARCH` variable allows the kernel (and associated modules) to use a different configuration. See the ``meta/conf/machine/include/arm/feature-arm-thumb.inc`` file in the @@ -7612,8 +7665,8 @@ system and gives an overview of their function and contents. :term:`CFLAGS` is set to the value of this variable by default. - Additionally, the SDK's environment setup script sets the ``CFLAGS`` - variable in the environment to the ``TARGET_CFLAGS`` value so that + Additionally, the SDK's environment setup script sets the :term:`CFLAGS` + variable in the environment to the :term:`TARGET_CFLAGS` value so that executables built using the SDK also have the flags applied. :term:`TARGET_CPPFLAGS` @@ -7623,7 +7676,7 @@ system and gives an overview of their function and contents. value of this variable by default. Additionally, the SDK's environment setup script sets the - ``CPPFLAGS`` variable in the environment to the ``TARGET_CPPFLAGS`` + :term:`CPPFLAGS` variable in the environment to the :term:`TARGET_CPPFLAGS` value so that executables built using the SDK also have the flags applied. @@ -7634,7 +7687,7 @@ system and gives an overview of their function and contents. by default. Additionally, the SDK's environment setup script sets the - ``CXXFLAGS`` variable in the environment to the ``TARGET_CXXFLAGS`` + :term:`CXXFLAGS` variable in the environment to the :term:`TARGET_CXXFLAGS` value so that executables built using the SDK also have the flags applied. @@ -7646,7 +7699,7 @@ system and gives an overview of their function and contents. :term:`TARGET_LD_ARCH` Specifies architecture-specific linker flags for the target system. - ``TARGET_LD_ARCH`` is initialized from + :term:`TARGET_LD_ARCH` is initialized from :term:`TUNE_LDARGS` by default in the BitBake configuration file (``meta/conf/bitbake.conf``):: @@ -7660,7 +7713,7 @@ system and gives an overview of their function and contents. Additionally, the SDK's environment setup script sets the :term:`LDFLAGS` variable in the environment to the - ``TARGET_LDFLAGS`` value so that executables built using the SDK also + :term:`TARGET_LDFLAGS` value so that executables built using the SDK also have the flags applied. :term:`TARGET_OS` @@ -7682,7 +7735,7 @@ system and gives an overview of their function and contents. value of ``BUILD_PREFIX``. - For native SDK recipes (``nativesdk``), the build system sets the - variable to the value of ``SDK_PREFIX``. + variable to the value of :term:`SDK_PREFIX`. :term:`TARGET_SYS` Specifies the system, including the architecture and the operating @@ -7696,7 +7749,7 @@ system and gives an overview of their function and contents. .. note:: - You do not need to set the ``TARGET_SYS`` variable yourself. + You do not need to set the :term:`TARGET_SYS` variable yourself. Consider these two examples: @@ -7727,11 +7780,11 @@ system and gives an overview of their function and contents. In the ``defaultsetup.conf`` file, the default value of ``TCLIBCAPPEND`` is "-${TCLIBC}". However, distros such as poky, which normally only support one ``libc`` variant, set - ``TCLIBCAPPEND`` to "" in their distro configuration file resulting + :term:`TCLIBCAPPEND` to "" in their distro configuration file resulting in no suffix being applied. :term:`TCMODE` - Specifies the toolchain selector. ``TCMODE`` controls the + Specifies the toolchain selector. :term:`TCMODE` controls the characteristics of the generated packages and images by telling the OpenEmbedded build system which toolchain profile to use. By default, the OpenEmbedded build system builds its own internal toolchain. The @@ -7740,7 +7793,7 @@ system and gives an overview of their function and contents. .. note:: - If ``TCMODE`` is set to a value other than "default", then it is your + If :term:`TCMODE` is set to a value other than "default", then it is your responsibility to ensure that the toolchain is compatible with the default toolchain. Using older or newer versions of these components might cause build problems. See the Release Notes for @@ -7750,7 +7803,7 @@ system and gives an overview of their function and contents. page on the Yocto Project website and click on the "RELEASE INFORMATION" link for the appropriate release. - The ``TCMODE`` variable is similar to :term:`TCLIBC`, + The :term:`TCMODE` variable is similar to :term:`TCLIBC`, which controls the variant of the GNU standard C library (``libc``) used during the build process: ``glibc`` or ``musl``. @@ -7776,7 +7829,7 @@ system and gives an overview of their function and contents. the :term:`TEST_EXPORT_ONLY` variable is set to "1". - The ``TEST_EXPORT_DIR`` variable defaults to + The :term:`TEST_EXPORT_DIR` variable defaults to ``"${TMPDIR}/testimage/${PN}"``. :term:`TEST_EXPORT_ONLY` @@ -7786,7 +7839,7 @@ system and gives an overview of their function and contents. :term:`TEST_LOG_DIR` Holds the SSH log and the boot log for QEMU machines. The - ``TEST_LOG_DIR`` variable defaults to ``"${WORKDIR}/testimage"``. + :term:`TEST_LOG_DIR` variable defaults to ``"${WORKDIR}/testimage"``. .. note:: @@ -7806,7 +7859,7 @@ system and gives an overview of their function and contents. For automated hardware testing, specifies additional arguments to pass through to the command specified in :term:`TEST_POWERCONTROL_CMD`. Setting - ``TEST_POWERCONTROL_EXTRA_ARGS`` is optional. You can use it if you + :term:`TEST_POWERCONTROL_EXTRA_ARGS` is optional. You can use it if you wish, for example, to separate the machine-specific and non-machine-specific parts of the arguments. @@ -7837,7 +7890,7 @@ system and gives an overview of their function and contents. For automated hardware testing, specifies additional arguments to pass through to the command specified in :term:`TEST_SERIALCONTROL_CMD`. Setting - ``TEST_SERIALCONTROL_EXTRA_ARGS`` is optional. You can use it if you + :term:`TEST_SERIALCONTROL_EXTRA_ARGS` is optional. You can use it if you wish, for example, to separate the machine-specific and non-machine-specific parts of the command. @@ -7849,7 +7902,7 @@ system and gives an overview of their function and contents. .. note:: - The ``TEST_SERVER_IP`` variable is only used for a small number of + The :term:`TEST_SERVER_IP` variable is only used for a small number of tests such as the "dnf" test suite, which needs to download packages from ``WORKDIR/oe-rootfs-repo``. @@ -7866,7 +7919,7 @@ system and gives an overview of their function and contents. QEMU. Tests include ``ping``, ``ssh``, ``df`` among others. You can add - your own tests to the list of tests by appending ``TEST_SUITES`` as + your own tests to the list of tests by appending :term:`TEST_SUITES` as follows:: TEST_SUITES_append = " mytest" @@ -7905,7 +7958,7 @@ system and gives an overview of their function and contents. the controllers by adding a module in the layer's ``/lib/oeqa/controllers`` directory and by inheriting the ``BaseTarget`` class, which is an abstract class that cannot be used - as a value of ``TEST_TARGET``. + as a value of :term:`TEST_TARGET`. You can provide the following arguments with ``TEST_TARGET``: @@ -7930,7 +7983,7 @@ system and gives an overview of their function and contents. section in the Yocto Project Development Tasks Manual. :term:`TEST_TARGET_IP` - The IP address of your hardware under test. The ``TEST_TARGET_IP`` + The IP address of your hardware under test. The :term:`TEST_TARGET_IP` variable has no effect when :term:`TEST_TARGET` is set to "qemu". @@ -7947,7 +8000,7 @@ system and gives an overview of their function and contents. :term:`TESTIMAGE_AUTO` Automatically runs the series of automated tests for images when an - image is successfully built. Setting ``TESTIMAGE_AUTO`` to "1" causes + image is successfully built. Setting :term:`TESTIMAGE_AUTO` to "1" causes any image that successfully builds to automatically boot under QEMU. Using the variable also adds in dependencies so that any SDK for which testing is requested is automatically built first. @@ -7979,7 +8032,7 @@ system and gives an overview of their function and contents. :term:`TMPDIR` This variable is the base directory the OpenEmbedded build system uses for all build output and intermediate files (other than the - shared state cache). By default, the ``TMPDIR`` variable points to + shared state cache). By default, the :term:`TMPDIR` variable points to ``tmp`` within the :term:`Build Directory`. If you want to establish this directory in a location other than the @@ -7988,14 +8041,14 @@ system and gives an overview of their function and contents. #TMPDIR = "${TOPDIR}/tmp" - An example use for this scenario is to set ``TMPDIR`` to a local disk, + 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. - The filesystem used by ``TMPDIR`` must have standard filesystem + The filesystem used by :term:`TMPDIR` must have standard filesystem semantics (i.e. mixed-case files are unique, POSIX file locking, and persistent inodes). Due to various issues with NFS and bugs in some implementations, NFS does not meet this minimum requirement. - Consequently, ``TMPDIR`` cannot be on NFS. + Consequently, :term:`TMPDIR` cannot be on NFS. :term:`TOOLCHAIN_HOST_TASK` This variable lists packages the OpenEmbedded build system uses when @@ -8024,7 +8077,7 @@ system and gives an overview of their function and contents. :term:`TOOLCHAIN_OUTPUTNAME` This variable defines the name used for the toolchain output. The :ref:`populate_sdk_base ` class sets - the ``TOOLCHAIN_OUTPUTNAME`` variable as follows:: + the :term:`TOOLCHAIN_OUTPUTNAME` variable as follows:: TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}" @@ -8060,7 +8113,7 @@ system and gives an overview of their function and contents. variable is used where the architecture is needed in a value where underscores are not allowed, for example within package filenames. In this case, dash characters replace any underscore characters used in - ``TARGET_ARCH``. + :term:`TARGET_ARCH`. Do not edit this variable. @@ -8069,18 +8122,18 @@ system and gives an overview of their function and contents. ``arm``, ``armeb``, ``mips``, ``mips64``, and so forth). BitBake uses this value to setup configuration. - ``TUNE_ARCH`` definitions are specific to a given architecture. The + :term:`TUNE_ARCH` definitions are specific to a given architecture. The definitions can be a single static definition, or can be dynamically adjusted. You can see details for a given CPU family by looking at the architecture's ``README`` file. For example, the ``meta/conf/machine/include/mips/README`` file in the :term:`Source Directory` provides information for - ``TUNE_ARCH`` specific to the ``mips`` architecture. + :term:`TUNE_ARCH` specific to the ``mips`` architecture. - ``TUNE_ARCH`` is tied closely to + :term:`TUNE_ARCH` is tied closely to :term:`TARGET_ARCH`, which defines the target machine's architecture. The BitBake configuration file - (``meta/conf/bitbake.conf``) sets ``TARGET_ARCH`` as follows:: + (``meta/conf/bitbake.conf``) sets :term:`TARGET_ARCH` as follows:: TARGET_ARCH = "${TUNE_ARCH}" @@ -8098,7 +8151,7 @@ system and gives an overview of their function and contents. :term:`TUNE_ASARGS` Specifies architecture-specific assembler flags for the target system. The set of flags is based on the selected tune features. - ``TUNE_ASARGS`` is set using the tune include files, which are + :term:`TUNE_ASARGS` is set using the tune include files, which are typically under ``meta/conf/machine/include/`` and are influenced through :term:`TUNE_FEATURES`. For example, the ``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags @@ -8115,7 +8168,7 @@ system and gives an overview of their function and contents. :term:`TUNE_CCARGS` Specifies architecture-specific C compiler flags for the target system. The set of flags is based on the selected tune features. - ``TUNE_CCARGS`` is set using the tune include files, which are + :term:`TUNE_CCARGS` is set using the tune include files, which are typically under ``meta/conf/machine/include/`` and are influenced through :term:`TUNE_FEATURES`. @@ -8135,7 +8188,7 @@ system and gives an overview of their function and contents. are not conflicting and that they are supported. The BitBake configuration file (``meta/conf/bitbake.conf``) defines - ``TUNE_FEATURES`` as follows:: + :term:`TUNE_FEATURES` as follows:: TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}" @@ -8144,7 +8197,7 @@ system and gives an overview of their function and contents. :term:`TUNE_LDARGS` Specifies architecture-specific linker flags for the target system. The set of flags is based on the selected tune features. - ``TUNE_LDARGS`` is set using the tune include files, which are + :term:`TUNE_LDARGS` is set using the tune include files, which are typically under ``meta/conf/machine/include/`` and are influenced through :term:`TUNE_FEATURES`. For example, the ``meta/conf/machine/include/x86/arch-x86.inc`` file defines the flags @@ -8174,12 +8227,12 @@ system and gives an overview of their function and contents. :term:`TUNEABI` An underlying Application Binary Interface (ABI) used by a particular tuning in a given toolchain layer. Providers that use prebuilt - libraries can use the ``TUNEABI``, + libraries can use the :term:`TUNEABI`, :term:`TUNEABI_OVERRIDE`, and :term:`TUNEABI_WHITELIST` variables to check compatibility of tunings against their selection of libraries. - If ``TUNEABI`` is undefined, then every tuning is allowed. See the + If :term:`TUNEABI` is undefined, then every tuning is allowed. See the :ref:`sanity ` class to see how the variable is used. @@ -8187,7 +8240,7 @@ system and gives an overview of their function and contents. If set, the OpenEmbedded system ignores the :term:`TUNEABI_WHITELIST` variable. Providers that use prebuilt libraries can use the - ``TUNEABI_OVERRIDE``, ``TUNEABI_WHITELIST``, and + :term:`TUNEABI_OVERRIDE`, :term:`TUNEABI_WHITELIST`, and :term:`TUNEABI` variables to check compatibility of a tuning against their selection of libraries. @@ -8196,9 +8249,9 @@ system and gives an overview of their function and contents. :term:`TUNEABI_WHITELIST` A whitelist of permissible :term:`TUNEABI` values. If - ``TUNEABI_WHITELIST`` is not set, all tunes are allowed. Providers - that use prebuilt libraries can use the ``TUNEABI_WHITELIST``, - :term:`TUNEABI_OVERRIDE`, and ``TUNEABI`` + :term:`TUNEABI_WHITELIST` is not set, all tunes are allowed. Providers + that use prebuilt libraries can use the :term:`TUNEABI_WHITELIST`, + :term:`TUNEABI_OVERRIDE`, and :term:`TUNEABI` variables to check compatibility of a tuning against their selection of libraries. @@ -8243,35 +8296,35 @@ system and gives an overview of their function and contents. UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config" In this example, "sd" is selected as the configuration of the possible four for the - ``UBOOT_MACHINE``. The "sd" configuration defines - "mx6qsabreauto_config" as the value for ``UBOOT_MACHINE``, while the + :term:`UBOOT_MACHINE`. The "sd" configuration defines + "mx6qsabreauto_config" as the value for :term:`UBOOT_MACHINE`, while the "sdcard" specifies the ``IMAGE_FSTYPES`` to use for the U-Boot image. - For more information on how the ``UBOOT_CONFIG`` is handled, see the + For more information on how the :term:`UBOOT_CONFIG` is handled, see the :ref:`uboot-config ` class. :term:`UBOOT_DTB_LOADADDRESS` Specifies the load address for the dtb image used by U-Boot. During FIT - image creation, the ``UBOOT_DTB_LOADADDRESS`` variable is used in + image creation, the :term:`UBOOT_DTB_LOADADDRESS` variable is used in :ref:`kernel-fitimage ` class to specify the load address to be used in creating the dtb sections of Image Tree Source for the FIT image. :term:`UBOOT_DTBO_LOADADDRESS` Specifies the load address for the dtbo image used by U-Boot. During FIT - image creation, the ``UBOOT_DTBO_LOADADDRESS`` variable is used in + image creation, the :term:`UBOOT_DTBO_LOADADDRESS` variable is used in :ref:`kernel-fitimage ` class to specify the load address to be used in creating the dtbo sections of Image Tree Source for the FIT image. :term:`UBOOT_ENTRYPOINT` Specifies the entry point for the U-Boot image. During U-Boot image - creation, the ``UBOOT_ENTRYPOINT`` variable is passed as a + creation, the :term:`UBOOT_ENTRYPOINT` variable is passed as a command-line parameter to the ``uboot-mkimage`` utility. :term:`UBOOT_LOADADDRESS` Specifies the load address for the U-Boot image. During U-Boot image - creation, the ``UBOOT_LOADADDRESS`` variable is passed as a + creation, the :term:`UBOOT_LOADADDRESS` variable is passed as a command-line parameter to the ``uboot-mkimage`` utility. :term:`UBOOT_LOCALVERSION` @@ -8322,7 +8375,7 @@ system and gives an overview of their function and contents. :term:`UBOOT_RD_ENTRYPOINT` Specifies the entrypoint for the RAM disk image. During FIT image creation, the - ``UBOOT_RD_ENTRYPOINT`` variable is used + :term:`UBOOT_RD_ENTRYPOINT` variable is used in :ref:`kernel-fitimage ` class to specify the entrypoint to be used in creating the Image Tree Source for the FIT image. @@ -8330,7 +8383,7 @@ system and gives an overview of their function and contents. :term:`UBOOT_RD_LOADADDRESS` Specifies the load address for the RAM disk image. During FIT image creation, the - ``UBOOT_RD_LOADADDRESS`` variable is used + :term:`UBOOT_RD_LOADADDRESS` variable is used in :ref:`kernel-fitimage ` class to specify the load address to be used in creating the Image Tree Source for the FIT image. @@ -8371,16 +8424,16 @@ system and gives an overview of their function and contents. However, there are common options that are passed to all configure scripts at a class level, but might not be valid for some configure scripts. Therefore warnings about these options are useless. - For these cases, the options are added to ``UNKNOWN_CONFIGURE_WHITELIST``. + For these cases, the options are added to :term:`UNKNOWN_CONFIGURE_WHITELIST`. The configure arguments check that uses - ``UNKNOWN_CONFIGURE_WHITELIST`` is part of the + :term:`UNKNOWN_CONFIGURE_WHITELIST` is part of the :ref:`insane ` class and is only enabled if the recipe inherits the :ref:`autotools ` class. :term:`UPDATERCPN` For recipes inheriting the - :ref:`update-rc.d ` class, ``UPDATERCPN`` + :ref:`update-rc.d ` class, :term:`UPDATERCPN` specifies the package that contains the initscript that is enabled. The default value is "${PN}". Given that almost all recipes that @@ -8394,7 +8447,7 @@ system and gives an overview of their function and contents. OpenEmbedded build system determines the latest upstream version by picking the latest tag from the list of all repository tags. - You can use the ``UPSTREAM_CHECK_GITTAGREGEX`` variable to provide a + You can use the :term:`UPSTREAM_CHECK_GITTAGREGEX` variable to provide a regular expression to filter only the relevant tags should the default filter not work correctly. :: @@ -8402,7 +8455,7 @@ system and gives an overview of their function and contents. UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex" :term:`UPSTREAM_CHECK_REGEX` - Use the ``UPSTREAM_CHECK_REGEX`` variable to specify a different + Use the :term:`UPSTREAM_CHECK_REGEX` variable to specify a different regular expression instead of the default one when the package checking system is parsing the page found using :term:`UPSTREAM_CHECK_URI`. @@ -8416,7 +8469,7 @@ system and gives an overview of their function and contents. the source code is provided from tarballs, the latest version is determined by fetching the directory listing where the tarball is and attempting to find a later tarball. When this approach does not work, - you can use ``UPSTREAM_CHECK_URI`` to provide a different URI that + you can use :term:`UPSTREAM_CHECK_URI` to provide a different URI that contains the link to the latest tarball. :: @@ -8424,8 +8477,8 @@ system and gives an overview of their function and contents. :term:`USE_DEVFS` Determines if ``devtmpfs`` is used for ``/dev`` population. The - default value used for ``USE_DEVFS`` is "1" when no value is - specifically set. Typically, you would set ``USE_DEVFS`` to "0" for a + default value used for :term:`USE_DEVFS` is "1" when no value is + specifically set. Typically, you would set :term:`USE_DEVFS` to "0" for a statically populated ``/dev`` directory. See the ":ref:`dev-manual/common-tasks:selecting a device manager`" section in @@ -8440,8 +8493,8 @@ system and gives an overview of their function and contents. virtual terminals in order to enable logging in through those terminals. - The default value used for ``USE_VT`` is "1" when no default value is - specifically set. Typically, you would set ``USE_VT`` to "0" in the + The default value used for :term:`USE_VT` is "1" when no default value is + specifically set. Typically, you would set :term:`USE_VT` to "0" in the machine configuration file for machines that do not have a graphical display attached and therefore do not need virtual terminal functionality. @@ -8468,9 +8521,9 @@ system and gives an overview of their function and contents. The default behavior for the build system is to dynamically apply ``uid`` and ``gid`` values. Consequently, the - ``USERADD_ERROR_DYNAMIC`` variable is by default not set. If you plan + :term:`USERADD_ERROR_DYNAMIC` variable is by default not set. If you plan on using statically assigned ``gid`` and ``uid`` values, you should - set the ``USERADD_ERROR_DYNAMIC`` variable in your ``local.conf`` + set the :term:`USERADD_ERROR_DYNAMIC` variable in your ``local.conf`` file as follows:: USERADD_ERROR_DYNAMIC = "error" @@ -8485,7 +8538,7 @@ system and gives an overview of their function and contents. .. note:: There is a difference in behavior between setting - ``USERADD_ERROR_DYNAMIC`` to ``error`` and setting it to ``warn``. + :term:`USERADD_ERROR_DYNAMIC` to ``error`` and setting it to ``warn``. When it is set to ``warn``, the build system will report a warning for every undefined ``uid`` and ``gid`` in any recipe. But when it is set to ``error``, it will only report errors for recipes that are actually @@ -8524,7 +8577,7 @@ system and gives an overview of their function and contents. .. note:: - It follows that if you are going to use the ``USERADD_PACKAGES`` + It follows that if you are going to use the :term:`USERADD_PACKAGES` variable, you need to set one or more of the :term:`USERADD_PARAM`, :term:`GROUPADD_PARAM`, or :term:`GROUPMEMS_PARAM` variables. @@ -8587,7 +8640,7 @@ system and gives an overview of their function and contents. Specifies the persistence of the target's ``/var/log`` directory, which is used to house postinstall target log files. - By default, ``VOLATILE_LOG_DIR`` is set to "yes", which means the + By default, :term:`VOLATILE_LOG_DIR` is set to "yes", which means the file is not persistent. You can override this setting by setting the variable to "no" to make the log directory persistent. @@ -8609,18 +8662,18 @@ system and gives an overview of their function and contents. :term:`WKS_FILE_DEPENDS` When placed in the recipe that builds your image, this variable lists - build-time dependencies. The ``WKS_FILE_DEPENDS`` variable is only + build-time dependencies. The :term:`WKS_FILE_DEPENDS` variable is only applicable when Wic images are active (i.e. when :term:`IMAGE_FSTYPES` contains entries related to Wic). If your recipe does not create Wic images, the variable has no effect. - The ``WKS_FILE_DEPENDS`` variable is similar to the + The :term:`WKS_FILE_DEPENDS` variable is similar to the :term:`DEPENDS` variable. When you use the variable in your recipe that builds the Wic image, dependencies you list in the - ``WKS_FILE_DEPENDS`` variable are added to the ``DEPENDS`` variable. + :term:`WKS_FILE_DEPENDS` variable are added to the :term:`DEPENDS` variable. - With the ``WKS_FILE_DEPENDS`` variable, you have the possibility to + With the :term:`WKS_FILE_DEPENDS` variable, you have the possibility to specify a list of additional dependencies (e.g. native tools, bootloaders, and so forth), that are required to build Wic images. Following is an example:: @@ -8637,7 +8690,7 @@ system and gives an overview of their function and contents. :term:`TMPDIR` directory structure and is specific to the recipe being built and the system for which it is being built. - The ``WORKDIR`` directory is defined as follows:: + The :term:`WORKDIR` directory is defined as follows:: ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR} @@ -8667,6 +8720,6 @@ system and gives an overview of their function and contents. indirectly, includes "x11-base" in :term:`IMAGE_FEATURES`. - The default value of ``XSERVER``, if not specified in the machine + The default value of :term:`XSERVER`, if not specified in the machine configuration, is "xserver-xorg xf86-video-fbdev xf86-input-evdev". diff --git a/poky/documentation/releases.rst b/poky/documentation/releases.rst index f278e2159..890cd037f 100644 --- a/poky/documentation/releases.rst +++ b/poky/documentation/releases.rst @@ -1,18 +1,18 @@ .. SPDX-License-Identifier: CC-BY-SA-2.0-UK -========================= - Current Release Manuals -========================= +=========================== + Supported Release Manuals +=========================== -******************************* -3.3 'hardknott' Release Series -******************************* +****************************** +Release Series 3.3 (hardknott) +****************************** - :yocto_docs:`3.3 Documentation ` - :yocto_docs:`3.3.1 Documentation ` ******************************* -3.2 'gatesgarth' Release Series +Release Series 3.2 (gatesgarth) ******************************* - :yocto_docs:`3.2 Documentation ` @@ -22,7 +22,7 @@ - :yocto_docs:`3.2.4 Documentation ` **************************** -3.1 'dunfell' Release Series +Release Series 3.1 (dunfell) **************************** - :yocto_docs:`3.1 Documentation ` @@ -33,13 +33,14 @@ - :yocto_docs:`3.1.5 Documentation ` - :yocto_docs:`3.1.6 Documentation ` - :yocto_docs:`3.1.7 Documentation ` +- :yocto_docs:`3.1.8 Documentation ` ========================== - Previous Release Manuals + Outdated Release Manuals ========================== ************************* -3.0 'zeus' Release Series +Release Series 3.0 (zeus) ************************* - :yocto_docs:`3.0 Documentation ` @@ -49,7 +50,7 @@ - :yocto_docs:`3.0.4 Documentation ` **************************** -2.7 'warrior' Release Series +Release Series 2.7 (warrior) **************************** - :yocto_docs:`2.7 Documentation ` @@ -59,7 +60,7 @@ - :yocto_docs:`2.7.4 Documentation ` ************************* -2.6 'thud' Release Series +Release Series 2.6 (thud) ************************* - :yocto_docs:`2.6 Documentation ` @@ -69,16 +70,16 @@ - :yocto_docs:`2.6.4 Documentation ` ************************* -2.5 'sumo' Release Series +Release Series 2.5 (sumo) ************************* - :yocto_docs:`2.5 Documentation ` - :yocto_docs:`2.5.1 Documentation ` - :yocto_docs:`2.5.2 Documentation ` - :yocto_docs:`2.5.3 Documentation ` - + ************************** -2.4 'rocko' Release Series +Release Series 2.4 (rocko) ************************** - :yocto_docs:`2.4 Documentation ` @@ -88,7 +89,7 @@ - :yocto_docs:`2.4.4 Documentation ` ************************* -2.3 'pyro' Release Series +Release Series 2.3 (pyro) ************************* - :yocto_docs:`2.3 Documentation ` @@ -98,7 +99,7 @@ - :yocto_docs:`2.3.4 Documentation ` ************************** -2.2 'morty' Release Series +Release Series 2.2 (morty) ************************** - :yocto_docs:`2.2 Documentation ` @@ -107,7 +108,7 @@ - :yocto_docs:`2.2.3 Documentation ` **************************** -2.1 'krogoth' Release Series +Release Series 2.1 (krogoth) **************************** - :yocto_docs:`2.1 Documentation ` @@ -116,7 +117,7 @@ - :yocto_docs:`2.1.3 Documentation ` *************************** -2.0 'jethro' Release Series +Release Series 2.0 (jethro) *************************** - :yocto_docs:`1.9 Documentation ` @@ -126,7 +127,7 @@ - :yocto_docs:`2.0.3 Documentation ` ************************* -1.8 'fido' Release Series +Release Series 1.8 (fido) ************************* - :yocto_docs:`1.8 Documentation ` @@ -134,7 +135,7 @@ - :yocto_docs:`1.8.2 Documentation ` ************************** -1.7 'dizzy' Release Series +Release Series 1.7 (dizzy) ************************** - :yocto_docs:`1.7 Documentation ` @@ -143,16 +144,16 @@ - :yocto_docs:`1.7.3 Documentation ` ************************** -1.6 'daisy' Release Series +Release Series 1.6 (daisy) ************************** - :yocto_docs:`1.6 Documentation ` - :yocto_docs:`1.6.1 Documentation ` - :yocto_docs:`1.6.2 Documentation ` - :yocto_docs:`1.6.3 Documentation ` - + ************************* -1.5 'dora' Release Series +Release Series 1.5 (dora) ************************* - :yocto_docs:`1.5 Documentation ` @@ -162,7 +163,7 @@ - :yocto_docs:`1.5.4 Documentation ` ************************** -1.4 'dylan' Release Series +Release Series 1.4 (dylan) ************************** - :yocto_docs:`1.4 Documentation ` @@ -171,9 +172,9 @@ - :yocto_docs:`1.4.3 Documentation ` - :yocto_docs:`1.4.4 Documentation ` - :yocto_docs:`1.4.5 Documentation ` - + ************************** -1.3 'danny' Release Series +Release Series 1.3 (danny) ************************** - :yocto_docs:`1.3 Documentation ` @@ -181,7 +182,7 @@ - :yocto_docs:`1.3.2 Documentation ` *************************** -1.2 'denzil' Release Series +Release Series 1.2 (denzil) *************************** - :yocto_docs:`1.2 Documentation ` @@ -189,7 +190,7 @@ - :yocto_docs:`1.2.2 Documentation ` *************************** -1.1 'edison' Release Series +Release Series 1.1 (edison) *************************** - :yocto_docs:`1.1 Documentation ` @@ -197,7 +198,7 @@ - :yocto_docs:`1.1.2 Documentation ` **************************** -1.0 'bernard' Release Series +Release Series 1.0 (bernard) **************************** - :yocto_docs:`1.0 Documentation ` @@ -205,7 +206,7 @@ - :yocto_docs:`1.0.2 Documentation ` **************************** -0.9 'laverne' Release Series +Release Series 0.9 (laverne) **************************** - :yocto_docs:`0.9 Documentation ` diff --git a/poky/documentation/sdk-manual/appendix-customizing-standard.rst b/poky/documentation/sdk-manual/appendix-customizing-standard.rst index 90b634529..9bc70cf55 100644 --- a/poky/documentation/sdk-manual/appendix-customizing-standard.rst +++ b/poky/documentation/sdk-manual/appendix-customizing-standard.rst @@ -17,10 +17,10 @@ and variables control the set of packages adding to the SDK. If you want to add individual packages to the toolchain that runs on the -host, simply add those packages to the ``TOOLCHAIN_HOST_TASK`` variable. +host, simply add those packages to the :term:`TOOLCHAIN_HOST_TASK` variable. Similarly, if you want to add packages to the default set that is part of the toolchain that runs on the target, add the packages to the -``TOOLCHAIN_TARGET_TASK`` variable. +:term:`TOOLCHAIN_TARGET_TASK` variable. Adding API Documentation to the Standard SDK ============================================ diff --git a/poky/documentation/sdk-manual/appendix-customizing.rst b/poky/documentation/sdk-manual/appendix-customizing.rst index 67b49d9f4..44f4334c2 100644 --- a/poky/documentation/sdk-manual/appendix-customizing.rst +++ b/poky/documentation/sdk-manual/appendix-customizing.rst @@ -35,13 +35,13 @@ build system applies them against ``local.conf`` and ``auto.conf``: - Variables listed in :term:`SDK_LOCAL_CONF_WHITELIST` are included. Including a variable in the value of - ``SDK_LOCAL_CONF_WHITELIST`` overrides either of the previous two + :term:`SDK_LOCAL_CONF_WHITELIST` overrides either of the previous two filters. The default value is blank. - Classes inherited globally with :term:`INHERIT` that are listed in :term:`SDK_INHERIT_BLACKLIST` - are disabled. Using ``SDK_INHERIT_BLACKLIST`` to disable these + are disabled. Using :term:`SDK_INHERIT_BLACKLIST` to disable these classes is the typical method to disable classes that are problematic or unnecessary in the SDK context. The default value blacklists the :ref:`buildhistory ` @@ -74,11 +74,9 @@ adjustments: is set using the "?=" operator. Consequently, you will need to either define the entire list by using the "=" operator, or you will need to append a value using either "_append" or the "+=" - operator. You can learn more about these operators in the " - Basic Syntax - " section of the BitBake User Manual. - - . + operator. You can learn more about these operators in the + ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:basic syntax`" + section of the BitBake User Manual. - If you have classes or recipes that add additional tasks to the standard build flow (i.e. the tasks execute as the recipe builds as @@ -95,7 +93,7 @@ adjustments: - Disable the tasks if they are added by a class and you do not need the functionality the class provides in the extensible SDK. To - disable the tasks, add the class to the ``SDK_INHERIT_BLACKLIST`` + disable the tasks, add the class to the :term:`SDK_INHERIT_BLACKLIST` variable as described in the previous section. - Generally, you want to have a shared state mirror set up so users of @@ -128,8 +126,7 @@ adjustments: .. note:: You must also reflect this change in the value used for the - COREBASE_FILES - variable as previously described. + :term:`COREBASE_FILES` variable as previously described. Changing the Extensible SDK Installer Title =========================================== @@ -142,12 +139,12 @@ section. By default, this title is derived from :term:`DISTRO_NAME` when it is -set. If the ``DISTRO_NAME`` variable is not set, the title is derived +set. If the :term:`DISTRO_NAME` variable is not set, the title is derived from the :term:`DISTRO` variable. The :ref:`populate_sdk_base ` -class defines the default value of the ``SDK_TITLE`` variable as +class defines the default value of the :term:`SDK_TITLE` variable as follows:: SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK" @@ -158,7 +155,7 @@ creates an SDK installer title that applies across your distribution. As an example, assume you have your own layer for your distribution named "meta-mydistro" and you are using the same type of file hierarchy as does the default "poky" distribution. If so, you could update the -``SDK_TITLE`` variable in the +:term:`SDK_TITLE` variable in the ``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following form:: @@ -220,7 +217,7 @@ class as follows:: You can change this default installation directory by specifically setting the -``SDKEXTPATH`` variable. +:term:`SDKEXTPATH` variable. While there are several ways of setting this variable, the method that makes the most sense is to set the variable in your @@ -229,7 +226,7 @@ default directory that applies across your distribution. As an example, assume you have your own layer for your distribution named "meta-mydistro" and you are using the same type of file hierarchy as does the default "poky" distribution. If so, you could update the -``SDKEXTPATH`` variable in the +:term:`SDKEXTPATH` variable in the ``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following form:: @@ -270,8 +267,7 @@ source, you need to do a number of things: SSTATE_MIRRORS = "file://.* http://example.com/some_path/sstate-cache/PATH" - You can set the - ``SSTATE_MIRRORS`` variable in two different places: + You can set the :term:`SSTATE_MIRRORS` variable in two different places: - If the mirror value you are setting is appropriate to be set for both the OpenEmbedded build system that is actually building the @@ -284,18 +280,17 @@ source, you need to do a number of things: SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS" - - Alternatively, if you just want to set the ``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 - layer and put your ``SSTATE_MIRRORS`` setting within that file. + layer and put your :term:`SSTATE_MIRRORS` setting within that file. .. note:: This second option is the safest option should you have any doubts as to which method to use when setting - SSTATE_MIRRORS - . + :term:`SSTATE_MIRRORS` Minimizing the Size of the Extensible SDK Installer Download ============================================================ @@ -333,7 +328,7 @@ following:: See the :term:`SDK_INCLUDE_PKGDATA` variable for additional information. -Setting the ``SDK_INCLUDE_PKGDATA`` variable as shown causes the "world" +Setting the :term:`SDK_INCLUDE_PKGDATA` variable as shown causes the "world" target to be built so that information for all of the recipes included within it are available. Having these recipes available increases build time significantly and increases the size of the SDK installer by 30-80 @@ -350,15 +345,15 @@ in most cases. If you set SDK_EXT_TYPE to "minimal", then providing a shared state mirror is mandatory so - that items can be installed as needed. See the " - Providing Additional Installable Extensible SDK Content - " section for more information. + that items can be installed as needed. See the + :ref:`sdk-manual/appendix-customizing:providing additional installable extensible sdk content` + section for more information. You can explicitly control whether or not to include the toolchain when you build an SDK by setting the :term:`SDK_INCLUDE_TOOLCHAIN` variable to "1". In particular, it is useful to include the toolchain -when you have set ``SDK_EXT_TYPE`` to "minimal", which by default, +when you have set :term:`SDK_EXT_TYPE` to "minimal", which by default, excludes the toolchain. Also, it is helpful if you are building a small SDK for use with an IDE or some other tool where you do not want to take extra steps to install a toolchain. diff --git a/poky/documentation/sdk-manual/extensible.rst b/poky/documentation/sdk-manual/extensible.rst index 55bd7f6eb..5520a0718 100644 --- a/poky/documentation/sdk-manual/extensible.rst +++ b/poky/documentation/sdk-manual/extensible.rst @@ -15,9 +15,8 @@ hardware, and ease integration into the rest of the .. note:: For a side-by-side comparison of main features supported for an - extensible SDK as compared to a standard SDK, see the " - Introduction - " section. + extensible SDK as compared to a standard SDK, see the + :ref:`sdk-manual/intro:introduction` section. In addition to the functionality available through ``devtool``, you can alternatively make use of the toolchain directly, for example from @@ -89,9 +88,9 @@ the SDK for ``core-image-sato`` and using the current &DISTRO; snapshot:: .. note:: As an alternative to downloading an SDK, you can build the SDK - installer. For information on building the installer, see the " - Building an SDK Installer - " section. + installer. For information on building the installer, see the + :ref:`sdk-manual/appendix-obtain:building an sdk installer` + section. The SDK and toolchains are self-contained and by default are installed into the ``poky_sdk`` folder in your home directory. You can choose to @@ -439,7 +438,7 @@ command: With this scenario, there is no ``srctree`` argument. Consequently, the default behavior of the ``devtool modify`` command is to extract - the source files pointed to by the ``SRC_URI`` statements into a + the source files pointed to by the :term:`SRC_URI` statements into a local Git structure. Furthermore, the location for the extracted source is the default area within the ``devtool`` workspace. The result is that the command sets up both the source code and an @@ -447,7 +446,7 @@ command: original location. Additionally, if you have any non-patch local files (i.e. files - referred to with ``file://`` entries in ``SRC_URI`` statement + referred to with ``file://`` entries in :term:`SRC_URI` statement excluding ``*.patch/`` or ``*.diff``), these files are copied to an ``oe-local-files`` folder under the newly created source tree. Copying the files here gives you a convenient area from which you @@ -477,7 +476,7 @@ command: devtool command. - As with all extractions, the command uses the recipe's ``SRC_URI`` + As with all extractions, the command uses the recipe's :term:`SRC_URI` statements to locate the source files and any associated patch files. Non-patch files are copied to an ``oe-local-files`` folder under the newly created source tree. @@ -604,11 +603,11 @@ counterparts. .. note:: Several methods exist by which you can upgrade recipes - - devtool upgrade + ``devtool upgrade`` happens to be one. You can read about all the methods by which you - can upgrade recipes in the " - Upgrading Recipes - " section of the Yocto Project Development Tasks Manual. + can upgrade recipes in the + :ref:`dev-manual/common-tasks:upgrading recipes` section + of the Yocto Project Development Tasks Manual. The ``devtool upgrade`` command is flexible enough to allow you to specify source code revision and versioning schemes, extract code into @@ -656,18 +655,18 @@ The following diagram shows the common development flow used with the don't use "-V", the command upgrades the recipe to the latest version. - If the source files pointed to by the ``SRC_URI`` statement in the + If the source files pointed to by the :term:`SRC_URI` statement in the recipe are in a Git repository, you must provide the "-S" option and specify a revision for the software. - Once ``devtool`` locates the recipe, it uses the ``SRC_URI`` variable + Once ``devtool`` locates the recipe, it uses the :term:`SRC_URI` variable to locate the source code and any local patch files from other developers. The result is that the command sets up the source code, the new version of the recipe, and an append file all within the workspace. Additionally, if you have any non-patch local files (i.e. files - referred to with ``file://`` entries in ``SRC_URI`` statement + referred to with ``file://`` entries in :term:`SRC_URI` statement excluding ``*.patch/`` or ``*.diff``), these files are copied to an ``oe-local-files`` folder under the newly created source tree. Copying the files here gives you a convenient area from which you can @@ -677,7 +676,7 @@ The following diagram shows the common development flow used with the 2. *Resolve any Conflicts created by the Upgrade*: Conflicts could happen after upgrading the software to a new version. Conflicts occur - if your recipe specifies some patch files in ``SRC_URI`` that + if your recipe specifies some patch files in :term:`SRC_URI` that conflict with changes made in the new version of the software. For such cases, you need to resolve the conflicts by editing the source and following the normal ``git rebase`` conflict resolution process. @@ -833,7 +832,7 @@ result from naming not being recognized or because the dependency simply is not available. For cases where the dependency is not available, you must use the ``devtool add`` command to add an additional recipe that satisfies the dependency. Once you add that recipe, you need to update -the ``DEPENDS`` variable in the original recipe to include the new +the :term:`DEPENDS` variable in the original recipe to include the new recipe. If you need to add runtime dependencies, you can do so by adding the @@ -862,7 +861,7 @@ license. If so, the command sets the :term:`LICENSE` value accordingly. You should double-check the value added by the command against the documentation or source files for the software you are building and, if -necessary, update that ``LICENSE`` value. +necessary, update that :term:`LICENSE` value. The ``devtool add`` command also sets the :term:`LIC_FILES_CHKSUM` @@ -870,16 +869,16 @@ value to point to all files that appear to be license-related. Realize that license statements often appear in comments at the top of source files or within the documentation. In such cases, the command does not recognize those license statements. Consequently, you might need to -amend the ``LIC_FILES_CHKSUM`` variable to point to one or more of those -comments if present. Setting ``LIC_FILES_CHKSUM`` is particularly +amend the :term:`LIC_FILES_CHKSUM` variable to point to one or more of those +comments if present. Setting :term:`LIC_FILES_CHKSUM` is particularly important for third-party software. The mechanism attempts to ensure correct licensing should you upgrade the recipe to a newer upstream version in future. Any change in licensing is detected and you receive an error prompting you to check the license text again. If the ``devtool add`` command cannot determine licensing information, -``devtool`` sets the ``LICENSE`` value to "CLOSED" and leaves the -``LIC_FILES_CHKSUM`` value unset. This behavior allows you to continue +``devtool`` sets the :term:`LICENSE` value to "CLOSED" and leaves the +:term:`LIC_FILES_CHKSUM` value unset. This behavior allows you to continue with development even though the settings are unlikely to be correct in all cases. You should check the documentation or source files for the software you are building to determine the actual license. @@ -905,7 +904,7 @@ mind: hardcoding tools within the toolchain such as ``gcc`` and ``g++``. - The environment in which Make runs is set up with various standard - variables for compilation (e.g. ``CC``, ``CXX``, and so forth) in a + variables for compilation (e.g. :term:`CC`, :term:`CXX`, and so forth) in a similar manner to the environment set up by the SDK's environment setup script. One easy way to see these variables is to run the ``devtool build`` command on the recipe and then look in @@ -921,7 +920,7 @@ mind: the command line, add the variable setting to :term:`EXTRA_OEMAKE` or :term:`PACKAGECONFIG_CONFARGS` - within the recipe. Here is an example using ``EXTRA_OEMAKE``:: + within the recipe. Here is an example using :term:`EXTRA_OEMAKE`:: EXTRA_OEMAKE += "'CC=${CC}' 'CXX=${CXX}'" @@ -1087,20 +1086,20 @@ extras specified by :term:`EXTRA_OECONF` or :term:`PACKAGECONFIG_CONFARGS` set within the recipe. If you wish to pass additional options, add them -to ``EXTRA_OECONF`` or ``PACKAGECONFIG_CONFARGS``. Other supported build +to :term:`EXTRA_OECONF` or :term:`PACKAGECONFIG_CONFARGS`. Other supported build tools have similar variables (e.g. :term:`EXTRA_OECMAKE` for CMake, :term:`EXTRA_OESCONS` for Scons, and so forth). If you need to pass anything on the ``make`` -command line, you can use ``EXTRA_OEMAKE`` or the +command line, you can use :term:`EXTRA_OEMAKE` or the :term:`PACKAGECONFIG_CONFARGS` variables to do so. You can use the ``devtool configure-help`` command to help you set the arguments listed in the previous paragraph. The command determines the exact options being passed, and shows them to you along with any custom -arguments specified through ``EXTRA_OECONF`` or -``PACKAGECONFIG_CONFARGS``. If applicable, the command also shows you +arguments specified through :term:`EXTRA_OECONF` or +:term:`PACKAGECONFIG_CONFARGS`. If applicable, the command also shows you the output of the configure script's "--help" option as a reference. @@ -1152,16 +1151,16 @@ the ``oe-workdir/packages-split`` directory, which contains a subdirectory for each package. Apart from some advanced cases, the :term:`PACKAGES` and :term:`FILES` variables controls -splitting. The ``PACKAGES`` variable lists all of the packages to be -produced, while the ``FILES`` variable specifies which files to include +splitting. The :term:`PACKAGES` variable lists all of the packages to be +produced, while the :term:`FILES` variable specifies which files to include in each package by using an override to specify the package. For example, ``FILES_${PN}`` specifies the files to go into the main package (i.e. the main package has the same name as the recipe and ``${``\ :term:`PN`\ ``}`` evaluates to the -recipe name). The order of the ``PACKAGES`` value is significant. For -each installed file, the first package whose ``FILES`` value matches the -file is the package into which the file goes. Both the ``PACKAGES`` and -``FILES`` variables have default values. Consequently, you might find +recipe name). The order of the :term:`PACKAGES` value is significant. For +each installed file, the first package whose :term:`FILES` value matches the +file is the package into which the file goes. Both the :term:`PACKAGES` and +:term:`FILES` variables have default values. Consequently, you might find you do not even need to set these variables in your recipe unless the software the recipe is building installs files into non-standard locations. diff --git a/poky/documentation/sdk-manual/working-projects.rst b/poky/documentation/sdk-manual/working-projects.rst index ad84ce2b8..276daa9bb 100644 --- a/poky/documentation/sdk-manual/working-projects.rst +++ b/poky/documentation/sdk-manual/working-projects.rst @@ -135,9 +135,8 @@ project: To learn about environment variables established when you run the cross-toolchain environment setup script and how they are used or - overridden when the Makefile, see the " - Makefile-Based Projects - " section. + overridden by the Makefile, see the + :ref:`sdk-manual/working-projects:makefile-based projects` section. This next command is a simple way to verify the installation of your project. Running the command prints the architecture on which the @@ -279,9 +278,9 @@ example: $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux 3. *Create the Makefile:* For this example, the Makefile contains - two lines that can be used to set the ``CC`` variable. One line is + two lines that can be used to set the :term:`CC` variable. One line is identical to the value that is set when you run the SDK environment - setup script, and the other line sets ``CC`` to "gcc", the default + setup script, and the other line sets :term:`CC` to "gcc", the default GNU compiler on the build host:: # CC=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux @@ -298,7 +297,7 @@ example: 4. *Make the Project:* Use the ``make`` command to create the binary output file. Because variables are commented out in the Makefile, the - value used for ``CC`` is the value set when the SDK environment setup + value used for :term:`CC` is the value set when the SDK environment setup file was run:: $ make @@ -307,10 +306,10 @@ example: i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux main.o module.o -o target_bin From the results of the previous command, you can see that - the compiler used was the compiler established through the ``CC`` + the compiler used was the compiler established through the :term:`CC` variable defined in the setup script. - You can override the ``CC`` environment variable with the same + You can override the :term:`CC` environment variable with the same variable as set from the Makefile by uncommenting the line in the Makefile and running ``make`` again. :: @@ -334,7 +333,7 @@ example: variable as part of the command line. Go into the Makefile and re-insert the comment character so that running ``make`` uses the established SDK compiler. However, when you run ``make``, use a - command-line argument to set ``CC`` to "gcc":: + command-line argument to set :term:`CC` to "gcc":: $ make clean rm -rf *.o diff --git a/poky/documentation/sphinx-static/switchers.js b/poky/documentation/sphinx-static/switchers.js index a32d87236..301c2315a 100644 --- a/poky/documentation/sphinx-static/switchers.js +++ b/poky/documentation/sphinx-static/switchers.js @@ -5,7 +5,7 @@ 'dev': 'dev (3.4)', '3.3.1': '3.3.1', '3.2.4': '3.2.4', - '3.1.7': '3.1.7', + '3.1.8': '3.1.8', '3.0.4': '3.0.4', '2.7.4': '2.7.4', }; diff --git a/poky/documentation/test-manual/index.rst b/poky/documentation/test-manual/index.rst index e2198c4c3..4c590a6aa 100644 --- a/poky/documentation/test-manual/index.rst +++ b/poky/documentation/test-manual/index.rst @@ -13,6 +13,8 @@ Yocto Project Test Environment Manual intro test-process understand-autobuilder + reproducible-builds + yocto-project-compatible history .. include:: /boilerplate.rst diff --git a/poky/documentation/test-manual/reproducible-builds.rst b/poky/documentation/test-manual/reproducible-builds.rst new file mode 100644 index 000000000..e13583c0b --- /dev/null +++ b/poky/documentation/test-manual/reproducible-builds.rst @@ -0,0 +1,135 @@ +.. SPDX-License-Identifier: CC-BY-SA-2.0-UK + +******************* +Reproducible Builds +******************* + +================ +How we define it +================ + +The Yocto Project defines reproducibility as where a given input build +configuration will give the same binary output regardless of when it is built +(now or in 5 years time), regardless of the path on the filesystem the build is +run in, and regardless of the distro and tools on the underlying host system the +build is running on. + +============== +Why it matters +============== + +The project aligns with the `Reproducible Builds project +`_, 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 +you build a given input set of metadata, we expect you to get consistent output. +This has always been a key focus but, :yocto_docs:`since release 3.1 ("dunfell") +`, +it is now true down to the binary level including timestamps. + +For example, at some point in the future life of a product, you find that you +need to rebuild to add a security fix. If this happens, only the components that +have been modified should change at the binary level. This would lead to much +easier and clearer bounds on where validation is needed. + +This also gives an additional benefit to the project builds themselves, our hash +equivalence for :ref:`Shared State ` +object reuse works much more effectively when the binary output remains the +same. + +.. note:: + + We strongly advise you to make sure your project builds reproducibly + before finalizing your production images. It would be too late if you + only address this issue when the first updates are required. + +=================== +How we implement it +=================== + +There are many different aspects to build reproducibility, but some particular +things we do within the build system to ensure reproducibility include: + +- Adding mappings to the compiler options to ensure debug filepaths are mapped + to consistent target compatible paths. This is done through the + ``DEBUG_PREFIX_MAP`` variable which sets the ``-fmacro-prefix-map`` and + ``-fdebug-prefix-map`` compiler options correctly to map to target paths. +- Being explicit about recipe dependencies and their configuration (no floating + configure options or host dependencies creeping in). In particular this means + making sure :term:`PACKAGECONFIG` coverage covers configure options which may + otherwise try and auto-detect host dependencies. +- Using recipe specific sysroots to isolate recipes so they only see their + dependencies. These are visible as ``recipe-sysroot`` and + ``recipe-sysroot-native`` directories within the :term:`WORKDIR` of a given + recipe and are populated only with the dependencies a recipe has. +- Build images from a reduced package set: only packages from recipes the image + depends upon. +- Filtering the tools available from the host's ``PATH`` to only a specific set + of tools, set using the :term:`HOSTTOOLS` variable. + +========================================= +Can we prove the project is reproducible? +========================================= + +Yes, we can prove it and we regularly test this on the Autobuilder. At the +time of writing (release 3.3, "hardknott"), :term:`OpenEmbedded-Core (OE-Core)` +is 100% reproducible for all its recipes (i.e. world builds) apart from the Go +language and Ruby documentation packages. Unfortunately, the current +implementation of the Go language has fundamental reproducibility problems as +it always depends upon the paths it is built in. + +.. note:: + + Only BitBake and :term:`OpenEmbedded-Core (OE-Core)`, which is the ``meta`` + layer in Poky, guarantee complete reproducibility. The moment you add + another layer, this warranty is voided, because of additional configuration + files, ``bbappend`` files, overridden classes, etc. + +To run our automated selftest, as we use in our CI on the Autobuilder, you can +run:: + + oe-selftest -r reproducible.ReproducibleTests.test_reproducible_builds + +This defaults to including a ``world`` build so, if other layers are added, it would +also run the tests for recipes in the additional layers. The first build will be +run using :ref:`Shared State ` if +available, the second build explicitly disables +:ref:`Shared State ` and builds on the +specific host the build is running on. This means we can test reproducibility +builds between different host distributions over time on the Autobuilder. + +If ``OEQA_DEBUGGING_SAVED_OUTPUT`` is set, any differing packages will be saved +here. The test is also able to run the ``diffoscope`` command on the output to +generate HTML files showing the differences between the packages, to aid +debugging. On the Autobuilder, these appear under +https://autobuilder.yocto.io/pub/repro-fail/ in the form ``oe-reproducible + + + ``, e.g. ``oe-reproducible-20200202-1lm8o1th``. + +The project's current reproducibility status can be seen at +:yocto_home:`/reproducible-build-results/` + +You can also check the reproducibility status on supported host distributions: + +- CentOS: :yocto_ab:`/typhoon/#/builders/reproducible-centos` +- Debian: :yocto_ab:`/typhoon/#/builders/reproducible-debian` +- Fedora: :yocto_ab:`/typhoon/#/builders/reproducible-fedora` +- Ubuntu: :yocto_ab:`/typhoon/#/builders/reproducible-ubuntu` + +=============================== +Can I test my layer or recipes? +=============================== + +Once again, you can run a ``world`` test using the +:ref:`oe-selftest ` +command provided above. This functionality is implemented +in :oe_git:`meta/lib/oeqa/selftest/cases/reproducible.py +`. + +You could subclass the test and change ``targets`` to a different target. + +You may also change ``sstate_targets`` which would allow you to "pre-cache" some +set of recipes before the test, meaning they are excluded from reproducibility +testing. As a practical example, you could set ``sstate_targets`` to +``core-image-sato``, then setting ``targets`` to ``core-image-sato-sdk`` would +run reproducibility tests only on the targets belonging only to ``core-image-sato-sdk``. diff --git a/poky/documentation/test-manual/yocto-project-compatible.rst b/poky/documentation/test-manual/yocto-project-compatible.rst new file mode 100644 index 000000000..a7897469f --- /dev/null +++ b/poky/documentation/test-manual/yocto-project-compatible.rst @@ -0,0 +1,124 @@ +.. SPDX-License-Identifier: CC-BY-SA-2.0-UK + +************************ +Yocto Project Compatible +************************ + +============ +Introduction +============ + +After the introduction of layers to OpenEmbedded, it quickly became clear +that while some layers were popular and worked well, others developed a +reputation for being "problematic". Those were layers which didn't +interoperate well with others and tended to assume they controlled all +the aspects of the final output. This usually isn't intentional but happens +because such layers are often created by developers with a particular focus +(e.g. a company's :term:`BSP`) whilst the end +users have a different one (e.g. integrating that +:term:`BSP` into a product). + +As a result of noticing such patterns and friction between layers, the project +developed the "Yocto Project Compatible" badge program, allowing layers +following the best known practises to be marked as being widely compatible +with other ones. This takes the form of a set of "yes/no" binary answer +questions where layers can declare if they meet the appropriate criteria. +In the second version of the program, a script was added to make validation +easier and clearer, the script is called ``yocto-check-layer`` and is +available in :term:`OpenEmbedded-Core (OE-Core)`. + +See :ref:`dev-manual/common-tasks:making sure your layer is compatible with yocto project` +for details. + +======== +Benefits +======== + +:ref:`overview-manual/yp-intro:the yocto project layer model` is powerful +and flexible: it gives users the ultimate power to change pretty much any +aspect of the system but as with most things, power comes with responsibility. +The Yocto Project would like to see people able to mix and match BSPs with +distro configs or software stacks and be able to merge succesfully. +Over time, the project identified characteristics in layers that allow them +to operate well together. "anti-patterns" were also found, preventing layers +from working well together. + +The intent of the compatibility program is simple: if the layer passes the +compatibility tests, it is considered "well behaved" and should operate +and cooperate well with other compatible layers. + +The benefits of compatibility can be seen from multiple different user and +member perspectives. From a hardware perspective +(a :ref:`overview-manual/concepts:bsp layer`), compatibility means the +hardware can be used in many different products and use cases without +impacting the software stacks being run with it. For a company developing +a product, compatibility gives you a specification / standard you can +require in a contract and then know it will have certain desired +characteristics for interoperability. It also puts constraints on how invasive +the code bases are into the rest of the system, meaning that multiple +different separate hardware support layers can coexist (e.g. for multiple +product lines from different hardware manufacturers). This can also make it +easier for one or more parties to upgrade those system components for security +purposes during the lifecycle of a product. + +================== +Validating a layer +================== + +The badges are available to members of the Yocto Project (as member benefit) +and to open source projects run on a non-commercial basis. However, anyone can +answer the questions and run the script. + +The project encourages all layer maintainers to review the questions and the +output from the script against their layer, as the way some layers are +constructed often has unintended consequences. The questions and the script +are designed to highlight known issues which are often easy to solve. This +makes layers easier to use and therefore more popular. + +It is intended that over time, the tests will evolve as new best known +practices are identified, and as new interoperability issues are found, +unnecessarily restricting layer interoperability. If anyone becomes aware of +either type, please let the project know through the +:yocto_home:`technical calls `, +the :yocto_home:`mailing lists ` +or through the :oe_wiki:`Technical Steering Committee (TSC) `. +The TSC is responsible for the technical criteria used by the program. + +Layers are divided into three types: + +- :ref:`"BSP" or "hardware support"` + layers contain support for particular pieces of hardware. This includes + kernel and boot loader configuration, and any recipes for firmware or + kernel modules needed for the hardware. Such layers usually correspond + to a :term:`MACHINE` setting. + +- :ref:`"distro" layers` defined + as layers providing configuration options and settings such as the + choice of init system, compiler and optimisation options, and + configuration and choices of software components. This would usually + correspond to a :term:`DISTRO` setting. + +- "software" layers are usually recipes. A layer might target a + particular graphical UI or software stack component. + +Here are key best practices the program tries to encourage: + +- A layer should clearly show who maintains it, and who change + submissions and bug reports should be sent to. + +- Where multiple types of functionality are present, the layer should + be internally divided into sublayers to separate these components. + That's because some users may only need one of them and separability + is a key best practice. + +- Adding a layer to a build should not modify that build, unless the + user changes a configuration setting to activate the layer, by selecting + a :term:`MACHINE`, a :term:`DISTRO` or a :term:`DISTRO_FEATURES` setting. + +The project does test the compatibility status of the core project layers on +its :doc:`Autobuilder `. + +The official form to submit compatibility requests with is at +:yocto_home:`/ecosystem/branding/compatible-registration/`. +Applicants can display the badge they get when their application is successful. + diff --git a/poky/documentation/toaster-manual/setup-and-use.rst b/poky/documentation/toaster-manual/setup-and-use.rst index 8f0ec9449..4f71b5841 100644 --- a/poky/documentation/toaster-manual/setup-and-use.rst +++ b/poky/documentation/toaster-manual/setup-and-use.rst @@ -625,7 +625,7 @@ To specify ``bash`` 3.2.48 as the version to build, enter :scale: 75% After clicking the "Add variable" button, the settings for -``PREFERRED_VERSION`` are added to the bottom of the BitBake variables +:term:`PREFERRED_VERSION` are added to the bottom of the BitBake variables list. With these settings, the OpenEmbedded build system builds the desired version of the recipe rather than the default version: diff --git a/poky/documentation/transitioning-to-a-custom-environment.rst b/poky/documentation/transitioning-to-a-custom-environment.rst index abbd74ca1..f0035bd3a 100644 --- a/poky/documentation/transitioning-to-a-custom-environment.rst +++ b/poky/documentation/transitioning-to-a-custom-environment.rst @@ -47,7 +47,7 @@ Transitioning to a custom environment for systems development #. **Based on the layers you've chosen, make needed changes in your configuration**. For instance, you've chosen a machine type and added in the corresponding BSP - layer. You'll then need to change the value of the ``MACHINE`` variable in your + layer. You'll then need to change the value of the :term:`MACHINE` variable in your configuration file (build/local.conf) to point to that same machine type. There could be other layer-specific settings you need to change as well. Each layer has a ``README`` document that you can look at for this type of diff --git a/poky/meta-poky/README.poky b/poky/meta-poky/README.poky deleted file mode 100644 index 2ba3b5c03..000000000 --- a/poky/meta-poky/README.poky +++ /dev/null @@ -1,71 +0,0 @@ -Poky -==== - -Poky is an integration of various components to form a complete prepackaged -build system and development environment. It features support for building -customised embedded device style images. There are reference demo images -featuring a X11/Matchbox/GTK themed UI called Sato. The system supports -cross-architecture application development using QEMU emulation and a -standalone toolchain and SDK with IDE integration. - -Additional information on the specifics of hardware that Poky supports -is available in README.hardware. Further hardware support can easily be added -in the form of layers which extend the systems capabilities in a modular way. - -As an integration layer Poky consists of several upstream projects such as -BitBake, OpenEmbedded-Core, Yocto documentation and various sources of information -e.g. for the hardware support. Poky is in turn a component of the Yocto Project. - -The Yocto Project has extensive documentation about the system including a -reference manual which can be found at: - http://yoctoproject.org/documentation - -OpenEmbedded-Core is a layer containing the core metadata for current versions -of OpenEmbedded. It is distro-less (can build a functional image with -DISTRO = "nodistro") and contains only emulated machine support. - -For information about OpenEmbedded, see the OpenEmbedded website: - http://www.openembedded.org/ - - -Contribution Guidelines -======================= - -A guide to submitting patches to OpenEmbedded is available at: - -http://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded - -There is good documentation on how to write/format patches at: - -https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines - - -Where to Send Patches -===================== - -As Poky is an integration repository (built using a tool called combo-layer), -patches against the various components should be sent to their respective -upstreams: - -bitbake: - Git repository: http://git.openembedded.org/bitbake/ - Mailing list: bitbake-devel@lists.openembedded.org - -documentation: - Git repository: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/ - Mailing list: docs@lists.yoctoproject.org - -meta-poky, meta-yocto-bsp: - Git repository: http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto(-bsp) - Mailing list: poky@lists.yoctoproject.org - -Everything else should be sent to the OpenEmbedded Core mailing list. If in -doubt, check the oe-core git repository for the content you intend to modify. -Before sending, be sure the patches apply cleanly to the current oe-core git -repository. - - Git repository: http://git.openembedded.org/openembedded-core/ - Mailing list: openembedded-core@lists.openembedded.org - -Note: The scripts directory should be treated with extra care as it is a mix of -oe-core and poky-specific files from meta-poky. diff --git a/poky/meta-poky/README.poky.md b/poky/meta-poky/README.poky.md new file mode 100644 index 000000000..289373f94 --- /dev/null +++ b/poky/meta-poky/README.poky.md @@ -0,0 +1,84 @@ +Poky +==== + +Poky is an integration of various components to form a pre-packaged +build system and development environment which is used as a development and +validation tool by the [Yocto Project](http://www.yoctoproject.org/). It +features support for building customised embedded style device images +and custom containers. There are reference demo images ranging from X11/GTK+ + to Weston, commandline and more. The system supports cross-architecture +application development using QEMU emulation and a standalone toolchain and +SDK suitable for IDE integration. + +Additional information on the specifics of hardware that Poky supports +is available in README.hardware. Further hardware support can easily be added +in the form of BSP layers which extend the systems capabilities in a modular way. +Many layers are available and can be found through the +[layer index](https://layers.openembedded.org/). + +As an integration layer Poky consists of several upstream projects such as +[BitBake](https://git.openembedded.org/bitbake/), +[OpenEmbedded-Core](https://git.openembedded.org/openembedded-core/), +[Yocto documentation](http://git.yoctoproject.org/cgit.cgi/yocto-docs/), +the '[meta-yocto](http://git.yoctoproject.org/cgit.cgi/meta-yocto/)' layer +which has configuration and hardware support components. These components +are all part of the Yocto Project and OpenEmbedded ecosystems. + +The Yocto Project has extensive documentation about the system including a +reference manual which can be found at + +OpenEmbedded is the build architecture used by Poky and the Yocto project. +For information about OpenEmbedded, see the +[OpenEmbedded website](http://www.openembedded.org/). + +Contribution Guidelines +----------------------- + +The project works using a mailing list patch submission process. Patches +should be sent to the mailing list for the repository the components +originate from (see below). Throughout the Yocto Project, the README +files in the component in question should detail where to send patches, +who the maintainers are and where bugs should be reported. + +A guide to submitting patches to OpenEmbedded is available at: + + + +There is good documentation on how to write/format patches at: + + + +Where to Send Patches +--------------------- + +As Poky is an integration repository (built using a tool called combo-layer), +patches against the various components should be sent to their respective +upstreams: + +OpenEmbedded-Core (files in meta/, meta-selftest/, meta-skeleton/, scripts/): + +- Git repository: +- Mailing list: openembedded-core@lists.openembedded.org + +BitBake (files in bitbake/): + +- Git repository: +- Mailing list: bitbake-devel@lists.openembedded.org + +Documentation (files in documentation/): + +- Git repository: +- Mailing list: docs@lists.yoctoproject.org + +meta-yocto (files in meta-poky/, meta-yocto-bsp/): + +- Git repository: +- Mailing list: poky@lists.yoctoproject.org + +If in doubt, check the openembedded-core git repository for the content you +intend to modify as most files are from there unless clearly one of the above +categories. Before sending, be sure the patches apply cleanly to the current +git repository branch in question. + +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/765/badge)](https://bestpractices.coreinfrastructure.org/projects/765) + diff --git a/poky/meta-poky/conf/distro/include/poky-floating-revisions.inc b/poky/meta-poky/conf/distro/include/poky-floating-revisions.inc index 1fc504592..4812959fb 100644 --- a/poky/meta-poky/conf/distro/include/poky-floating-revisions.inc +++ b/poky/meta-poky/conf/distro/include/poky-floating-revisions.inc @@ -26,8 +26,6 @@ SRCREV_pn-sato-icon-theme ?= "${AUTOREV}" SRCREV_pn-matchbox-desktop-sato ?= "${AUTOREV}" SRCREV_pn-oh-puzzles ?= "${AUTOREV}" SRCREV_pn-libowl ?= "${AUTOREV}" -SRCREV_pn-clutter ?= "${AUTOREV}" -SRCREV_pn-clutter-gst ?= "${AUTOREV}" SRCREV_pn-libmatchbox ?= "${AUTOREV}" SRCREV_pn-ofono ?= "${AUTOREV}" diff --git a/poky/meta-poky/conf/distro/poky-tiny.conf b/poky/meta-poky/conf/distro/poky-tiny.conf index e4ff9752e..8545341d8 100644 --- a/poky/meta-poky/conf/distro/poky-tiny.conf +++ b/poky/meta-poky/conf/distro/poky-tiny.conf @@ -115,7 +115,6 @@ RDEPENDS_${PN}-mtrace_pn-eglibc = "" PNBLACKLIST[build-appliance-image] = "not buildable with poky-tiny" PNBLACKLIST[core-image-base] = "not buildable with poky-tiny" -PNBLACKLIST[core-image-clutter] = "not buildable with poky-tiny" PNBLACKLIST[core-image-full-cmdline] = "not buildable with poky-tiny" PNBLACKLIST[core-image-rt] = "not buildable with poky-tiny" PNBLACKLIST[core-image-rt-sdk] = "not buildable with poky-tiny" diff --git a/poky/meta-yocto-bsp/README.hardware b/poky/meta-yocto-bsp/README.hardware deleted file mode 100644 index 9803af006..000000000 --- a/poky/meta-yocto-bsp/README.hardware +++ /dev/null @@ -1,265 +0,0 @@ - Yocto Project Hardware Reference BSPs README - ============================================ - -This file gives details about using the Yocto Project hardware reference BSPs. -The machines supported can be seen in the conf/machine/ directory and are listed -below. There is one per supported hardware architecture and these are primarily -used to validate that the Yocto Project works on the hardware arctectures of -those machines. - -If you are in doubt about using Poky/OpenEmbedded/Yocto Project with your hardware, -consult the documentation for your board/device. - -Support for additional devices is normally added by adding BSP layers to your -configuration. For more information please see the Yocto Board Support Package -(BSP) Developer's Guide - documentation source is in documentation/bspguide or -download the PDF from: - - http://yoctoproject.org/documentation - -Note that these reference BSPs use the linux-yocto kernel and in general don't -pull in binary module support for the platforms. This means some device functionality -may be limited compared to a 'full' BSP which may be available. - - -Hardware Reference Boards -========================= - -The following boards are supported by the meta-yocto-bsp layer: - - * Texas Instruments Beaglebone (beaglebone-yocto) - * Ubiquiti Networks EdgeRouter Lite (edgerouter) - * General IA platforms (genericx86 and genericx86-64) - -For more information see the board's section below. The appropriate MACHINE -variable value corresponding to the board is given in brackets. - -Reference Board Maintenance -=========================== - -Send pull requests, patches, comments or questions about meta-yocto-bsps to poky@yoctoproject.org - -Maintainers: Kevin Hao - Bruce Ashfield - -Consumer Devices -================ - -The following consumer devices are supported by the meta-yocto-bsp layer: - - * Intel x86 based PCs and devices (genericx86) - * Ubiquiti Networks EdgeRouter Lite (edgerouter) - -For more information see the device's section below. The appropriate MACHINE -variable value corresponding to the device is given in brackets. - - - - Specific Hardware Documentation - =============================== - - -Intel x86 based PCs and devices (genericx86*) -============================================= - -The genericx86 and genericx86-64 MACHINE are tested on the following platforms: - -Intel Xeon/Core i-Series: - + Intel NUC5 Series - ix-52xx Series SOC (Broadwell) - + Intel NUC6 Series - ix-62xx Series SOC (Skylake) - + Intel Shumway Xeon Server - -Intel Atom platforms: - + MinnowBoard MAX - E3825 SOC (Bay Trail) - + MinnowBoard MAX - Turbot (ADI Engineering) - E3826 SOC (Bay Trail) - - These boards can be either 32bot or 64bit modes depending on firmware - - See minnowboard.org for details - + Intel Braswell SOC - -and is likely to work on many unlisted Atom/Core/Xeon based devices. The MACHINE -type supports ethernet, wifi, sound, and Intel/vesa graphics by default in -addition to common PC input devices, busses, and so on. - -Depending on the device, it can boot from a traditional hard-disk, a USB device, -or over the network. Writing generated images to physical media is -straightforward with a caveat for USB devices. The following examples assume the -target boot device is /dev/sdb, be sure to verify this and use the correct -device as the following commands are run as root and are not reversable. - -USB Device: - 1. Build a live image. This image type consists of a simple filesystem - without a partition table, which is suitable for USB keys, and with the - default setup for the genericx86 machine, this image type is built - automatically for any image you build. For example: - - $ bitbake core-image-minimal - - 2. Use the "dd" utility to write the image to the raw block device. For - example: - - # dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb - - If the device fails to boot with "Boot error" displayed, or apparently - stops just after the SYSLINUX version banner, it is likely the BIOS cannot - understand the physical layout of the disk (or rather it expects a - particular layout and cannot handle anything else). There are two possible - solutions to this problem: - - 1. Change the BIOS USB Device setting to HDD mode. The label will vary by - device, but the idea is to force BIOS to read the Cylinder/Head/Sector - geometry from the device. - - 2. Use a ".wic" image with an EFI partition - - a) With a default grub-efi bootloader: - # dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb - - b) Use systemd-boot instead - - Build an image with EFI_PROVIDER="systemd-boot" then use the above - dd command to write the image to a USB stick. - - -Texas Instruments Beaglebone (beaglebone-yocto) -=============================================== - -The Beaglebone is an ARM Cortex-A8 development board with USB, Ethernet, 2D/3D -accelerated graphics, audio, serial, JTAG, and SD/MMC. The Black adds a faster -CPU, more RAM, eMMC flash and a micro HDMI port. The beaglebone MACHINE is -tested on the following platforms: - - o Beaglebone Black A6 - o Beaglebone A6 (the original "White" model) - -The Beaglebone Black has eMMC, while the White does not. Pressing the USER/BOOT -button when powering on will temporarily change the boot order. But for the sake -of simplicity, these instructions assume you have erased the eMMC on the Black, -so its boot behavior matches that of the White and boots off of SD card. To do -this, issue the following commands from the u-boot prompt: - - # mmc dev 1 - # mmc erase 0 512 - -To further tailor these instructions for your board, please refer to the -documentation at http://www.beagleboard.org/bone and http://www.beagleboard.org/black - -From a Linux system with access to the image files perform the following steps: - - 1. Build an image. For example: - - $ bitbake core-image-minimal - - 2. Use the "dd" utility to write the image to the SD card. For example: - - # dd if=core-image-minimal-beaglebone-yocto.wic of=/dev/sdb - - 3. Insert the SD card into the Beaglebone and boot the board. - -Ubiquiti Networks EdgeRouter Lite (edgerouter) -============================================== - -The EdgeRouter Lite is part of the EdgeMax series. It is a MIPS64 router -(based on the Cavium Octeon processor) with 512MB of RAM, which uses an -internal USB pendrive for storage. - -Setup instructions ------------------- - -You will need the following: -* RJ45 -> serial ("rollover") cable connected from your PC to the CONSOLE - port on the device -* Ethernet connected to the first ethernet port on the board - -If using NFS as part of the setup process, you will also need: -* NFS root setup on your workstation -* TFTP server installed on your workstation (if fetching the kernel from - TFTP, see below). - ---- Preparation --- - -Build an image (e.g. core-image-minimal) using "edgerouter" as the MACHINE. -In the following instruction it is based on core-image-minimal. Another target -may be similiar with it. - ---- Booting from NFS root / kernel via TFTP --- - -Load the kernel, and boot the system as follows: - - 1. Get the kernel (vmlinux) file from the tmp/deploy/images/edgerouter - directory, and make them available on your TFTP server. - - 2. Connect the board's first serial port to your workstation and then start up - your favourite serial terminal so that you will be able to interact with - the serial console. If you don't have a favourite, picocom is suggested: - - $ picocom /dev/ttyS0 -b 115200 - - 3. Power up or reset the board and press a key on the terminal when prompted - to get to the U-Boot command line - - 4. Set up the environment in U-Boot: - - => setenv ipaddr - => setenv serverip - - 5. Download the kernel and boot: - - => tftp tftp $loadaddr vmlinux - => bootoctlinux $loadaddr coremask=0x3 root=/dev/nfs rw nfsroot=: ip=::::edgerouter:eth0:off mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom) - ---- Booting from USB disk --- - -To boot from the USB disk, you either need to remove it from the edgerouter -box and populate it from another computer, or use a previously booted NFS -image and populate from the edgerouter itself. - -Type 1: Use partitioned image ------------------------------ - -Steps: - - 1. Remove the USB disk from the edgerouter and insert it into a computer - that has access to your build artifacts. - - 2. Flash the image. - - # dd if=core-image-minimal-edgerouter.wic of=/dev/sdb - - 3. Insert USB disk into the edgerouter and boot it. - -Type 2: NFS ------------ - -Note: If you place the kernel on the ext3 partition, you must re-create the - ext3 filesystem, since the factory u-boot can only handle 128 byte inodes and - cannot read the partition otherwise. - - These boot instructions assume that you have recreated the ext3 filesystem with - 128 byte inodes, you have an updated uboot or you are running and image capable - of making the filesystem on the board itself. - - - 1. Boot from NFS root - - 2. Mount the USB disk partition 2 and then extract the contents of - tmp/deploy/core-image-XXXX.tar.bz2 into it. - - Before starting, copy core-image-minimal-xxx.tar.bz2 and vmlinux into - rootfs path on your workstation. - - and then, - - # mount /dev/sda2 /media/sda2 - # tar -xvjpf core-image-minimal-XXX.tar.bz2 -C /media/sda2 - # cp vmlinux /media/sda2/boot/vmlinux - # umount /media/sda2 - # reboot - - 3. Reboot the board and press a key on the terminal when prompted to get to the U-Boot - command line: - - # reboot - - 4. Load the kernel and boot: - - => ext2load usb 0:2 $loadaddr boot/vmlinux - => bootoctlinux $loadaddr coremask=0x3 root=/dev/sda2 rw rootwait mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom) diff --git a/poky/meta-yocto-bsp/README.hardware.md b/poky/meta-yocto-bsp/README.hardware.md new file mode 100644 index 000000000..9803af006 --- /dev/null +++ b/poky/meta-yocto-bsp/README.hardware.md @@ -0,0 +1,265 @@ + Yocto Project Hardware Reference BSPs README + ============================================ + +This file gives details about using the Yocto Project hardware reference BSPs. +The machines supported can be seen in the conf/machine/ directory and are listed +below. There is one per supported hardware architecture and these are primarily +used to validate that the Yocto Project works on the hardware arctectures of +those machines. + +If you are in doubt about using Poky/OpenEmbedded/Yocto Project with your hardware, +consult the documentation for your board/device. + +Support for additional devices is normally added by adding BSP layers to your +configuration. For more information please see the Yocto Board Support Package +(BSP) Developer's Guide - documentation source is in documentation/bspguide or +download the PDF from: + + http://yoctoproject.org/documentation + +Note that these reference BSPs use the linux-yocto kernel and in general don't +pull in binary module support for the platforms. This means some device functionality +may be limited compared to a 'full' BSP which may be available. + + +Hardware Reference Boards +========================= + +The following boards are supported by the meta-yocto-bsp layer: + + * Texas Instruments Beaglebone (beaglebone-yocto) + * Ubiquiti Networks EdgeRouter Lite (edgerouter) + * General IA platforms (genericx86 and genericx86-64) + +For more information see the board's section below. The appropriate MACHINE +variable value corresponding to the board is given in brackets. + +Reference Board Maintenance +=========================== + +Send pull requests, patches, comments or questions about meta-yocto-bsps to poky@yoctoproject.org + +Maintainers: Kevin Hao + Bruce Ashfield + +Consumer Devices +================ + +The following consumer devices are supported by the meta-yocto-bsp layer: + + * Intel x86 based PCs and devices (genericx86) + * Ubiquiti Networks EdgeRouter Lite (edgerouter) + +For more information see the device's section below. The appropriate MACHINE +variable value corresponding to the device is given in brackets. + + + + Specific Hardware Documentation + =============================== + + +Intel x86 based PCs and devices (genericx86*) +============================================= + +The genericx86 and genericx86-64 MACHINE are tested on the following platforms: + +Intel Xeon/Core i-Series: + + Intel NUC5 Series - ix-52xx Series SOC (Broadwell) + + Intel NUC6 Series - ix-62xx Series SOC (Skylake) + + Intel Shumway Xeon Server + +Intel Atom platforms: + + MinnowBoard MAX - E3825 SOC (Bay Trail) + + MinnowBoard MAX - Turbot (ADI Engineering) - E3826 SOC (Bay Trail) + - These boards can be either 32bot or 64bit modes depending on firmware + - See minnowboard.org for details + + Intel Braswell SOC + +and is likely to work on many unlisted Atom/Core/Xeon based devices. The MACHINE +type supports ethernet, wifi, sound, and Intel/vesa graphics by default in +addition to common PC input devices, busses, and so on. + +Depending on the device, it can boot from a traditional hard-disk, a USB device, +or over the network. Writing generated images to physical media is +straightforward with a caveat for USB devices. The following examples assume the +target boot device is /dev/sdb, be sure to verify this and use the correct +device as the following commands are run as root and are not reversable. + +USB Device: + 1. Build a live image. This image type consists of a simple filesystem + without a partition table, which is suitable for USB keys, and with the + default setup for the genericx86 machine, this image type is built + automatically for any image you build. For example: + + $ bitbake core-image-minimal + + 2. Use the "dd" utility to write the image to the raw block device. For + example: + + # dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb + + If the device fails to boot with "Boot error" displayed, or apparently + stops just after the SYSLINUX version banner, it is likely the BIOS cannot + understand the physical layout of the disk (or rather it expects a + particular layout and cannot handle anything else). There are two possible + solutions to this problem: + + 1. Change the BIOS USB Device setting to HDD mode. The label will vary by + device, but the idea is to force BIOS to read the Cylinder/Head/Sector + geometry from the device. + + 2. Use a ".wic" image with an EFI partition + + a) With a default grub-efi bootloader: + # dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb + + b) Use systemd-boot instead + - Build an image with EFI_PROVIDER="systemd-boot" then use the above + dd command to write the image to a USB stick. + + +Texas Instruments Beaglebone (beaglebone-yocto) +=============================================== + +The Beaglebone is an ARM Cortex-A8 development board with USB, Ethernet, 2D/3D +accelerated graphics, audio, serial, JTAG, and SD/MMC. The Black adds a faster +CPU, more RAM, eMMC flash and a micro HDMI port. The beaglebone MACHINE is +tested on the following platforms: + + o Beaglebone Black A6 + o Beaglebone A6 (the original "White" model) + +The Beaglebone Black has eMMC, while the White does not. Pressing the USER/BOOT +button when powering on will temporarily change the boot order. But for the sake +of simplicity, these instructions assume you have erased the eMMC on the Black, +so its boot behavior matches that of the White and boots off of SD card. To do +this, issue the following commands from the u-boot prompt: + + # mmc dev 1 + # mmc erase 0 512 + +To further tailor these instructions for your board, please refer to the +documentation at http://www.beagleboard.org/bone and http://www.beagleboard.org/black + +From a Linux system with access to the image files perform the following steps: + + 1. Build an image. For example: + + $ bitbake core-image-minimal + + 2. Use the "dd" utility to write the image to the SD card. For example: + + # dd if=core-image-minimal-beaglebone-yocto.wic of=/dev/sdb + + 3. Insert the SD card into the Beaglebone and boot the board. + +Ubiquiti Networks EdgeRouter Lite (edgerouter) +============================================== + +The EdgeRouter Lite is part of the EdgeMax series. It is a MIPS64 router +(based on the Cavium Octeon processor) with 512MB of RAM, which uses an +internal USB pendrive for storage. + +Setup instructions +------------------ + +You will need the following: +* RJ45 -> serial ("rollover") cable connected from your PC to the CONSOLE + port on the device +* Ethernet connected to the first ethernet port on the board + +If using NFS as part of the setup process, you will also need: +* NFS root setup on your workstation +* TFTP server installed on your workstation (if fetching the kernel from + TFTP, see below). + +--- Preparation --- + +Build an image (e.g. core-image-minimal) using "edgerouter" as the MACHINE. +In the following instruction it is based on core-image-minimal. Another target +may be similiar with it. + +--- Booting from NFS root / kernel via TFTP --- + +Load the kernel, and boot the system as follows: + + 1. Get the kernel (vmlinux) file from the tmp/deploy/images/edgerouter + directory, and make them available on your TFTP server. + + 2. Connect the board's first serial port to your workstation and then start up + your favourite serial terminal so that you will be able to interact with + the serial console. If you don't have a favourite, picocom is suggested: + + $ picocom /dev/ttyS0 -b 115200 + + 3. Power up or reset the board and press a key on the terminal when prompted + to get to the U-Boot command line + + 4. Set up the environment in U-Boot: + + => setenv ipaddr + => setenv serverip + + 5. Download the kernel and boot: + + => tftp tftp $loadaddr vmlinux + => bootoctlinux $loadaddr coremask=0x3 root=/dev/nfs rw nfsroot=: ip=::::edgerouter:eth0:off mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom) + +--- Booting from USB disk --- + +To boot from the USB disk, you either need to remove it from the edgerouter +box and populate it from another computer, or use a previously booted NFS +image and populate from the edgerouter itself. + +Type 1: Use partitioned image +----------------------------- + +Steps: + + 1. Remove the USB disk from the edgerouter and insert it into a computer + that has access to your build artifacts. + + 2. Flash the image. + + # dd if=core-image-minimal-edgerouter.wic of=/dev/sdb + + 3. Insert USB disk into the edgerouter and boot it. + +Type 2: NFS +----------- + +Note: If you place the kernel on the ext3 partition, you must re-create the + ext3 filesystem, since the factory u-boot can only handle 128 byte inodes and + cannot read the partition otherwise. + + These boot instructions assume that you have recreated the ext3 filesystem with + 128 byte inodes, you have an updated uboot or you are running and image capable + of making the filesystem on the board itself. + + + 1. Boot from NFS root + + 2. Mount the USB disk partition 2 and then extract the contents of + tmp/deploy/core-image-XXXX.tar.bz2 into it. + + Before starting, copy core-image-minimal-xxx.tar.bz2 and vmlinux into + rootfs path on your workstation. + + and then, + + # mount /dev/sda2 /media/sda2 + # tar -xvjpf core-image-minimal-XXX.tar.bz2 -C /media/sda2 + # cp vmlinux /media/sda2/boot/vmlinux + # umount /media/sda2 + # reboot + + 3. Reboot the board and press a key on the terminal when prompted to get to the U-Boot + command line: + + # reboot + + 4. Load the kernel and boot: + + => ext2load usb 0:2 $loadaddr boot/vmlinux + => bootoctlinux $loadaddr coremask=0x3 root=/dev/sda2 rw rootwait mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom) diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend index bc2b3bf57..f8362b663 100644 --- a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend +++ b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.10.bbappend @@ -7,17 +7,17 @@ KMACHINE_genericx86 ?= "common-pc" KMACHINE_genericx86-64 ?= "common-pc-64" KMACHINE_beaglebone-yocto ?= "beaglebone" -SRCREV_machine_genericx86 ?= "8c516ced69f41563404ada0bea315a55bcf1df6f" -SRCREV_machine_genericx86-64 ?= "8c516ced69f41563404ada0bea315a55bcf1df6f" -SRCREV_machine_edgerouter ?= "965ab3ab746ae8a1158617b6302d9c218ffbbb66" -SRCREV_machine_beaglebone-yocto ?= "8c516ced69f41563404ada0bea315a55bcf1df6f" +SRCREV_machine_genericx86 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_machine_genericx86-64 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_machine_edgerouter ?= "274d63799465eebfd201b3e8251f16d29e93a978" +SRCREV_machine_beaglebone-yocto ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" COMPATIBLE_MACHINE_genericx86 = "genericx86" COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" COMPATIBLE_MACHINE_edgerouter = "edgerouter" COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto" -LINUX_VERSION_genericx86 = "5.10.21" -LINUX_VERSION_genericx86-64 = "5.10.21" -LINUX_VERSION_edgerouter = "5.10.21" -LINUX_VERSION_beaglebone-yocto = "5.10.21" +LINUX_VERSION_genericx86 = "5.10.43" +LINUX_VERSION_genericx86-64 = "5.10.43" +LINUX_VERSION_edgerouter = "5.10.43" +LINUX_VERSION_beaglebone-yocto = "5.10.43" diff --git a/poky/meta/classes/buildhistory.bbclass b/poky/meta/classes/buildhistory.bbclass index 059de36a5..55b12d789 100644 --- a/poky/meta/classes/buildhistory.bbclass +++ b/poky/meta/classes/buildhistory.bbclass @@ -43,6 +43,7 @@ BUILDHISTORY_COMMIT ?= "1" BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory " BUILDHISTORY_PUSH_REPO ?= "" BUILDHISTORY_TAG ?= "build" +BUILDHISTORY_PATH_PREFIX_STRIP ?= "" SSTATEPOSTINSTFUNCS_append = " buildhistory_emit_pkghistory" # We want to avoid influencing the signatures of sstate tasks - first the function itself: @@ -697,7 +698,7 @@ python buildhistory_write_sigs() { if hasattr(bb.parse.siggen, 'dump_siglist'): taskoutdir = os.path.join(d.getVar('BUILDHISTORY_DIR'), 'task') bb.utils.mkdirhier(taskoutdir) - bb.parse.siggen.dump_siglist(os.path.join(taskoutdir, 'tasksigs.txt')) + bb.parse.siggen.dump_siglist(os.path.join(taskoutdir, 'tasksigs.txt'), d.getVar("BUILDHISTORY_PATH_PREFIX_STRIP")) } def buildhistory_get_build_id(d): diff --git a/poky/meta/classes/clutter.bbclass b/poky/meta/classes/clutter.bbclass deleted file mode 100644 index 24b53a13e..000000000 --- a/poky/meta/classes/clutter.bbclass +++ /dev/null @@ -1,18 +0,0 @@ -def get_minor_dir(v): - import re - m = re.match(r"^([0-9]+)\.([0-9]+)", v) - return "%s.%s" % (m.group(1), m.group(2)) - -def get_real_name(n): - import re - m = re.match(r"^([a-z]+(-[a-z]+)?)(-[0-9]+\.[0-9]+)?", n) - return "%s" % (m.group(1)) - -VERMINOR = "${@get_minor_dir("${PV}")}" -REALNAME = "${@get_real_name("${BPN}")}" - -SRC_URI = "${GNOME_MIRROR}/${REALNAME}/${VERMINOR}/${REALNAME}-${PV}.tar.xz;name=archive" -S = "${WORKDIR}/${REALNAME}-${PV}" - -CLUTTERBASEBUILDCLASS ??= "autotools" -inherit ${CLUTTERBASEBUILDCLASS} pkgconfig gtk-doc gettext diff --git a/poky/meta/classes/cross-canadian.bbclass b/poky/meta/classes/cross-canadian.bbclass index 1e5403508..39b5bb93f 100644 --- a/poky/meta/classes/cross-canadian.bbclass +++ b/poky/meta/classes/cross-canadian.bbclass @@ -155,7 +155,7 @@ libexecdir = "${exec_prefix}/libexec/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS} FILES_${PN} = "${prefix}" -export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${layout_libdir}/pkgconfig" +export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${exec_prefix}/lib/pkgconfig" export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" do_populate_sysroot[stamp-extra-info] = "" diff --git a/poky/meta/classes/image_types.bbclass b/poky/meta/classes/image_types.bbclass index 2a45d45c7..954d6739e 100644 --- a/poky/meta/classes/image_types.bbclass +++ b/poky/meta/classes/image_types.bbclass @@ -278,7 +278,7 @@ IMAGE_TYPES = " \ # CONVERSION_CMD/DEPENDS. COMPRESSIONTYPES ?= "" -CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip zst sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot vmdk vhd vhdx vdi qcow2 base64 ${COMPRESSIONTYPES}" +CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip zst sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot vmdk vhd vhdx vdi qcow2 base64 gzsync zsync ${COMPRESSIONTYPES}" CONVERSION_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" CONVERSION_CMD_gz = "gzip -f -9 -n -c --rsyncable ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz" CONVERSION_CMD_bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" @@ -302,6 +302,8 @@ CONVERSION_CMD_vhd = "qemu-img convert -O vpc -o subformat=fixed ${IMAGE_NAME}${ CONVERSION_CMD_vdi = "qemu-img convert -O vdi ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vdi" CONVERSION_CMD_qcow2 = "qemu-img convert -O qcow2 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.qcow2" CONVERSION_CMD_base64 = "base64 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.base64" +CONVERSION_CMD_zsync = "zsyncmake_curl ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" +CONVERSION_CMD_gzsync = "zsyncmake_curl -z ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" CONVERSION_DEPENDS_lzma = "xz-native" CONVERSION_DEPENDS_gz = "pigz-native" CONVERSION_DEPENDS_bz2 = "pbzip2-native" @@ -319,6 +321,8 @@ CONVERSION_DEPENDS_qcow2 = "qemu-system-native" CONVERSION_DEPENDS_base64 = "coreutils-native" CONVERSION_DEPENDS_vhdx = "qemu-system-native" CONVERSION_DEPENDS_vhd = "qemu-system-native" +CONVERSION_DEPENDS_zsync = "zsync-curl-native" +CONVERSION_DEPENDS_gzsync = "zsync-curl-native" RUNNABLE_IMAGE_TYPES ?= "ext2 ext3 ext4" RUNNABLE_MACHINE_PATTERNS ?= "qemu" diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass index ba139dd7f..0df61cdef 100644 --- a/poky/meta/classes/kernel-yocto.bbclass +++ b/poky/meta/classes/kernel-yocto.bbclass @@ -631,7 +631,31 @@ do_validate_branches() { # if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to # check and we can exit early if [ "${machine_srcrev}" = "AUTOINC" ]; then + linux_yocto_dev='${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "1", "", d)}' + if [ -n "$linux_yocto_dev" ]; then + git checkout -q -f ${machine_branch} + ver=$(grep "^VERSION =" ${S}/Makefile | sed s/.*=\ *//) + patchlevel=$(grep "^PATCHLEVEL =" ${S}/Makefile | sed s/.*=\ *//) + sublevel=$(grep "^SUBLEVEL =" ${S}/Makefile | sed s/.*=\ *//) + kver="$ver.$patchlevel" + bbnote "dev kernel: performing version -> branch -> SRCREV validation" + bbnote "dev kernel: recipe version ${LINUX_VERSION}, src version: $kver" + echo "${LINUX_VERSION}" | grep -q $kver + if [ $? -ne 0 ]; then + version="$(echo ${LINUX_VERSION} | sed 's/\+.*$//g')" + versioned_branch="v$version/$machine_branch" + + machine_branch=$versioned_branch + force_srcrev="$(git rev-parse $machine_branch 2> /dev/null)" + if [ $? -ne 0 ]; then + bbfatal "kernel version mismatch detected, and no valid branch $machine_branch detected" + fi + + bbnote "dev kernel: adjusting branch to $machine_branch, srcrev to: $force_srcrev" + fi + else bbnote "SRCREV validation is not required for AUTOREV" + fi elif [ "${machine_srcrev}" = "" ]; then if [ "${SRCREV}" != "AUTOINC" ] && [ "${SRCREV}" != "INVALID" ]; then # SRCREV_machine_ was not set. This means that a custom recipe diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass index 8693ab86b..379bed44f 100644 --- a/poky/meta/classes/kernel.bbclass +++ b/poky/meta/classes/kernel.bbclass @@ -714,7 +714,7 @@ do_sizecheck() { at_least_one_fits= for imageType in ${KERNEL_IMAGETYPES} ; do size=`du -ks ${B}/${KERNEL_OUTPUT_DIR}/$imageType | awk '{print $1}'` - if [ $size -ge ${KERNEL_IMAGE_MAXSIZE} ]; then + if [ $size -gt ${KERNEL_IMAGE_MAXSIZE} ]; then bbwarn "This kernel $imageType (size=$size(K) > ${KERNEL_IMAGE_MAXSIZE}(K)) is too big for your device." else at_least_one_fits=y diff --git a/poky/meta/classes/linuxloader.bbclass b/poky/meta/classes/linuxloader.bbclass index 30925ac87..4447c8847 100644 --- a/poky/meta/classes/linuxloader.bbclass +++ b/poky/meta/classes/linuxloader.bbclass @@ -40,6 +40,8 @@ def get_glibc_loader(d): dynamic_loader = "${base_libdir}/ld-linux-mipsn8.so.1" elif targetarch.startswith("mips"): dynamic_loader = "${base_libdir}/ld.so.1" + elif targetarch == "powerpc64le": + dynamic_loader = "${base_libdir}/ld64.so.2" elif targetarch == "powerpc64": dynamic_loader = "${base_libdir}/ld64.so.1" elif targetarch == "x86_64": @@ -52,6 +54,8 @@ def get_glibc_loader(d): dynamic_loader = "${base_libdir}/ld-linux-aarch64${ARMPKGSFX_ENDIAN_64}.so.1" elif targetarch.startswith("riscv64"): dynamic_loader = "${base_libdir}/ld-linux-riscv64-lp64${@['d', ''][d.getVar('TARGET_FPU') == 'soft']}.so.1" + elif targetarch.startswith("riscv32"): + dynamic_loader = "${base_libdir}/ld-linux-riscv32-ilp32${@['d', ''][d.getVar('TARGET_FPU') == 'soft']}.so.1" return dynamic_loader def get_linuxloader(d): diff --git a/poky/meta/classes/multilib.bbclass b/poky/meta/classes/multilib.bbclass index 9f726e453..2ef75c0d1 100644 --- a/poky/meta/classes/multilib.bbclass +++ b/poky/meta/classes/multilib.bbclass @@ -105,7 +105,6 @@ python __anonymous () { d.setVar("LINGUAS_INSTALL", "") # FIXME, we need to map this to something, not delete it! d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", "") - bb.build.deltask('do_populate_sdk', d) bb.build.deltask('do_populate_sdk_ext', d) return } diff --git a/poky/meta/classes/populate_sdk_base.bbclass b/poky/meta/classes/populate_sdk_base.bbclass index 33ba3fc3c..f8072a9d3 100644 --- a/poky/meta/classes/populate_sdk_base.bbclass +++ b/poky/meta/classes/populate_sdk_base.bbclass @@ -66,7 +66,7 @@ python () { SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}" SDK_DEPENDS = "virtual/fakeroot-native ${SDK_ARCHIVE_DEPENDS} cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross" -PATH_prepend = "${STAGING_DIR_HOST}${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:" +PATH_prepend = "${WORKDIR}/recipe-sysroot/${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:" SDK_DEPENDS += "nativesdk-glibc-locale" # We want the MULTIARCH_TARGET_SYS to point to the TUNE_PKGARCH, not PACKAGE_ARCH as it diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass index fe840d9cf..517b4e45f 100644 --- a/poky/meta/classes/populate_sdk_ext.bbclass +++ b/poky/meta/classes/populate_sdk_ext.bbclass @@ -397,6 +397,14 @@ python copy_buildsystem () { f.write('require conf/locked-sigs.inc\n') f.write('require conf/unlocked-sigs.inc\n') + # Copy multiple configurations if they exist in the users config directory + if d.getVar('BBMULTICONFIG') is not None: + bb.utils.mkdirhier(os.path.join(baseoutpath, 'conf', 'multiconfig')) + for mc in d.getVar('BBMULTICONFIG').split(): + dest_stub = "/conf/multiconfig/%s.conf" % (mc,) + if os.path.exists(builddir + dest_stub): + shutil.copyfile(builddir + dest_stub, baseoutpath + dest_stub) + if os.path.exists(builddir + '/cache/bb_unihashes.dat'): bb.parse.siggen.save_unitaskhashes() bb.utils.mkdirhier(os.path.join(baseoutpath, 'cache')) @@ -556,6 +564,9 @@ python copy_buildsystem () { # sdk_ext_postinst() below) thus the checksum we take here would always # be different. manifest_file_list = ['conf/*'] + if d.getVar('BBMULTICONFIG') is not None: + manifest_file_list.append('conf/multiconfig/*') + esdk_manifest_excludes = (d.getVar('ESDK_MANIFEST_EXCLUDES') or '').split() esdk_manifest_excludes_list = [] for exclude_item in esdk_manifest_excludes: @@ -564,7 +575,7 @@ python copy_buildsystem () { with open(manifest_file, 'w') as f: for item in manifest_file_list: for fn in glob.glob(os.path.join(baseoutpath, item)): - if fn == manifest_file: + if fn == manifest_file or os.path.isdir(fn): continue if fn in esdk_manifest_excludes_list: continue diff --git a/poky/meta/classes/reproducible_build.bbclass b/poky/meta/classes/reproducible_build.bbclass index ea643f286..278eeedc7 100644 --- a/poky/meta/classes/reproducible_build.bbclass +++ b/poky/meta/classes/reproducible_build.bbclass @@ -80,17 +80,16 @@ python create_source_date_epoch_stamp() { import oe.reproducible epochfile = d.getVar('SDE_FILE') - # If it exists we need to regenerate as the sources may have changed - if os.path.isfile(epochfile): - bb.debug(1, "Deleting existing SOURCE_DATE_EPOCH from: %s" % epochfile) - os.remove(epochfile) + tmp_file = "%s.new" % epochfile source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S')) bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch) bb.utils.mkdirhier(d.getVar('SDE_DIR')) - with open(epochfile, 'w') as f: + with open(tmp_file, 'w') as f: f.write(str(source_date_epoch)) + + os.rename(tmp_file, epochfile) } def get_source_date_epoch_value(d): @@ -100,7 +99,7 @@ def get_source_date_epoch_value(d): epochfile = d.getVar('SDE_FILE') source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) - if os.path.isfile(epochfile): + try: with open(epochfile, 'r') as f: s = f.read() try: @@ -113,7 +112,7 @@ def get_source_date_epoch_value(d): bb.warn("SOURCE_DATE_EPOCH value '%s' is invalid. Reverting to SOURCE_DATE_EPOCH_FALLBACK" % s) source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch) - else: + except FileNotFoundError: bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch)) d.setVar('__CACHED_SOURCE_DATE_EPOCH', str(source_date_epoch)) diff --git a/poky/meta/classes/uboot-config.bbclass b/poky/meta/classes/uboot-config.bbclass index 3bba02828..451db0c65 100644 --- a/poky/meta/classes/uboot-config.bbclass +++ b/poky/meta/classes/uboot-config.bbclass @@ -71,6 +71,10 @@ UBOOT_MKIMAGE_SIGN ?= "${UBOOT_MKIMAGE}" UBOOT_MKIMAGE_SIGN_ARGS ?= "" SPL_MKIMAGE_SIGN_ARGS ?= "" +# Options to deploy the u-boot device tree +UBOOT_DTB ?= "" +UBOOT_DTB_BINARY ??= "" + python () { ubootmachine = d.getVar("UBOOT_MACHINE") ubootconfigflags = d.getVarFlags('UBOOT_CONFIG') diff --git a/poky/meta/classes/uboot-sign.bbclass b/poky/meta/classes/uboot-sign.bbclass index 29b2edc83..9671cf76a 100644 --- a/poky/meta/classes/uboot-sign.bbclass +++ b/poky/meta/classes/uboot-sign.bbclass @@ -196,10 +196,9 @@ concat_spl_dtb() { # signing, and kernel will deploy UBOOT_DTB_BINARY after signs it. install_helper() { if [ -f "${UBOOT_DTB_BINARY}" ]; then - install -d ${D}${datadir} # UBOOT_DTB_BINARY is a symlink to UBOOT_DTB_IMAGE, so we # need both of them. - install ${UBOOT_DTB_BINARY} ${D}${datadir}/${UBOOT_DTB_IMAGE} + install -Dm 0644 ${UBOOT_DTB_BINARY} ${D}${datadir}/${UBOOT_DTB_IMAGE} ln -sf ${UBOOT_DTB_IMAGE} ${D}${datadir}/${UBOOT_DTB_BINARY} else bbwarn "${UBOOT_DTB_BINARY} not found" @@ -209,14 +208,13 @@ install_helper() { # Install SPL dtb and u-boot nodtb to datadir, install_spl_helper() { if [ -f "${SPL_DIR}/${SPL_DTB_BINARY}" ]; then - install -d ${D}${datadir} - install ${SPL_DIR}/${SPL_DTB_BINARY} ${D}${datadir}/${SPL_DTB_IMAGE} + install -Dm 0644 ${SPL_DIR}/${SPL_DTB_BINARY} ${D}${datadir}/${SPL_DTB_IMAGE} ln -sf ${SPL_DTB_IMAGE} ${D}${datadir}/${SPL_DTB_BINARY} else bbwarn "${SPL_DTB_BINARY} not found" fi if [ -f "${UBOOT_NODTB_BINARY}" ] ; then - install ${UBOOT_NODTB_BINARY} ${D}${datadir}/${UBOOT_NODTB_IMAGE} + install -Dm 0644 ${UBOOT_NODTB_BINARY} ${D}${datadir}/${UBOOT_NODTB_IMAGE} ln -sf ${UBOOT_NODTB_IMAGE} ${D}${datadir}/${UBOOT_NODTB_BINARY} else bbwarn "${UBOOT_NODTB_BINARY} not found" diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf index f451ba6a4..160abf40e 100644 --- a/poky/meta/conf/bitbake.conf +++ b/poky/meta/conf/bitbake.conf @@ -845,8 +845,8 @@ DISTRO_FEATURES_NATIVESDK ?= "x11" # Normally target distro features will not be applied to native builds: # Native distro features on this list will use the target feature value -DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation opengl" -DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation opengl" +DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl" +DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl" DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig" MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" diff --git a/poky/meta/conf/distro/include/distro_alias.inc b/poky/meta/conf/distro/include/distro_alias.inc index b4dfcfc5f..001d26934 100644 --- a/poky/meta/conf/distro/include/distro_alias.inc +++ b/poky/meta/conf/distro/include/distro_alias.inc @@ -26,21 +26,11 @@ DISTRO_PN_ALIAS_pn-builder = "OE-Core" DISTRO_PN_ALIAS_pn-buildtools-tarball = "OE-Core" DISTRO_PN_ALIAS_pn-cdrtools = "OpenSUSE=cdrtools OSPDT" DISTRO_PN_ALIAS_pn-chkconfig-alternatives = "Mandriva=chkconfig Debian=chkconfig" -DISTRO_PN_ALIAS_pn-clutter = "Fedora=clutter OpenSuse=clutter Ubuntu=clutter-1.0 Mandriva=clutter Debian=clutter" -DISTRO_PN_ALIAS_pn-clutter-1.8 = "Fedora=clutter OpenSuse=clutter Ubuntu=clutter-1.0 Mandriva=clutter Debian=clutter" -DISTRO_PN_ALIAS_pn-clutter-gst-1.0 = "Debian=clutter-gst Ubuntu=clutter-gst Fedora=clutter-gst" -DISTRO_PN_ALIAS_pn-clutter-gst-1.8 = "Fedora=clutter-gst Debian=libclutter-gst" -DISTRO_PN_ALIAS_pn-clutter-gst-3.0 = "Ubuntu=libclutter-gst Debian=libclutter-gst" -DISTRO_PN_ALIAS_pn-clutter-gtk-1.0 = "Debian=clutter-gtk Ubuntu=clutter-gtk Fedora=clutter-gtk" -DISTRO_PN_ALIAS_pn-clutter-gtk-1.8 = "Fedora=clutter-gtk OpenSuSE=clutter-gtk Ubuntu=clutter-gtk-0.10 Mandriva=clutter-gtk Debian=clutter-gtk" -DISTRO_PN_ALIAS_pn-cogl-1.0 = "Debian=cogl Ubuntu=cogl Fedora=cogl" -DISTRO_PN_ALIAS_pn-cogl = "Fedora=cogl OpenSuse=cogl Ubuntu=cogl Mandriva=cogl Debian=cogl" DISTRO_PN_ALIAS_pn-connman = "Meego=connman" DISTRO_PN_ALIAS_pn-connman-conf = "OE-Core" DISTRO_PN_ALIAS_pn-connman-gnome = "Intel" DISTRO_PN_ALIAS_pn-console-tools = "Debian=console-tools Ubuntu=console-tools" DISTRO_PN_ALIAS_pn-core-image-base = "OE-Core" -DISTRO_PN_ALIAS_pn-core-image-clutter = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-full-cmdline = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-kernel-dev = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-minimal = "OE-Core" @@ -248,7 +238,6 @@ DISTRO_PN_ALIAS_pn-packagegroup-base = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-boot = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-buildessential = "OE-Core" -DISTRO_PN_ALIAS_pn-packagegroup-core-clutter = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-device-devel = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-eclipse-debug = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-full-cmdline = "OE-Core" diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc index fa7eb9da0..e59f01d66 100644 --- a/poky/meta/conf/distro/include/maintainers.inc +++ b/poky/meta/conf/distro/include/maintainers.inc @@ -48,9 +48,9 @@ RECIPE_MAINTAINER_pn-asciidoc = "Yi Zhao " RECIPE_MAINTAINER_pn-aspell = "Anuj Mittal " RECIPE_MAINTAINER_pn-assimp = "Anuj Mittal " RECIPE_MAINTAINER_pn-at = "Chen Qi " -RECIPE_MAINTAINER_pn-at-spi2-atk = "Tim Orling " -RECIPE_MAINTAINER_pn-at-spi2-core = "Tim Orling " -RECIPE_MAINTAINER_pn-atk = "Tim Orling " +RECIPE_MAINTAINER_pn-at-spi2-atk = "Tim Orling " +RECIPE_MAINTAINER_pn-at-spi2-core = "Tim Orling " +RECIPE_MAINTAINER_pn-atk = "Tim Orling " RECIPE_MAINTAINER_pn-attr = "Chen Qi " RECIPE_MAINTAINER_pn-autoconf = "Robert Yang " RECIPE_MAINTAINER_pn-autoconf-archive = "Robert Yang " @@ -93,12 +93,8 @@ RECIPE_MAINTAINER_pn-cantarell-fonts = "Alexander Kanavin " RECIPE_MAINTAINER_pn-core-image-testmaster-initramfs = "Richard Purdie " RECIPE_MAINTAINER_pn-core-image-testmaster = "Richard Purdie " -RECIPE_MAINTAINER_pn-core-image-clutter = "Richard Purdie " RECIPE_MAINTAINER_pn-core-image-weston = "Richard Purdie " RECIPE_MAINTAINER_pn-core-image-weston-sdk = "Richard Purdie " RECIPE_MAINTAINER_pn-core-image-x11 = "Richard Purdie " @@ -234,6 +229,7 @@ RECIPE_MAINTAINER_pn-gobject-introspection = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libepoxy = "Anuj Mittal " RECIPE_MAINTAINER_pn-liberation-fonts = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-liberror-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-liberror-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libevdev = "Anuj Mittal " RECIPE_MAINTAINER_pn-libevent = "Anuj Mittal " RECIPE_MAINTAINER_pn-libexif = "Alexander Kanavin " @@ -356,7 +352,7 @@ RECIPE_MAINTAINER_pn-libmd = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libmicrohttpd = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libmnl = "Khem Raj " RECIPE_MAINTAINER_pn-libmpc = "Khem Raj " -RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libmodulemd = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia " RECIPE_MAINTAINER_pn-libnl = "Alexander Kanavin " @@ -390,9 +386,9 @@ RECIPE_MAINTAINER_pn-libsoup-2.4 = "Anuj Mittal " RECIPE_MAINTAINER_pn-libssh2 = "Unassigned " RECIPE_MAINTAINER_pn-libssp-nonshared = "Khem Raj " RECIPE_MAINTAINER_pn-libtasn1 = "Anuj Mittal " -RECIPE_MAINTAINER_pn-libtest-needs-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libtest-needs-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libtheora = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-libtimedate-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libtimedate-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libtirpc = "Anuj Mittal " RECIPE_MAINTAINER_pn-libtool = "Robert Yang " RECIPE_MAINTAINER_pn-libtool-cross = "Robert Yang " @@ -401,7 +397,7 @@ RECIPE_MAINTAINER_pn-libucontext = "Khem Raj " RECIPE_MAINTAINER_pn-libunistring = "Anuj Mittal " RECIPE_MAINTAINER_pn-libunwind = "Bruce Ashfield " RECIPE_MAINTAINER_pn-liburcu = "Wang Mingyu " -RECIPE_MAINTAINER_pn-liburi-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-liburi-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libusb1 = "Anuj Mittal " RECIPE_MAINTAINER_pn-libubootenv = "Stefano Babic " RECIPE_MAINTAINER_pn-libuv = "Armin Kuster " @@ -429,12 +425,12 @@ RECIPE_MAINTAINER_pn-libxi = "Armin Kuster " RECIPE_MAINTAINER_pn-libxinerama = "Armin Kuster " RECIPE_MAINTAINER_pn-libxkbcommon = "Armin Kuster " RECIPE_MAINTAINER_pn-libxkbfile = "Armin Kuster " -RECIPE_MAINTAINER_pn-libxml-namespacesupport-perl = "Tim Orling " -RECIPE_MAINTAINER_pn-libxml-parser-perl = "Tim Orling " -RECIPE_MAINTAINER_pn-libxml-perl = "Tim Orling " -RECIPE_MAINTAINER_pn-libxml-sax-base-perl = "Tim Orling " -RECIPE_MAINTAINER_pn-libxml-sax-perl = "Tim Orling " -RECIPE_MAINTAINER_pn-libxml-simple-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libxml-namespacesupport-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libxml-parser-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libxml-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libxml-sax-base-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libxml-sax-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libxml-simple-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libxml2 = "Hongxu Jia " RECIPE_MAINTAINER_pn-libxmu = "Armin Kuster " RECIPE_MAINTAINER_pn-libxpm = "Armin Kuster " @@ -520,7 +516,6 @@ RECIPE_MAINTAINER_pn-mtools = "Anuj Mittal " RECIPE_MAINTAINER_pn-musl = "Khem Raj " RECIPE_MAINTAINER_pn-musl-obstack = "Khem Raj " RECIPE_MAINTAINER_pn-musl-utils = "Khem Raj " -RECIPE_MAINTAINER_pn-mx-1.0 = "Anuj Mittal " RECIPE_MAINTAINER_pn-nasm = "Richard Purdie " RECIPE_MAINTAINER_pn-nativesdk-buildtools-perl-dummy = "Richard Purdie " RECIPE_MAINTAINER_pn-nativesdk-icecc-toolchain = "Joshua Watt " @@ -564,6 +559,7 @@ RECIPE_MAINTAINER_pn-pciutils = "Chen Qi " RECIPE_MAINTAINER_pn-pcmanfm = "Alexander Kanavin " RECIPE_MAINTAINER_pn-perf = "Bruce Ashfield " RECIPE_MAINTAINER_pn-perl = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-perlcross = "Alexander Kanavin " RECIPE_MAINTAINER_pn-piglit = "Ross Burton " RECIPE_MAINTAINER_pn-pigz = "Hongxu Jia " RECIPE_MAINTAINER_pn-pinentry = "Armin Kuster " @@ -588,8 +584,8 @@ RECIPE_MAINTAINER_pn-pulseaudio-client-conf-sato = "Unassigned " RECIPE_MAINTAINER_pn-python3-git = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-gitdb = "Oleksandr Kravchuk " -RECIPE_MAINTAINER_pn-python3-hypothesis = "Tim Orling " -RECIPE_MAINTAINER_pn-python3-importlib-metadata = "Tim Orling " -RECIPE_MAINTAINER_pn-python3-iniconfig = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-hypothesis = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-importlib-metadata = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-iniconfig = "Tim Orling " RECIPE_MAINTAINER_pn-python3-iniparse = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-jinja2 = "Richard Purdie " RECIPE_MAINTAINER_pn-python3-libarchive-c = "Joshua Watt " @@ -609,36 +605,36 @@ RECIPE_MAINTAINER_pn-python3-magic = "Joshua Watt " RECIPE_MAINTAINER_pn-python3-mako = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-markdown = "Alexander Kanavin " RECIPE_MAINTAINER_pn-python3-markupsafe = "Richard Purdie " -RECIPE_MAINTAINER_pn-python3-more-itertools = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-more-itertools = "Tim Orling " RECIPE_MAINTAINER_pn-python3-nose = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-numpy = "Oleksandr Kravchuk " -RECIPE_MAINTAINER_pn-python3-packaging = "Tim Orling " -RECIPE_MAINTAINER_pn-python3-pathlib2 = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-packaging = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-pathlib2 = "Tim Orling " RECIPE_MAINTAINER_pn-python3-pbr = "Zang Ruochen " RECIPE_MAINTAINER_pn-python3-pip = "Zang Ruochen " -RECIPE_MAINTAINER_pn-python3-pluggy = "Tim Orling " -RECIPE_MAINTAINER_pn-python3-py = "Tim Orling " -RECIPE_MAINTAINER_pn-python3-pyyaml = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-pluggy = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-py = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-pyyaml = "Tim Orling " RECIPE_MAINTAINER_pn-python3-pycairo = "Zang Ruochen " RECIPE_MAINTAINER_pn-python3-pyelftools = "Joshua Watt " RECIPE_MAINTAINER_pn-python3-pygments = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-pygobject = "Zang Ruochen " RECIPE_MAINTAINER_pn-python3-pyparsing = "Oleksandr Kravchuk " -RECIPE_MAINTAINER_pn-python3-pytest = "Tim Orling " -RECIPE_MAINTAINER_pn-python3-scons = "Tim Orling " -RECIPE_MAINTAINER_pn-python3-scons-native = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-pytest = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-scons = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-scons-native = "Tim Orling " RECIPE_MAINTAINER_pn-python3-setuptools = "Oleksandr Kravchuk " -RECIPE_MAINTAINER_pn-python3-setuptools-scm = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-setuptools-scm = "Tim Orling " RECIPE_MAINTAINER_pn-python3-six = "Zang Ruochen " RECIPE_MAINTAINER_pn-python3-smartypants = "Alexander Kanavin " RECIPE_MAINTAINER_pn-python3-smmap = "Oleksandr Kravchuk " -RECIPE_MAINTAINER_pn-python3-sortedcontainers = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-sortedcontainers = "Tim Orling " RECIPE_MAINTAINER_pn-python3-subunit = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-testtools = "Oleksandr Kravchuk " -RECIPE_MAINTAINER_pn-python3-toml = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-toml = "Tim Orling " RECIPE_MAINTAINER_pn-python3-typogrify = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-python3-wcwidth = "Tim Orling " -RECIPE_MAINTAINER_pn-python3-zipp = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-wcwidth = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-zipp = "Tim Orling " RECIPE_MAINTAINER_pn-qemu = "Richard Purdie " RECIPE_MAINTAINER_pn-qemu-helper-native = "Richard Purdie " RECIPE_MAINTAINER_pn-qemu-native = "Richard Purdie " diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc index aef70343f..d489ad820 100644 --- a/poky/meta/conf/distro/include/ptest-packagelists.inc +++ b/poky/meta/conf/distro/include/ptest-packagelists.inc @@ -88,7 +88,6 @@ PTESTS_SLOW_remove_riscv64 = "valgrind-ptest" PTESTS_PROBLEMS_append_riscv64 = "valgrind-ptest" # ruby-ptest \ # Timeout -# clutter-1.0-ptest \ # Doesn't build due to depends on cogl-1.0 # lz4-ptest \ # Needs a rewrite # rt-tests-ptest \ # Needs to be checked whether it runs at all # bash-ptest \ # Test outcomes are non-deterministic by design @@ -102,7 +101,6 @@ PTESTS_PROBLEMS_append_riscv64 = "valgrind-ptest" PTESTS_PROBLEMS = "\ ruby-ptest \ - clutter-1.0-ptest \ lz4-ptest \ rt-tests-ptest \ bash-ptest \ diff --git a/poky/meta/conf/machine-sdk/ppc64.conf b/poky/meta/conf/machine-sdk/ppc64.conf new file mode 100644 index 000000000..1eb064eef --- /dev/null +++ b/poky/meta/conf/machine-sdk/ppc64.conf @@ -0,0 +1,2 @@ +SDK_ARCH = "ppc64" +ABIEXTENSION_class-nativesdk = "" diff --git a/poky/meta/conf/machine/include/arm/arch-armv4.inc b/poky/meta/conf/machine/include/arm/arch-armv4.inc index fac2bdf95..b71739c20 100644 --- a/poky/meta/conf/machine/include/arm/arch-armv4.inc +++ b/poky/meta/conf/machine/include/arm/arch-armv4.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv4" TUNEVALID[arm] = "Enable ARM instruction set" TUNEVALID[armv4] = "Enable instructions for ARMv4" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4t', '', d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}" # enable --fix-v4bx when we have armv4 in TUNE_FEATURES, but then disable it when we have also armv5 or thumb # maybe we should extend bb.utils.contains to support check for any checkvalues in value, now it does # checkvalues.issubset(val) which cannot be used for negative test of foo neither bar in value diff --git a/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/poky/meta/conf/machine/include/riscv/qemuriscv.inc index 428d28bde..20e2d465a 100644 --- a/poky/meta/conf/machine/include/riscv/qemuriscv.inc +++ b/poky/meta/conf/machine/include/riscv/qemuriscv.inc @@ -26,6 +26,7 @@ UBOOT_ENTRYPOINT_riscv32 = "0x80400000" UBOOT_ENTRYPOINT_riscv64 = "0x80200000" # qemuboot options +QB_SMP = "-smp 4" QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" QB_MACHINE = "-machine virt" QB_DEFAULT_BIOS = "fw_jump.elf" diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py index e86a09b33..47f3ca4ef 100644 --- a/poky/meta/lib/oe/sstatesig.py +++ b/poky/meta/lib/oe/sstatesig.py @@ -248,13 +248,24 @@ class SignatureGeneratorOEBasicHashMixIn(object): f.write(' "\n') f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(l))) - def dump_siglist(self, sigfile): + def dump_siglist(self, sigfile, path_prefix_strip=None): + def strip_fn(fn): + nonlocal path_prefix_strip + if not path_prefix_strip: + return fn + + fn_exp = fn.split(":") + if fn_exp[-1].startswith(path_prefix_strip): + fn_exp[-1] = fn_exp[-1][len(path_prefix_strip):] + + return ":".join(fn_exp) + with open(sigfile, "w") as f: tasks = [] for taskitem in self.taskhash: (fn, task) = taskitem.rsplit(":", 1) pn = self.lockedpnmap[fn] - tasks.append((pn, task, fn, self.taskhash[taskitem])) + tasks.append((pn, task, strip_fn(fn), self.taskhash[taskitem])) for (pn, task, fn, taskhash) in sorted(tasks): f.write('%s:%s %s %s\n' % (pn, task, fn, taskhash)) diff --git a/poky/meta/lib/oeqa/core/target/qemu.py b/poky/meta/lib/oeqa/core/target/qemu.py index 4a5df4a9a..79fd724f7 100644 --- a/poky/meta/lib/oeqa/core/target/qemu.py +++ b/poky/meta/lib/oeqa/core/target/qemu.py @@ -8,6 +8,8 @@ import os import sys import signal import time +import glob +import subprocess from collections import defaultdict from .ssh import OESSHTarget @@ -36,6 +38,8 @@ class OEQemuTarget(OESSHTarget): self.ovmf = ovmf self.use_slirp = slirp self.boot_patterns = boot_patterns + self.dump_dir = dump_dir + self.bootlog = bootlog self.runner = QemuRunner(machine=machine, rootfs=rootfs, tmpdir=tmpdir, deploy_dir_image=dir_image, display=display, @@ -74,7 +78,28 @@ class OEQemuTarget(OESSHTarget): self.server_ip = self.runner.server_ip else: self.stop() - raise RuntimeError("FAILED to start qemu - check the task log and the boot log") + # Display the first 20 lines of top and + # last 20 lines of the bootlog when the + # target is not being booted up. + topfile = glob.glob(self.dump_dir + "/*_qemu/host_*_top") + msg = "\n\n===== start: snippet =====\n\n" + for f in topfile: + msg += "file: %s\n\n" % f + with open(f) as tf: + for x in range(20): + msg += next(tf) + msg += "\n\n===== end: snippet =====\n\n" + blcmd = ["tail", "-20", self.bootlog] + msg += "===== start: snippet =====\n\n" + try: + out = subprocess.check_output(blcmd, stderr=subprocess.STDOUT, timeout=1).decode('utf-8') + msg += "file: %s\n\n" % self.bootlog + msg += out + except (subprocess.CalledProcessError, subprocess.TimeoutExpired, FileNotFoundError) as err: + msg += "Error running command: %s\n%s\n" % (blcmd, err) + msg += "\n\n===== end: snippet =====\n" + + raise RuntimeError("FAILED to start qemu - check the task log and the boot log %s" % (msg)) def stop(self): self.runner.stop() diff --git a/poky/meta/lib/oeqa/manual/toaster-managed-mode.json b/poky/meta/lib/oeqa/manual/toaster-managed-mode.json index 12374c7c6..38b396ab0 100644 --- a/poky/meta/lib/oeqa/manual/toaster-managed-mode.json +++ b/poky/meta/lib/oeqa/manual/toaster-managed-mode.json @@ -2348,7 +2348,7 @@ "expected_results": "" }, "3": { - "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. ", + "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base) to name a few. ", "expected_results": " All recipes are built correctly \n\n" }, "4": { @@ -2382,7 +2382,7 @@ "expected_results": "" }, "3": { - "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. \n\n", + "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base) to name a few. \n\n", "expected_results": "All recipes are built correctly \n\n" }, "4": { @@ -2420,7 +2420,7 @@ "expected_results": "" }, "3": { - "action": "Build 4 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. \n\n", + "action": "Build 4 recipes example (core-image-sato, core-image-minimal, core-image-base) to name a few. \n\n", "expected_results": " All recipes are built correctly \n\n" }, "4": { diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py index 5d4330b48..2de22d340 100644 --- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py +++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py @@ -68,18 +68,6 @@ class ImageFeatures(OESelftestTestCase): self.assertEqual(status, 0, 'ssh to user tester failed with %s' % output) - def test_clutter_image_can_be_built(self): - """ - Summary: Check if clutter image can be built - Expected: 1. core-image-clutter can be built - Product: oe-core - Author: Ionut Chisanovici - AutomatedBy: Daniel Istrate - """ - - # Build a core-image-clutter - bitbake('core-image-clutter') - def test_wayland_support_in_image(self): """ Summary: Check Wayland support in image diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py index 84c2cb77e..d0c244072 100644 --- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py +++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py @@ -14,11 +14,6 @@ from oeqa.core.decorator.data import skipIfNotQemu class TestExport(OESelftestTestCase): - @classmethod - def tearDownClass(cls): - runCmd("rm -rf /tmp/sdk") - super(TestExport, cls).tearDownClass() - def test_testexport_basic(self): """ Summary: Check basic testexport functionality with only ping test enabled. @@ -95,19 +90,20 @@ class TestExport(OESelftestTestCase): msg = "Couldn't find SDK tarball: %s" % tarball_path self.assertEqual(os.path.isfile(tarball_path), True, msg) - # Extract SDK and run tar from SDK - result = runCmd("%s -y -d /tmp/sdk" % tarball_path) - self.assertEqual(0, result.status, "Couldn't extract SDK") + with tempfile.TemporaryDirectory() as tmpdirname: + # Extract SDK and run tar from SDK + result = runCmd("%s -y -d %s" % (tarball_path, tmpdirname)) + self.assertEqual(0, result.status, "Couldn't extract SDK") - env_script = result.output.split()[-1] - result = runCmd(". %s; which tar" % env_script, shell=True) - self.assertEqual(0, result.status, "Couldn't setup SDK environment") - is_sdk_tar = True if "/tmp/sdk" in result.output else False - self.assertTrue(is_sdk_tar, "Couldn't setup SDK environment") + env_script = result.output.split()[-1] + result = runCmd(". %s; which tar" % env_script, shell=True) + self.assertEqual(0, result.status, "Couldn't setup SDK environment") + is_sdk_tar = True if tmpdirname in result.output else False + self.assertTrue(is_sdk_tar, "Couldn't setup SDK environment") - tar_sdk = result.output - result = runCmd("%s --version" % tar_sdk) - self.assertEqual(0, result.status, "Couldn't run tar from SDK") + tar_sdk = result.output + result = runCmd("%s --version" % tar_sdk) + self.assertEqual(0, result.status, "Couldn't run tar from SDK") class TestImage(OESelftestTestCase): diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py index 0032f6ed8..abbc7f7d1 100644 --- a/poky/meta/lib/oeqa/utils/qemurunner.py +++ b/poky/meta/lib/oeqa/utils/qemurunner.py @@ -65,7 +65,7 @@ class QemuRunner: self.boot_patterns = boot_patterns self.tmpfsdir = tmpfsdir - self.runqemutime = 120 + self.runqemutime = 300 if not workdir: workdir = os.getcwd() self.qemu_pidfile = workdir + '/pidfile_' + str(os.getpid()) @@ -192,6 +192,12 @@ class QemuRunner: qmp_file = "." + next(tempfile._get_candidate_names()) qmp_param = ' -S -qmp unix:./%s,server,wait' % (qmp_file) qmp_port = self.tmpdir + "/" + qmp_file + # Create a second socket connection for debugging use, + # note this will NOT cause qemu to block waiting for the connection + qmp_file2 = "." + next(tempfile._get_candidate_names()) + qmp_param += ' -qmp unix:./%s,server,nowait' % (qmp_file2) + qmp_port2 = self.tmpdir + "/" + qmp_file2 + self.logger.info("QMP Available for connection at %s" % (qmp_port2)) try: if self.serial_ports >= 2: @@ -342,7 +348,24 @@ class QemuRunner: finally: os.chdir(origpath) - # Release the qemu porcess to continue running + # We worry that mmap'd libraries may cause page faults which hang the qemu VM for periods + # causing failures. Before we "start" qemu, read through it's mapped files to try and + # ensure we don't hit page faults later + mapdir = "/proc/" + str(self.qemupid) + "/map_files/" + try: + for f in os.listdir(mapdir): + linktarget = os.readlink(os.path.join(mapdir, f)) + if not linktarget.startswith("/") or linktarget.startswith("/dev") or "deleted" in linktarget: + continue + with open(linktarget, "rb") as readf: + data = True + while data: + data = readf.read(4096) + # Centos7 doesn't allow us to read /map_files/ + except PermissionError: + pass + + # Release the qemu process to continue running self.run_monitor('cont') # We are alive: qemu is running diff --git a/poky/meta/recipes-bsp/grub/grub-efi_2.06.bb b/poky/meta/recipes-bsp/grub/grub-efi_2.06.bb new file mode 100644 index 000000000..287845c50 --- /dev/null +++ b/poky/meta/recipes-bsp/grub/grub-efi_2.06.bb @@ -0,0 +1,91 @@ +require grub2.inc + +require conf/image-uefi.conf + +GRUBPLATFORM = "efi" + +DEPENDS_append = " grub-native" +RDEPENDS_${PN} = "grub-common virtual/grub-bootconf" + +SRC_URI += " \ + file://cfg \ + " + +S = "${WORKDIR}/grub-${PV}" + +# Determine the target arch for the grub modules +python __anonymous () { + import re + target = d.getVar('TARGET_ARCH') + prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-" + if target == "x86_64": + grubtarget = 'x86_64' + elif re.match('i.86', target): + grubtarget = 'i386' + elif re.match('aarch64', target): + grubtarget = 'arm64' + elif re.match('arm', target): + grubtarget = 'arm' + elif re.match('riscv64', target): + grubtarget = 'riscv64' + elif re.match('riscv32', target): + grubtarget = 'riscv32' + else: + raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target) + grubimage = prefix + d.getVar("EFI_BOOT_IMAGE") + d.setVar("GRUB_TARGET", grubtarget) + d.setVar("GRUB_IMAGE", grubimage) + prefix = "grub-efi-" if prefix == "" else "" + d.setVar("GRUB_IMAGE_PREFIX", prefix) +} + +inherit deploy + +CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" +EXTRA_OECONF += "--enable-efiemu=no" + +do_mkimage() { + cd ${B} + # Search for the grub.cfg on the local boot media by using the + # built in cfg file provided via this recipe + grub-mkimage -c ../cfg -p ${EFIDIR} -d ./grub-core/ \ + -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \ + ${GRUB_BUILDIN} +} + +addtask mkimage before do_install after do_compile + +do_install() { + oe_runmake 'DESTDIR=${D}' -C grub-core install + + # Remove build host references... + find "${D}" -name modinfo.sh -type f -exec \ + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + {} + + + install -d ${D}${EFI_FILES_PATH} + install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE} +} + +GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \ + efi_gop iso9660 configfile search loadenv test" + +do_deploy() { + install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR} +} + +addtask deploy after do_install before do_build + +FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \ + ${datadir}/grub \ + ${EFI_FILES_PATH}/${GRUB_IMAGE} \ + " + +# 64-bit binaries are expected for the bootloader with an x32 userland +INSANE_SKIP_${PN}_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}_append_linux-muslx32 = " arch" +INSANE_SKIP_${PN}-dbg_append_linux-muslx32 = " arch" diff --git a/poky/meta/recipes-bsp/grub/grub-efi_git.bb b/poky/meta/recipes-bsp/grub/grub-efi_git.bb deleted file mode 100644 index 240fde7db..000000000 --- a/poky/meta/recipes-bsp/grub/grub-efi_git.bb +++ /dev/null @@ -1,89 +0,0 @@ -require grub2.inc - -require conf/image-uefi.conf - -GRUBPLATFORM = "efi" - -DEPENDS_append = " grub-native" -RDEPENDS_${PN} = "grub-common virtual/grub-bootconf" - -SRC_URI += " \ - file://cfg \ - " - -# Determine the target arch for the grub modules -python __anonymous () { - import re - target = d.getVar('TARGET_ARCH') - prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-" - if target == "x86_64": - grubtarget = 'x86_64' - elif re.match('i.86', target): - grubtarget = 'i386' - elif re.match('aarch64', target): - grubtarget = 'arm64' - elif re.match('arm', target): - grubtarget = 'arm' - elif re.match('riscv64', target): - grubtarget = 'riscv64' - elif re.match('riscv32', target): - grubtarget = 'riscv32' - else: - raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target) - grubimage = prefix + d.getVar("EFI_BOOT_IMAGE") - d.setVar("GRUB_TARGET", grubtarget) - d.setVar("GRUB_IMAGE", grubimage) - prefix = "grub-efi-" if prefix == "" else "" - d.setVar("GRUB_IMAGE_PREFIX", prefix) -} - -inherit deploy - -CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" -EXTRA_OECONF += "--enable-efiemu=no" - -do_mkimage() { - cd ${B} - # Search for the grub.cfg on the local boot media by using the - # built in cfg file provided via this recipe - grub-mkimage -c ../cfg -p ${EFIDIR} -d ./grub-core/ \ - -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \ - ${GRUB_BUILDIN} -} - -addtask mkimage before do_install after do_compile - -do_install() { - oe_runmake 'DESTDIR=${D}' -C grub-core install - - # Remove build host references... - find "${D}" -name modinfo.sh -type f -exec \ - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - {} + - - install -d ${D}${EFI_FILES_PATH} - install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE} -} - -GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \ - efi_gop iso9660 configfile search loadenv test" - -do_deploy() { - install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR} -} - -addtask deploy after do_install before do_build - -FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \ - ${datadir}/grub \ - ${EFI_FILES_PATH}/${GRUB_IMAGE} \ - " - -# 64-bit binaries are expected for the bootloader with an x32 userland -INSANE_SKIP_${PN}_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}_append_linux-muslx32 = " arch" -INSANE_SKIP_${PN}-dbg_append_linux-muslx32 = " arch" diff --git a/poky/meta/recipes-bsp/grub/grub2.inc b/poky/meta/recipes-bsp/grub/grub2.inc index 3c6b434c2..19294760c 100644 --- a/poky/meta/recipes-bsp/grub/grub2.inc +++ b/poky/meta/recipes-bsp/grub/grub2.inc @@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" CVE_PRODUCT = "grub2" -SRC_URI = "https://alpha.gnu.org/gnu/grub/grub-${REALPV}.tar.xz \ +SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \ file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \ file://autogen.sh-exclude-pc.patch \ file://grub-module-explicitly-keeps-symbole-.module_license.patch \ @@ -22,26 +22,11 @@ SRC_URI = "https://alpha.gnu.org/gnu/grub/grub-${REALPV}.tar.xz \ file://0001-RISC-V-Restore-the-typcast-to-long.patch \ " -SRC_URI[sha256sum] = "2c87f1f21e2ab50043e6cd9163c08f1b6c3a6171556bf23ff9ed65b074145484" - -REALPV = "2.06~rc1" -PV = "2.04+${REALPV}" - -# Fixed in 2.06~rc1, can be removed for 2.06 final -CVE_CHECK_WHITELIST += "\ - CVE-2020-14308 CVE-2020-14309 CVE-2020-14310 CVE-2020-14311 CVE-2020-10713 \ - CVE-2020-14372 CVE-2020-15705 CVE-2020-15706 CVE-2020-15707 \ - CVE-2020-25632 CVE-2020-25647 CVE-2020-27749 CVE-2020-27779 \ - CVE-2021-3418 CVE-2021-20225 CVE-2021-20233" +SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f" # Applies only to RHEL CVE_CHECK_WHITELIST += "CVE-2019-14865" -S = "${WORKDIR}/grub-${REALPV}" - -UPSTREAM_CHECK_URI = "${GNU_MIRROR}/grub" -UPSTREAM_CHECK_REGEX = "grub-(?P\d+(\.\d+)+)\.tar\.(gz|xz)" - DEPENDS = "flex-native bison-native gettext-native" COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|riscv.*)-(linux.*|freebsd.*)' diff --git a/poky/meta/recipes-bsp/grub/grub_2.06.bb b/poky/meta/recipes-bsp/grub/grub_2.06.bb new file mode 100644 index 000000000..d4e09faa4 --- /dev/null +++ b/poky/meta/recipes-bsp/grub/grub_2.06.bb @@ -0,0 +1,41 @@ +require grub2.inc + +RDEPENDS_${PN}-common += "${PN}-editenv" +RDEPENDS_${PN} += "${PN}-common" +RDEPENDS_${PN}_class-native = "" + +RPROVIDES_${PN}-editenv += "${PN}-efi-editenv" + +PROVIDES_append_class-native = " grub-efi-native" + +PACKAGES =+ "${PN}-editenv ${PN}-common" +FILES_${PN}-editenv = "${bindir}/grub-editenv" +FILES_${PN}-common = " \ + ${bindir} \ + ${sysconfdir} \ + ${sbindir} \ + ${datadir}/grub \ +" +ALLOW_EMPTY_${PN} = "1" + +do_install_append () { + # Avoid conflicts with the EFI package for systems such as arm64 where we + # need to build grub and grub-efi but only EFI is supported by removing EFI + # from this package. + rm -rf ${D}${libdir}/grub/*-efi/ + rmdir --ignore-fail-on-non-empty ${D}${libdir}/grub ${D}${libdir} + + install -d ${D}${sysconfdir}/grub.d + # Remove build host references... + find "${D}" -name modinfo.sh -type f -exec \ + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + {} + +} + +INSANE_SKIP_${PN} = "arch" +INSANE_SKIP_${PN}-dbg = "arch" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-bsp/grub/grub_git.bb b/poky/meta/recipes-bsp/grub/grub_git.bb deleted file mode 100644 index d4e09faa4..000000000 --- a/poky/meta/recipes-bsp/grub/grub_git.bb +++ /dev/null @@ -1,41 +0,0 @@ -require grub2.inc - -RDEPENDS_${PN}-common += "${PN}-editenv" -RDEPENDS_${PN} += "${PN}-common" -RDEPENDS_${PN}_class-native = "" - -RPROVIDES_${PN}-editenv += "${PN}-efi-editenv" - -PROVIDES_append_class-native = " grub-efi-native" - -PACKAGES =+ "${PN}-editenv ${PN}-common" -FILES_${PN}-editenv = "${bindir}/grub-editenv" -FILES_${PN}-common = " \ - ${bindir} \ - ${sysconfdir} \ - ${sbindir} \ - ${datadir}/grub \ -" -ALLOW_EMPTY_${PN} = "1" - -do_install_append () { - # Avoid conflicts with the EFI package for systems such as arm64 where we - # need to build grub and grub-efi but only EFI is supported by removing EFI - # from this package. - rm -rf ${D}${libdir}/grub/*-efi/ - rmdir --ignore-fail-on-non-empty ${D}${libdir}/grub ${D}${libdir} - - install -d ${D}${sysconfdir}/grub.d - # Remove build host references... - find "${D}" -name modinfo.sh -type f -exec \ - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - {} + -} - -INSANE_SKIP_${PN} = "arch" -INSANE_SKIP_${PN}-dbg = "arch" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc b/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc index 2e3294324..cc31ab3b1 100644 --- a/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc +++ b/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc @@ -7,12 +7,25 @@ def riscv_get_extra_oemake_image(d): return "FW_PAYLOAD_PATH=" + deploy_dir + "/" + sbi_payload +def riscv_get_extra_oemake_fdt(d): + sbi_fdt = d.getVar('RISCV_SBI_FDT') + deploy_dir = d.getVar('DEPLOY_DIR_IMAGE') + + if sbi_fdt is None: + return "" + + return "FW_FDT_PATH=" + deploy_dir + "/" + sbi_fdt + def riscv_get_do_compile_depends(d): sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') + sbi_fdt = d.getVar('RISCV_SBI_FDT') - if sbi_payload is None: + if sbi_payload is None and sbi_fdt is None: return "" + if sbi_fdt is not None and 'u-boot.bin' in sbi_payload: + return "virtual/kernel:do_deploy virtual/bootloader:do_deploy" + if 'linux' in sbi_payload or 'Image' in sbi_payload: return "virtual/kernel:do_deploy" if 'u-boot.bin' in sbi_payload: diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb index cb1c3f2eb..5fee52136 100644 --- a/poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb +++ b/poky/meta/recipes-bsp/opensbi/opensbi_0.9.bb @@ -15,9 +15,10 @@ SRC_URI = "git://github.com/riscv/opensbi.git;branch=master \ S = "${WORKDIR}/git" -EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D}" +EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D} FW_PIC=n" # If RISCV_SBI_PAYLOAD is set then include it as a payload EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_image(d)}" +EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_fdt(d)}" # Required if specifying a custom payload do_compile[depends] += "${@riscv_get_do_compile_depends(d)}" diff --git a/poky/meta/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch b/poky/meta/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch new file mode 100644 index 000000000..81687203e --- /dev/null +++ b/poky/meta/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch @@ -0,0 +1,41 @@ +From 77fe3ad2ab2953ccdf6e9417cbecc060b45d3e55 Mon Sep 17 00:00:00 2001 +From: Ming Liu +Date: Sun, 30 May 2021 10:32:08 +0200 +Subject: [PATCH] tools: image-host: fix wrong return value + +The return value '-ENOSPC' of fit_set_timestamp function does not match +the caller fit_image_write_sig's expection which is '-FDT_ERR_NOSPACE'. + +Fix it by not calling fit_set_timestamp, but call fdt_setprop instead. + +This fixes a following mkimage error: +| Can't write signature for 'signature@1' signature node in +| 'conf@imx6ull-colibri-wifi-eval-v3.dtb' conf node: +| mkimage Can't add hashes to FIT blob: -1 + +Upstream-Status: Submitted [ https://patchwork.ozlabs.org/project/uboot/patch/20210531070451.6561-1-liu.ming50@gmail.com ] + +Signed-off-by: Ming Liu +--- + tools/image-host.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tools/image-host.c b/tools/image-host.c +index 270d36fe45..73095461a7 100644 +--- a/tools/image-host.c ++++ b/tools/image-host.c +@@ -132,8 +132,10 @@ static int fit_image_write_sig(void *fit, int noffset, uint8_t *value, + if (!ret) { + time_t timestamp = imagetool_get_source_date(cmdname, + time(NULL)); ++ uint32_t t = cpu_to_uimage(timestamp); + +- ret = fit_set_timestamp(fit, noffset, timestamp); ++ ret = fdt_setprop(fit, noffset, FIT_TIMESTAMP_PROP, &t, ++ sizeof(uint32_t)); + } + if (region_prop && !ret) { + uint32_t strdata[2]; +-- +2.29.0 + diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.04.bb index ef386f76e..4e9008191 100644 --- a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.04.bb +++ b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.04.bb @@ -1,3 +1,4 @@ require u-boot-common.inc require u-boot-tools.inc +SRC_URI_append = " file://0001-tools-image-host-fix-wrong-return-value.patch" diff --git a/poky/meta/recipes-bsp/u-boot/u-boot.inc b/poky/meta/recipes-bsp/u-boot/u-boot.inc index 5398c2e62..8ccc532f7 100644 --- a/poky/meta/recipes-bsp/u-boot/u-boot.inc +++ b/poky/meta/recipes-bsp/u-boot/u-boot.inc @@ -5,7 +5,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" DEPENDS += "kern-tools-native" -inherit uboot-config uboot-extlinux-config uboot-sign deploy cml1 python3native +inherit uboot-config uboot-extlinux-config uboot-sign deploy cml1 python3native kernel-arch DEPENDS += "swig-native" @@ -346,6 +346,11 @@ do_deploy () { ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE} ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME} fi + + if [ -n "${UBOOT_DTB}" ] + then + install -m 644 ${B}/arch/${UBOOT_ARCH}/dts/${UBOOT_DTB_BINARY} ${DEPLOYDIR}/ + fi } addtask deploy before do_build after do_compile diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb index 5c46bbf58..430231088 100644 --- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb +++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb @@ -24,6 +24,7 @@ SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV} file://99avahi-autoipd \ file://initscript.patch \ file://0001-Fix-opening-etc-resolv.conf-error.patch \ + file://handle-hup.patch \ " UPSTREAM_CHECK_URI = "https://github.com/lathiat/avahi/releases/" diff --git a/poky/meta/recipes-connectivity/avahi/files/handle-hup.patch b/poky/meta/recipes-connectivity/avahi/files/handle-hup.patch new file mode 100644 index 000000000..26632e544 --- /dev/null +++ b/poky/meta/recipes-connectivity/avahi/files/handle-hup.patch @@ -0,0 +1,41 @@ +CVE: CVE-2021-3468 +Upstream-Status: Submitted [https://github.com/lathiat/avahi/pull/330] +Signed-off-by: Ross Burton + +From 447affe29991ee99c6b9732fc5f2c1048a611d3b Mon Sep 17 00:00:00 2001 +From: Riccardo Schirone +Date: Fri, 26 Mar 2021 11:50:24 +0100 +Subject: [PATCH] Avoid infinite-loop in avahi-daemon by handling HUP event in + client_work + +If a client fills the input buffer, client_work() disables the +AVAHI_WATCH_IN event, thus preventing the function from executing the +`read` syscall the next times it is called. However, if the client then +terminates the connection, the socket file descriptor receives a HUP +event, which is not handled, thus the kernel keeps marking the HUP event +as occurring. While iterating over the file descriptors that triggered +an event, the client file descriptor will keep having the HUP event and +the client_work() function is always called with AVAHI_WATCH_HUP but +without nothing being done, thus entering an infinite loop. + +See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=984938 +--- + avahi-daemon/simple-protocol.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/avahi-daemon/simple-protocol.c b/avahi-daemon/simple-protocol.c +index 3e0ebb11..6c0274d6 100644 +--- a/avahi-daemon/simple-protocol.c ++++ b/avahi-daemon/simple-protocol.c +@@ -424,6 +424,11 @@ static void client_work(AvahiWatch *watch, AVAHI_GCC_UNUSED int fd, AvahiWatchEv + } + } + ++ if (events & AVAHI_WATCH_HUP) { ++ client_free(c); ++ return; ++ } ++ + c->server->poll_api->watch_update( + watch, + (c->outbuf_length > 0 ? AVAHI_WATCH_OUT : 0) | diff --git a/poky/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch b/poky/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch index 942b9c97b..9dca21a02 100644 --- a/poky/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch +++ b/poky/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch @@ -1,4 +1,4 @@ -From c7734e1547db967eccf242fe4b9e8a30b9ff141c Mon Sep 17 00:00:00 2001 +From 01974865e4d331eeaf25248bee1bb96539c450d9 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 6 Apr 2015 23:02:21 -0700 Subject: [PATCH] resolve: musl does not implement res_ninit @@ -15,7 +15,7 @@ Signed-off-by: Khem Raj 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/gweb/gresolv.c b/gweb/gresolv.c -index 38a554e..a9e8740 100644 +index 954e7cf..2a9bc51 100644 --- a/gweb/gresolv.c +++ b/gweb/gresolv.c @@ -36,6 +36,7 @@ @@ -26,7 +26,7 @@ index 38a554e..a9e8740 100644 #include "gresolv.h" -@@ -877,8 +878,6 @@ GResolv *g_resolv_new(int index) +@@ -878,8 +879,6 @@ GResolv *g_resolv_new(int index) resolv->index = index; resolv->nameserver_list = NULL; @@ -35,7 +35,7 @@ index 38a554e..a9e8740 100644 return resolv; } -@@ -918,8 +917,6 @@ void g_resolv_unref(GResolv *resolv) +@@ -919,8 +918,6 @@ void g_resolv_unref(GResolv *resolv) flush_nameservers(resolv); @@ -44,7 +44,7 @@ index 38a554e..a9e8740 100644 g_free(resolv); } -@@ -1022,24 +1019,19 @@ guint g_resolv_lookup_hostname(GResolv *resolv, const char *hostname, +@@ -1023,24 +1020,19 @@ guint g_resolv_lookup_hostname(GResolv *resolv, const char *hostname, debug(resolv, "hostname %s", hostname); if (!resolv->nameserver_list) { diff --git a/poky/meta/recipes-connectivity/connman/connman_1.39.bb b/poky/meta/recipes-connectivity/connman/connman_1.39.bb deleted file mode 100644 index df42e9ffb..000000000 --- a/poky/meta/recipes-connectivity/connman/connman_1.39.bb +++ /dev/null @@ -1,15 +0,0 @@ -require connman.inc - -SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ - file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \ - file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \ - file://connman \ - file://no-version-scripts.patch \ - " - -SRC_URI_append_libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch" - -SRC_URI[sha256sum] = "9f62a7169b7491c670a1ff2e335b0d966308fb2f62e285c781105eb90f181af3" - -RRECOMMENDS_${PN} = "connman-conf" -RCONFLICTS_${PN} = "networkmanager" diff --git a/poky/meta/recipes-connectivity/connman/connman_1.40.bb b/poky/meta/recipes-connectivity/connman/connman_1.40.bb new file mode 100644 index 000000000..15d105e2b --- /dev/null +++ b/poky/meta/recipes-connectivity/connman/connman_1.40.bb @@ -0,0 +1,15 @@ +require connman.inc + +SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ + file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \ + file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \ + file://connman \ + file://no-version-scripts.patch \ + " + +SRC_URI_append_libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch" + +SRC_URI[sha256sum] = "1a57ae7ce234aa3a1744aac3be5c2121d98dce999440ef8ab9cc4edfd5edcb12" + +RRECOMMENDS_${PN} = "connman-conf" +RCONFLICTS_${PN} = "networkmanager" diff --git a/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb b/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb new file mode 100644 index 000000000..f3b64174c --- /dev/null +++ b/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.1.bb @@ -0,0 +1,39 @@ +SUMMARY = "Name Service Switch module for Multicast DNS (zeroconf) name resolution" +HOMEPAGE = "https://github.com/lathiat/nss-mdns" +DESCRIPTION = "nss-mdns is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc) providing host name resolution via Multicast DNS (aka Zeroconf, aka Apple Rendezvous, aka Apple Bonjour), effectively allowing name resolution by common Unix/Linux programs in the ad-hoc mDNS domain .local." +SECTION = "libs" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1" + +DEPENDS = "avahi" + +SRC_URI = "git://github.com/lathiat/nss-mdns \ + " + +SRCREV = "4b3cfe818bf72d99a02b8ca8b8813cb2d6b40633" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +COMPATIBLE_HOST_libc-musl = 'null' + +EXTRA_OECONF = "--libdir=${base_libdir}" + +RDEPENDS_${PN} = "avahi-daemon" + +pkg_postinst_${PN} () { + sed ' + /^hosts:/ !b + /\/ b + s/\([[:blank:]]\+\)dns\>/\1mdns4_minimal [NOTFOUND=return] dns/g + ' -i $D${sysconfdir}/nsswitch.conf +} + +pkg_prerm_${PN} () { + sed ' + /^hosts:/ !b + s/[[:blank:]]\+mdns\(4\|6\)\?\(_minimal\( \[NOTFOUND=return\]\)\?\)\?//g + ' -i $D${sysconfdir}/nsswitch.conf +} diff --git a/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.bb b/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.bb deleted file mode 100644 index 75e8ba06d..000000000 --- a/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Name Service Switch module for Multicast DNS (zeroconf) name resolution" -HOMEPAGE = "https://github.com/lathiat/nss-mdns" -DESCRIPTION = "nss-mdns is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc) providing host name resolution via Multicast DNS (aka Zeroconf, aka Apple Rendezvous, aka Apple Bonjour), effectively allowing name resolution by common Unix/Linux programs in the ad-hoc mDNS domain .local." -SECTION = "libs" - -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1" - -DEPENDS = "avahi" - -SRC_URI = "git://github.com/lathiat/nss-mdns \ - " - -SRCREV = "65ad25563937682ab2770c36d56667a754837102" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -COMPATIBLE_HOST_libc-musl = 'null' - -EXTRA_OECONF = "--libdir=${base_libdir}" - -RDEPENDS_${PN} = "avahi-daemon" - -pkg_postinst_${PN} () { - sed ' - /^hosts:/ !b - /\/ b - s/\([[:blank:]]\+\)dns\>/\1mdns4_minimal [NOTFOUND=return] dns/g - ' -i $D${sysconfdir}/nsswitch.conf -} - -pkg_prerm_${PN} () { - sed ' - /^hosts:/ !b - s/[[:blank:]]\+mdns\(4\|6\)\?\(_minimal\( \[NOTFOUND=return\]\)\?\)\?//g - ' -i $D${sysconfdir}/nsswitch.conf -} diff --git a/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.0.bb b/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.0.bb deleted file mode 100644 index 967eabcc1..000000000 --- a/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.0.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Interface for user-level network packet capture" -DESCRIPTION = "Libpcap provides a portable framework for low-level network \ -monitoring. Libpcap can provide network statistics collection, \ -security monitoring and network debugging." -HOMEPAGE = "http://www.tcpdump.org/" -BUGTRACKER = "http://sourceforge.net/tracker/?group_id=53067&atid=469577" -SECTION = "libs/network" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453 \ - file://pcap.h;beginline=1;endline=32;md5=39af3510e011f34b8872f120b1dc31d2" -DEPENDS = "flex-native bison-native" - -SRC_URI = "https://www.tcpdump.org/release/${BP}.tar.gz \ - " -SRC_URI[md5sum] = "8c12dc19dd7e0d02d2bb6596eb5a71c7" -SRC_URI[sha256sum] = "8d12b42623eeefee872f123bd0dc85d535b00df4d42e865f993c40f7bfc92b1e" - -inherit autotools binconfig-disabled pkgconfig - -BINCONFIG = "${bindir}/pcap-config" - -# Explicitly disable dag support. We don't have recipe for it and if enabled here, -# configure script poisons the include dirs with /usr/local/include even when the -# support hasn't been detected. -EXTRA_OECONF = " \ - --with-pcap=linux \ - --without-dag \ - " -EXTRA_AUTORECONF += "--exclude=aclocal" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -PACKAGECONFIG[bluez5] = "--enable-bluetooth,--disable-bluetooth,bluez5" -PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGECONFIG[libnl] = "--with-libnl,--without-libnl,libnl" - -do_configure_prepend () { - #remove hardcoded references to /usr/include - sed 's|\([ "^'\''I]\+\)/usr/include/|\1${STAGING_INCDIR}/|g' -i ${S}/configure.ac -} - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.1.bb b/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.1.bb new file mode 100644 index 000000000..f528595c9 --- /dev/null +++ b/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.1.bb @@ -0,0 +1,42 @@ +SUMMARY = "Interface for user-level network packet capture" +DESCRIPTION = "Libpcap provides a portable framework for low-level network \ +monitoring. Libpcap can provide network statistics collection, \ +security monitoring and network debugging." +HOMEPAGE = "http://www.tcpdump.org/" +BUGTRACKER = "http://sourceforge.net/tracker/?group_id=53067&atid=469577" +SECTION = "libs/network" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453 \ + file://pcap.h;beginline=1;endline=32;md5=39af3510e011f34b8872f120b1dc31d2" +DEPENDS = "flex-native bison-native" + +SRC_URI = "https://www.tcpdump.org/release/${BP}.tar.gz" +SRC_URI[sha256sum] = "ed285f4accaf05344f90975757b3dbfe772ba41d1c401c2648b7fa45b711bdd4" + +inherit autotools binconfig-disabled pkgconfig + +BINCONFIG = "${bindir}/pcap-config" + +# Explicitly disable dag support. We don't have recipe for it and if enabled here, +# configure script poisons the include dirs with /usr/local/include even when the +# support hasn't been detected. +EXTRA_OECONF = " \ + --with-pcap=linux \ + --without-dag \ + " +EXTRA_AUTORECONF += "--exclude=aclocal" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG[bluez5] = "--enable-bluetooth,--disable-bluetooth,bluez5" +PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[libnl] = "--with-libnl,--without-libnl,libnl" + +do_configure_prepend () { + #remove hardcoded references to /usr/include + sed 's|\([ "^'\''I]\+\)/usr/include/|\1${STAGING_INCDIR}/|g' -i ${S}/configure.ac +} + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.3.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.3.bb deleted file mode 100644 index d8c6391b3..000000000 --- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.3.bb +++ /dev/null @@ -1,145 +0,0 @@ -SUMMARY = "userspace utilities for kernel nfs" -DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ -NFS server and related tools." -HOMEPAGE = "http://nfs.sourceforge.net/" -SECTION = "console/network" - -LICENSE = "MIT & GPLv2+ & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" - -# util-linux for libblkid -DEPENDS = "libcap libevent util-linux sqlite3 libtirpc" -RDEPENDS_${PN} = "${PN}-client" -RRECOMMENDS_${PN} = "kernel-module-nfsd" - -inherit useradd - -USERADD_PACKAGES = "${PN}-client" -USERADD_PARAM_${PN}-client = "--system --home-dir /var/lib/nfs \ - --shell /bin/false --user-group rpcuser" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ - file://nfsserver \ - file://nfscommon \ - file://nfs-utils.conf \ - file://nfs-server.service \ - file://nfs-mountd.service \ - file://nfs-statd.service \ - file://proc-fs-nfsd.mount \ - file://nfs-utils-debianize-start-statd.patch \ - file://bugfix-adjust-statd-service-name.patch \ - file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ - file://clang-warnings.patch \ - " -SRC_URI[sha256sum] = "b54d6d8ea2ee62d64111278301ba4631b7bb19174e7f717a724fe5d463900c80" - -# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will -# pull in the remainder of the dependencies. - -INITSCRIPT_PACKAGES = "${PN} ${PN}-client" -INITSCRIPT_NAME = "nfsserver" -INITSCRIPT_PARAMS = "defaults" -INITSCRIPT_NAME_${PN}-client = "nfscommon" -INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" - -inherit autotools-brokensep update-rc.d systemd pkgconfig - -SYSTEMD_PACKAGES = "${PN} ${PN}-client" -SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" -SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" - -# --enable-uuid is need for cross-compiling -EXTRA_OECONF = "--with-statduser=rpcuser \ - --enable-mountconfig \ - --enable-libmount-mount \ - --enable-uuid \ - --disable-gss \ - --disable-nfsdcltrack \ - --with-statdpath=/var/lib/nfs/statd \ - --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \ - " - -PACKAGECONFIG ??= "tcp-wrappers \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -PACKAGECONFIG_remove_libc-musl = "tcp-wrappers" -PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -# libdevmapper is available in meta-oe -PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper,libdevmapper" -# keyutils is available in meta-oe -PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils,python3-core" - -PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" - -CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ - ${localstatedir}/lib/nfs/rmtab \ - ${localstatedir}/lib/nfs/xtab \ - ${localstatedir}/lib/nfs/statd/state \ - ${sysconfdir}/nfsmount.conf" - -FILES_${PN}-client = "${sbindir}/*statd \ - ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ - ${sbindir}/showmount ${sbindir}/nfsstat \ - ${localstatedir}/lib/nfs \ - ${sysconfdir}/nfs-utils.conf \ - ${sysconfdir}/nfsmount.conf \ - ${sysconfdir}/init.d/nfscommon \ - ${systemd_unitdir}/system/nfs-statd.service" -RDEPENDS_${PN}-client = "${PN}-mount rpcbind" - -FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" - -FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat ${sbindir}/nfsdclnts" -RDEPENDS_${PN}-stats = "python3-core" - -FILES_${PN}-staticdev += "${libdir}/libnfsidmap/*.a" - -FILES_${PN} += "${systemd_unitdir} ${libdir}/libnfsidmap/" - -do_configure_prepend() { - sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ - ${S}/utils/mount/Makefile.am -} - -# Make clean needed because the package comes with -# precompiled 64-bit objects that break the build -do_compile_prepend() { - make clean -} - -# Works on systemd only -HIGH_RLIMIT_NOFILE ??= "4096" - -do_install_append () { - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver - install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon - - install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} - install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@SBINDIR@,${sbindir},g' \ - -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \ - ${D}${systemd_unitdir}/system/*.service - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ - install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ - ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount - fi - - # kernel code as of 3.8 hard-codes this path as a default - install -d ${D}/var/lib/nfs/v4recovery - - # chown the directories and files - chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd - chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state - - # Make python tools use python 3 - sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat -} diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.4.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.4.bb new file mode 100644 index 000000000..5500a9249 --- /dev/null +++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.4.bb @@ -0,0 +1,145 @@ +SUMMARY = "userspace utilities for kernel nfs" +DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ +NFS server and related tools." +HOMEPAGE = "http://nfs.sourceforge.net/" +SECTION = "console/network" + +LICENSE = "MIT & GPLv2+ & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" + +# util-linux for libblkid +DEPENDS = "libcap libevent util-linux sqlite3 libtirpc" +RDEPENDS_${PN} = "${PN}-client" +RRECOMMENDS_${PN} = "kernel-module-nfsd" + +inherit useradd + +USERADD_PACKAGES = "${PN}-client" +USERADD_PARAM_${PN}-client = "--system --home-dir /var/lib/nfs \ + --shell /bin/false --user-group rpcuser" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ + file://nfsserver \ + file://nfscommon \ + file://nfs-utils.conf \ + file://nfs-server.service \ + file://nfs-mountd.service \ + file://nfs-statd.service \ + file://proc-fs-nfsd.mount \ + file://nfs-utils-debianize-start-statd.patch \ + file://bugfix-adjust-statd-service-name.patch \ + file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ + file://clang-warnings.patch \ + " +SRC_URI[sha256sum] = "51997d94e4c8bcef5456dd36a9ccc38e231207c4e9b6a9a2c108841e6aebe3dd" + +# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will +# pull in the remainder of the dependencies. + +INITSCRIPT_PACKAGES = "${PN} ${PN}-client" +INITSCRIPT_NAME = "nfsserver" +INITSCRIPT_PARAMS = "defaults" +INITSCRIPT_NAME_${PN}-client = "nfscommon" +INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" + +inherit autotools-brokensep update-rc.d systemd pkgconfig + +SYSTEMD_PACKAGES = "${PN} ${PN}-client" +SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" +SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" + +# --enable-uuid is need for cross-compiling +EXTRA_OECONF = "--with-statduser=rpcuser \ + --enable-mountconfig \ + --enable-libmount-mount \ + --enable-uuid \ + --disable-gss \ + --disable-nfsdcltrack \ + --with-statdpath=/var/lib/nfs/statd \ + --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \ + " + +PACKAGECONFIG ??= "tcp-wrappers \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG_remove_libc-musl = "tcp-wrappers" +PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +# libdevmapper is available in meta-oe +PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper,libdevmapper" +# keyutils is available in meta-oe +PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils,python3-core" + +PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" + +CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ + ${localstatedir}/lib/nfs/rmtab \ + ${localstatedir}/lib/nfs/xtab \ + ${localstatedir}/lib/nfs/statd/state \ + ${sysconfdir}/nfsmount.conf" + +FILES_${PN}-client = "${sbindir}/*statd \ + ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ + ${sbindir}/showmount ${sbindir}/nfsstat \ + ${localstatedir}/lib/nfs \ + ${sysconfdir}/nfs-utils.conf \ + ${sysconfdir}/nfsmount.conf \ + ${sysconfdir}/init.d/nfscommon \ + ${systemd_unitdir}/system/nfs-statd.service" +RDEPENDS_${PN}-client = "${PN}-mount rpcbind" + +FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" + +FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat ${sbindir}/nfsdclnts" +RDEPENDS_${PN}-stats = "python3-core" + +FILES_${PN}-staticdev += "${libdir}/libnfsidmap/*.a" + +FILES_${PN} += "${systemd_unitdir} ${libdir}/libnfsidmap/" + +do_configure_prepend() { + sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ + ${S}/utils/mount/Makefile.am +} + +# Make clean needed because the package comes with +# precompiled 64-bit objects that break the build +do_compile_prepend() { + make clean +} + +# Works on systemd only +HIGH_RLIMIT_NOFILE ??= "4096" + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver + install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon + + install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} + install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \ + ${D}${systemd_unitdir}/system/*.service + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ + install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ + ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount + fi + + # kernel code as of 3.8 hard-codes this path as a default + install -d ${D}/var/lib/nfs/v4recovery + + # chown the directories and files + chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd + chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state + + # Make python tools use python 3 + sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat +} diff --git a/poky/meta/recipes-core/coreutils/coreutils/0001-fts-remove-NOSTAT_LEAF_OPTIMIZATION.patch b/poky/meta/recipes-core/coreutils/coreutils/0001-fts-remove-NOSTAT_LEAF_OPTIMIZATION.patch new file mode 100644 index 000000000..06b6307da --- /dev/null +++ b/poky/meta/recipes-core/coreutils/coreutils/0001-fts-remove-NOSTAT_LEAF_OPTIMIZATION.patch @@ -0,0 +1,167 @@ +From 3a48610860a9a75692d2cbedde69ac15269d540a Mon Sep 17 00:00:00 2001 +Message-Id: <3a48610860a9a75692d2cbedde69ac15269d540a.1624302273.git.wallinux@gmail.com> +From: Paul Eggert +Date: Wed, 15 Apr 2020 20:50:32 -0700 +Subject: [PATCH] fts: remove NOSTAT_LEAF_OPTIMIZATION +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It caused ‘find’ and ‘du’ to dump core, and it was useful +only for obsolescent Linux filesystems anyway. Problem reported in: +https://lists.gnu.org/r/bug-gnulib/2020-04/msg00068.html +Quite possibly there is still a serious underlying fts bug with +tight-loop-check and mutating file systems, but if so this patch +should cause the bug to be triggered less often. +* lib/fts.c (enum leaf_optimization): Remove +NOSTAT_LEAF_OPTIMIZATION, as it’s problematic. +(S_MAGIC_REISERFS, S_MAGIC_XFS): Remove; no longer needed. +(leaf_optimization): Remove special cases for ReiserFS and XFS. +(fts_read): Remove NOSTAT_LEAF_OPTIMIZATION code. +* lib/fts_.h (struct _ftsent.fts_n_dirs_remaining): +Remove. All uses removed. + +Upstream-Status: Backport [upstream gnulib commit: +47bf2cf3184027c1eb9c1dfeea5c5b8b2d69710d] + +Signed-off-by: Anders Wallin +--- + lib/fts.c | 56 ++++++++---------------------------------------------- + lib/fts_.h | 5 ----- + 2 files changed, 8 insertions(+), 53 deletions(-) + +diff --git a/lib/fts.c b/lib/fts.c +index d3a0472..ade8c33 100644 +--- a/lib/fts.c ++++ b/lib/fts.c +@@ -445,7 +445,6 @@ fts_open (char * const *argv, + if ((parent = fts_alloc(sp, "", 0)) == NULL) + goto mem2; + parent->fts_level = FTS_ROOTPARENTLEVEL; +- parent->fts_n_dirs_remaining = -1; + } + + /* The classic fts implementation would call fts_stat with +@@ -634,9 +633,8 @@ fts_close (FTS *sp) + } + + /* Minimum link count of a traditional Unix directory. When leaf +- optimization is OK and MIN_DIR_NLINK <= st_nlink, then st_nlink is +- an upper bound on the number of subdirectories (counting "." and +- ".."). */ ++ optimization is OK and a directory's st_nlink == MIN_DIR_NLINK, ++ then the directory has no subdirectories. */ + enum { MIN_DIR_NLINK = 2 }; + + /* Whether leaf optimization is OK for a directory. */ +@@ -645,12 +643,8 @@ enum leaf_optimization + /* st_nlink is not reliable for this directory's subdirectories. */ + NO_LEAF_OPTIMIZATION, + +- /* Leaf optimization is OK, but is not useful for avoiding stat calls. */ +- OK_LEAF_OPTIMIZATION, +- +- /* Leaf optimization is not only OK: it is useful for avoiding +- stat calls, because dirent.d_type does not work. */ +- NOSTAT_LEAF_OPTIMIZATION ++ /* st_nlink == 2 means the directory lacks subdirectories. */ ++ OK_LEAF_OPTIMIZATION + }; + + #if (defined __linux__ || defined __ANDROID__) \ +@@ -663,9 +657,7 @@ enum leaf_optimization + # define S_MAGIC_CIFS 0xFF534D42 + # define S_MAGIC_NFS 0x6969 + # define S_MAGIC_PROC 0x9FA0 +-# define S_MAGIC_REISERFS 0x52654973 + # define S_MAGIC_TMPFS 0x1021994 +-# define S_MAGIC_XFS 0x58465342 + + # ifdef HAVE___FSWORD_T + typedef __fsword_t fsword; +@@ -782,23 +774,15 @@ dirent_inode_sort_may_be_useful (FTSENT const *p, int dir_fd) + } + + /* Given an FTS entry P for a directory with descriptor DIR_FD, +- return true if it is both useful and valid to apply leaf optimization. +- The optimization is useful only for file systems that lack usable +- dirent.d_type info. The optimization is valid if an st_nlink value +- of at least MIN_DIR_NLINK is an upper bound on the number of +- subdirectories of D, counting "." and ".." as subdirectories. ++ return whether it is valid to apply leaf optimization. ++ The optimization is valid if a directory's st_nlink value equal ++ to MIN_DIR_NLINK means the directory has no subdirectories. + DIR_FD is negative if unavailable. */ + static enum leaf_optimization + leaf_optimization (FTSENT const *p, int dir_fd) + { + switch (filesystem_type (p, dir_fd)) + { +- /* List here the file system types that may lack usable dirent.d_type +- info, yet for which the optimization does apply. */ +- case S_MAGIC_REISERFS: +- case S_MAGIC_XFS: /* XFS lacked it until 2013-08-22 commit. */ +- return NOSTAT_LEAF_OPTIMIZATION; +- + case 0: + /* Leaf optimization is unsafe if the file system type is unknown. */ + FALLTHROUGH; +@@ -1023,26 +1007,7 @@ check_for_dir: + if (p->fts_info == FTS_NSOK) + { + if (p->fts_statp->st_size == FTS_STAT_REQUIRED) +- { +- FTSENT *parent = p->fts_parent; +- if (parent->fts_n_dirs_remaining == 0 +- && ISSET(FTS_NOSTAT) +- && ISSET(FTS_PHYSICAL) +- && (leaf_optimization (parent, sp->fts_cwd_fd) +- == NOSTAT_LEAF_OPTIMIZATION)) +- { +- /* nothing more needed */ +- } +- else +- { +- p->fts_info = fts_stat(sp, p, false); +- if (S_ISDIR(p->fts_statp->st_mode) +- && p->fts_level != FTS_ROOTLEVEL +- && 0 < parent->fts_n_dirs_remaining +- && parent->fts_n_dirs_remaining != (nlink_t) -1) +- parent->fts_n_dirs_remaining--; +- } +- } ++ p->fts_info = fts_stat(sp, p, false); + else + fts_assert (p->fts_statp->st_size == FTS_NO_STAT_REQUIRED); + } +@@ -1826,11 +1791,6 @@ err: memset(sbp, 0, sizeof(struct stat)); + } + + if (S_ISDIR(sbp->st_mode)) { +- p->fts_n_dirs_remaining +- = ((sbp->st_nlink < MIN_DIR_NLINK +- || p->fts_level <= FTS_ROOTLEVEL) +- ? -1 +- : sbp->st_nlink - (ISSET (FTS_SEEDOT) ? 0 : MIN_DIR_NLINK)); + if (ISDOT(p->fts_name)) { + /* Command-line "." and ".." are real directories. */ + return (p->fts_level == FTS_ROOTLEVEL ? FTS_D : FTS_DOT); +diff --git a/lib/fts_.h b/lib/fts_.h +index 6c7d0ce..15c248c 100644 +--- a/lib/fts_.h ++++ b/lib/fts_.h +@@ -219,11 +219,6 @@ typedef struct _ftsent { + + size_t fts_namelen; /* strlen(fts_name) */ + +- /* If not (nlink_t) -1, an upper bound on the number of +- remaining subdirectories of interest. If this becomes +- zero, some work can be avoided. */ +- nlink_t fts_n_dirs_remaining; +- + # define FTS_D 1 /* preorder directory */ + # define FTS_DC 2 /* directory that causes cycles */ + # define FTS_DEFAULT 3 /* none of the above */ +-- +2.32.0 + diff --git a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb index f3fe31fd3..dd271d496 100644 --- a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb +++ b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb @@ -21,6 +21,7 @@ SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \ file://0001-local.mk-fix-cross-compiling-problem.patch \ file://run-ptest \ file://0001-ls-restore-8.31-behavior-on-removed-directories.patch \ + file://0001-fts-remove-NOSTAT_LEAF_OPTIMIZATION.patch \ " SRC_URI[md5sum] = "022042695b7d5bcf1a93559a9735e668" diff --git a/poky/meta/recipes-core/ell/ell_0.40.bb b/poky/meta/recipes-core/ell/ell_0.40.bb deleted file mode 100644 index d08867622..000000000 --- a/poky/meta/recipes-core/ell/ell_0.40.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Embedded Linux Library" -HOMEPAGE = "https://01.org/ell" -DESCRIPTION = "The Embedded Linux Library (ELL) provides core, \ -low-level functionality for system daemons. It typically has no \ -dependencies other than the Linux kernel, C standard library, and \ -libdl (for dynamic linking). While ELL is designed to be efficient \ -and compact enough for use on embedded Linux platforms, it is not \ -limited to resource-constrained systems." -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" - -DEPENDS = "dbus" - -inherit autotools pkgconfig - -SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz \ - file://0001-pem.c-do-not-use-rawmemchr.patch \ - " -SRC_URI[sha256sum] = "b9bf5c14f2963591ea1372049c05646919a9ed46fcee5cd11ede1022c99ffbbd" - -do_configure_prepend () { - mkdir -p ${S}/build-aux -} diff --git a/poky/meta/recipes-core/ell/ell_0.41.bb b/poky/meta/recipes-core/ell/ell_0.41.bb new file mode 100644 index 000000000..5fd3077bc --- /dev/null +++ b/poky/meta/recipes-core/ell/ell_0.41.bb @@ -0,0 +1,24 @@ +SUMMARY = "Embedded Linux Library" +HOMEPAGE = "https://01.org/ell" +DESCRIPTION = "The Embedded Linux Library (ELL) provides core, \ +low-level functionality for system daemons. It typically has no \ +dependencies other than the Linux kernel, C standard library, and \ +libdl (for dynamic linking). While ELL is designed to be efficient \ +and compact enough for use on embedded Linux platforms, it is not \ +limited to resource-constrained systems." +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" + +DEPENDS = "dbus" + +inherit autotools pkgconfig + +SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-pem.c-do-not-use-rawmemchr.patch \ + " +SRC_URI[sha256sum] = "4e8dba6c53cf152dbd0fd1dc3d4c7b04abf79e20a948895f85943e586870505c" + +do_configure_prepend () { + mkdir -p ${S}/build-aux +} diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch index 7fbc07af5..f34f30bb3 100644 --- a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch +++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch @@ -1,4 +1,4 @@ -From b7abbba886d3743616f8cc0e8b441c879128bbda Mon Sep 17 00:00:00 2001 +From e56cdb8c343dd6a6ed3b10bd54e353d633ad6158 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 11 Mar 2016 15:35:55 +0000 Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.2.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.2.bb deleted file mode 100644 index 0cf16884e..000000000 --- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.2.bb +++ /dev/null @@ -1,54 +0,0 @@ -require glib.inc - -PE = "1" - -SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ - file://run-ptest \ - file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \ - file://Enable-more-tests-while-cross-compiling.patch \ - file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \ - file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \ - file://0001-Do-not-ignore-return-value-of-write.patch \ - file://0010-Do-not-hardcode-python-path-into-various-tools.patch \ - file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \ - file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ - file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ - file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \ - file://0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch \ - " -SRC_URI_append_class-native = " file://relocate-modules.patch" - -SRC_URI[sha256sum] = "ecc7798a9cc034eabdfd7f246e6dd461cdbf1175fcc2e9867cc7da7b7309e0fb" - -# Find any meson cross files in FILESPATH that are relevant for the current -# build (using siteinfo) and add them to EXTRA_OEMESON. -inherit siteinfo -def find_meson_cross_files(d): - if bb.data.inherits_class('native', d): - return "" - - thisdir = os.path.normpath(d.getVar("THISDIR")) - import collections - sitedata = siteinfo_data(d) - # filename -> found - files = collections.OrderedDict() - for path in d.getVar("FILESPATH").split(":"): - for element in sitedata: - filename = os.path.normpath(os.path.join(path, "meson.cross.d", element)) - sanitized_path = filename.replace(thisdir, "${THISDIR}") - if sanitized_path == filename: - if os.path.exists(filename): - bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir)) - continue - files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename) - - items = ["--cross-file=" + k for k,v in files.items() if v] - d.appendVar("EXTRA_OEMESON", " " + " ".join(items)) - items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()] - d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items)) - -python () { - find_meson_cross_files(d) -} diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.3.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.3.bb new file mode 100644 index 000000000..2a3a00fad --- /dev/null +++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.3.bb @@ -0,0 +1,54 @@ +require glib.inc + +PE = "1" + +SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ + file://run-ptest \ + file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \ + file://Enable-more-tests-while-cross-compiling.patch \ + file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \ + file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \ + file://0001-Do-not-ignore-return-value-of-write.patch \ + file://0010-Do-not-hardcode-python-path-into-various-tools.patch \ + file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \ + file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ + file://0001-meson-Run-atomics-test-on-clang-as-well.patch \ + file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \ + file://0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch \ + " +SRC_URI_append_class-native = " file://relocate-modules.patch" + +SRC_URI[sha256sum] = "e7e1a3c20c026109c45c9ec4a31d8dcebc22e86c69486993e565817d64be3138" + +# Find any meson cross files in FILESPATH that are relevant for the current +# build (using siteinfo) and add them to EXTRA_OEMESON. +inherit siteinfo +def find_meson_cross_files(d): + if bb.data.inherits_class('native', d): + return "" + + thisdir = os.path.normpath(d.getVar("THISDIR")) + import collections + sitedata = siteinfo_data(d) + # filename -> found + files = collections.OrderedDict() + for path in d.getVar("FILESPATH").split(":"): + for element in sitedata: + filename = os.path.normpath(os.path.join(path, "meson.cross.d", element)) + sanitized_path = filename.replace(thisdir, "${THISDIR}") + if sanitized_path == filename: + if os.path.exists(filename): + bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir)) + continue + files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename) + + items = ["--cross-file=" + k for k,v in files.items() if v] + d.appendVar("EXTRA_OEMESON", " " + " ".join(items)) + items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()] + d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items)) + +python () { + find_meson_cross_files(d) +} diff --git a/poky/meta/recipes-core/glibc/glibc-package.inc b/poky/meta/recipes-core/glibc/glibc-package.inc index c3d0d9152..92e5dbac6 100644 --- a/poky/meta/recipes-core/glibc/glibc-package.inc +++ b/poky/meta/recipes-core/glibc/glibc-package.inc @@ -43,7 +43,7 @@ FILES_${PN}-staticdev += "${libdir}/*.a ${base_libdir}/*.a" FILES_nscd = "${sbindir}/nscd* ${sysconfdir}/init.d/nscd ${systemd_unitdir}/system/nscd* ${sysconfdir}/tmpfiles.d/nscd.conf \ ${sysconfdir}/nscd.conf ${sysconfdir}/default/volatiles/98_nscd ${localstatedir}/db/nscd" FILES_${PN}-mtrace = "${bindir}/mtrace" -FILES_tzcode = "${bindir}/tzselect ${sbindir}/zic ${sbindir}/zdump" +FILES_tzcode = "${bindir}/tzselect ${sbindir}/zic ${bindir}/zdump" FILES_${PN}-utils = "${bindir}/* ${sbindir}/*" FILES_catchsegv = "${bindir}/catchsegv" RDEPENDS_catchsegv = "libsegfault" diff --git a/poky/meta/recipes-core/glibc/glibc_2.33.bb b/poky/meta/recipes-core/glibc/glibc_2.33.bb index b70cd0978..caa2e2ae1 100644 --- a/poky/meta/recipes-core/glibc/glibc_2.33.bb +++ b/poky/meta/recipes-core/glibc/glibc_2.33.bb @@ -90,10 +90,10 @@ EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" EXTRA_OECONF_append_x86 = " --enable-cet" EXTRA_OECONF_append_x86-64 = " --enable-cet" -EXTRA_OECONF_append_aarch64 = " --enable-memory-tagging" PACKAGECONFIG ??= "nscd" PACKAGECONFIG[nscd] = "--enable-nscd,--disable-nscd" +PACKAGECONFIG[memory-tagging] = "--enable-memory-tagging,--disable-memory-tagging" do_patch_append() { bb.build.exec_func('do_fix_readlib_c', d) diff --git a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb index 1aeb952db..32f8d16a4 100644 --- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb +++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb @@ -24,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk wic.vhd wic.vhdx" inherit core-image setuptools3 -SRCREV ?= "42514ade8bdb9502f49a56752561f6c2e9f23348" +SRCREV ?= "b44849c32c87fbb8c5a465ecc29a6182e6781d78" SRC_URI = "git://git.yoctoproject.org/poky \ file://Yocto_Build_Appliance.vmx \ file://Yocto_Build_Appliance.vmxf \ diff --git a/poky/meta/recipes-core/musl/gcompat_git.bb b/poky/meta/recipes-core/musl/gcompat_git.bb new file mode 100644 index 000000000..863ba8dbf --- /dev/null +++ b/poky/meta/recipes-core/musl/gcompat_git.bb @@ -0,0 +1,54 @@ +# Copyright (C) 2021 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "A library which provides glibc-compatible APIs for use on musl libc systems" +HOMEPAGE = "https://git.adelielinux.org/adelie/gcompat" + +LICENSE = "NCSA" +LIC_FILES_CHKSUM = "file://LICENSE;md5=eb33ef4af05a9c7602843afb7adfe792" + +SRC_URI = "git://git.adelielinux.org/adelie/gcompat.git;protocol=https;branch=current" + +PV = "1.0.0+1.1+git${SRCPV}" +SRCREV = "af5a49e489fdc04b9cf02547650d7aeaccd43793" + +S = "${WORKDIR}/git" + +inherit pkgconfig linuxloader siteinfo + +DEPENDS += "musl-obstack" + +GLIBC_LDSO = "${@get_glibc_loader(d)}" +MUSL_LDSO = "${@get_musl_loader(d)}" + +EXTRA_OEMAKE = "LINKER_PATH=${MUSL_LDSO} \ + LOADER_NAME=`basename ${GLIBC_LDSO}` \ + " + +do_configure () { + : +} + +do_compile () { + oe_runmake +} + +do_install () { + oe_runmake install 'DESTDIR=${D}' + if [ "${SITEINFO_BITS}" = "64" ]; then + install -d ${D}/lib64 + lnr ${D}${GLIBC_LDSO} ${D}/lib64/`basename ${GLIBC_LDSO}` + fi +} + +FILES_${PN} += "/lib64" + +INSANE_SKIP_${PN} = "libdir" + +RPROVIDES_${PN} += "musl-glibc-compat" +# +# We will skip parsing for non-musl systems +# +COMPATIBLE_HOST = ".*-musl.*" + +UPSTREAM_CHECK_COMMITS = "1" diff --git a/poky/meta/recipes-core/musl/libssp-nonshared.bb b/poky/meta/recipes-core/musl/libssp-nonshared.bb index bae8c81cc..81c87e8e8 100644 --- a/poky/meta/recipes-core/musl/libssp-nonshared.bb +++ b/poky/meta/recipes-core/musl/libssp-nonshared.bb @@ -2,11 +2,12 @@ # Released under the MIT license (see COPYING.MIT for the terms) SUMMARY = "Minimal libssp_nonshared.a must needed for ssp to work with gcc on musl" -LICENSE = "GPL-3.0-with-GCC-exception" -LIC_FILES_CHKSUM = "file://ssp-local.c;beginline=1;endline=32;md5=c06d391208c0cfcbc541a6728ed65cc4" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://stack_chk.c;beginline=1;endline=30;md5=97e59d9deee678a9332c9ddb2ab6360d" SECTION = "libs" -SRC_URI = "file://ssp-local.c" +# Sourced from https://github.com/intel/linux-sgx/blob/master/sdk/compiler-rt/stack_chk.c +SRC_URI = "file://stack_chk.c" INHIBIT_DEFAULT_DEPS = "1" @@ -19,8 +20,8 @@ do_configure[noexec] = "1" S = "${WORKDIR}" do_compile() { - ${CC} ${CPPFLAGS} ${CFLAGS} -fPIE -c ssp-local.c -o ssp-local.o - ${AR} r libssp_nonshared.a ssp-local.o + ${CC} ${CPPFLAGS} ${CFLAGS} -fPIE -c stack_chk.c -o stack_chk.o + ${AR} r libssp_nonshared.a stack_chk.o } do_install() { install -Dm 0644 ${B}/libssp_nonshared.a ${D}${base_libdir}/libssp_nonshared.a diff --git a/poky/meta/recipes-core/musl/libssp-nonshared/ssp-local.c b/poky/meta/recipes-core/musl/libssp-nonshared/ssp-local.c deleted file mode 100644 index 8f51afa2c..000000000 --- a/poky/meta/recipes-core/musl/libssp-nonshared/ssp-local.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Stack protector support. - Copyright (C) 2005-2018 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -In addition to the permissions in the GNU General Public License, the -Free Software Foundation gives you unlimited permission to link the -compiled version of this file into combinations with other programs, -and to distribute those combinations without any restriction coming -from the use of this file. (The General Public License restrictions -do apply in other respects; for example, they cover modification of -the file, and distribution when not linked into a combine -executable.) - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -extern void __stack_chk_fail (void); - -/* Some targets can avoid loading a GP for calls to hidden functions. - Using this entry point may avoid the load of a GP entirely for the - function, making the overall code smaller. */ - -void -__attribute__((visibility ("hidden"))) -__stack_chk_fail_local (void) -{ - __stack_chk_fail (); -} diff --git a/poky/meta/recipes-core/musl/libssp-nonshared/stack_chk.c b/poky/meta/recipes-core/musl/libssp-nonshared/stack_chk.c new file mode 100644 index 000000000..097aae24b --- /dev/null +++ b/poky/meta/recipes-core/musl/libssp-nonshared/stack_chk.c @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2011-2021 Intel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +extern void __attribute__((noreturn)) __stack_chk_fail(void); + +void +__attribute__((noreturn)) +__attribute__((visibility ("hidden"))) +__stack_chk_fail_local (void) +{ + __stack_chk_fail (); +} diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb index 795b888bb..bd9d5f1d4 100644 --- a/poky/meta/recipes-core/musl/musl_git.bb +++ b/poky/meta/recipes-core/musl/musl_git.bb @@ -68,13 +68,9 @@ do_install() { echo "${libdir}" >> ${D}${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path rm -f ${D}${bindir}/ldd ${D}${GLIBC_LDSO} lnr ${D}${libdir}/libc.so ${D}${bindir}/ldd - lnr ${D}${libdir}/libc.so ${D}${GLIBC_LDSO} } -PACKAGES =+ "${PN}-glibc-compat" - FILES_${PN} += "/lib/ld-musl-${MUSL_LDSO_ARCH}.so.1 ${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path" -FILES_${PN}-glibc-compat += "${GLIBC_LDSO}" FILES_${PN}-staticdev = "${libdir}/libc.a" FILES_${PN}-dev =+ "${libdir}/libcrypt.a ${libdir}/libdl.a ${libdir}/libm.a \ ${libdir}/libpthread.a ${libdir}/libresolv.a \ @@ -88,3 +84,5 @@ RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)" LEAD_SONAME = "libc.so" INSANE_SKIP_${PN}-dev = "staticdev" INSANE_SKIP_${PN} = "libdir" + +UPSTREAM_CHECK_COMMITS = "1" diff --git a/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch b/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch index c32963a80..89d9ffab5 100644 --- a/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch +++ b/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch @@ -1,7 +1,7 @@ -From 200ff35c6545b4ab85f5ea7a6096fbaec3d82f6d Mon Sep 17 00:00:00 2001 +From 1125f5a02c2f327aeffe2d6b66a9d816ad2eeec0 Mon Sep 17 00:00:00 2001 From: Ricardo Neri Date: Thu, 9 Jun 2016 02:23:01 -0700 -Subject: [PATCH 1/4] ovmf: update path to native BaseTools +Subject: [PATCH 1/6] ovmf: update path to native BaseTools BaseTools is a set of utilities to build EDK-based firmware. These utilities are used during the build process. Thus, they need to be built natively. @@ -11,7 +11,6 @@ with the appropriate location before building. Signed-off-by: Ricardo Neri Upstream-Status: Pending - --- OvmfPkg/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -30,5 +29,5 @@ index 91b1442ade..1858dae31a 100755 source edksetup.sh BaseTools else -- -2.28.0 +2.32.0 diff --git a/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch index c61a08f02..f6141c8af 100644 --- a/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch +++ b/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch @@ -1,23 +1,22 @@ -From 667c0cf97dadc4f5994d26ec3984f559a05ec406 Mon Sep 17 00:00:00 2001 +From 19d4c7f9812062a683b3ba60b35aac0461190456 Mon Sep 17 00:00:00 2001 From: Ricardo Neri Date: Fri, 26 Jul 2019 17:34:26 -0400 -Subject: [PATCH 2/4] BaseTools: makefile: adjust to build in under bitbake +Subject: [PATCH 2/6] BaseTools: makefile: adjust to build in under bitbake Prepend the build flags with those of bitbake. This is to build using the bitbake native sysroot include and library directories. Signed-off-by: Ricardo Neri Upstream-Status: Pending - --- BaseTools/Source/C/Makefiles/header.makefile | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile -index 1c105ee7d4..d5eea3864e 100644 +index 0df728f327..1299d47c87 100644 --- a/BaseTools/Source/C/Makefiles/header.makefile +++ b/BaseTools/Source/C/Makefiles/header.makefile -@@ -69,35 +69,36 @@ $(error Bad HOST_ARCH) +@@ -75,35 +75,36 @@ $(error Bad HOST_ARCH) endif INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE) @@ -63,5 +62,5 @@ index 1c105ee7d4..d5eea3864e 100644 # # Snow Leopard is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults -- -2.28.0 +2.32.0 diff --git a/poky/meta/recipes-core/ovmf/ovmf/0003-ovmf-Update-to-latest.patch b/poky/meta/recipes-core/ovmf/ovmf/0003-ovmf-Update-to-latest.patch new file mode 100644 index 000000000..d71042989 --- /dev/null +++ b/poky/meta/recipes-core/ovmf/ovmf/0003-ovmf-Update-to-latest.patch @@ -0,0 +1,45 @@ +From 67267d8cc31df16a3608cad1a17c5f1470ef8bbd Mon Sep 17 00:00:00 2001 +From: Steve Langasek +Date: Sat, 10 Jun 2017 01:39:36 -0700 +Subject: [PATCH 3/6] ovmf: Update to latest + +Description: pass -fno-stack-protector to all GCC toolchains + The upstream build rules inexplicably pass -fno-stack-protector only + when building for i386 and amd64. Add this essential argument to the + generic rules for gcc 4.4 and later. +Last-Updated: 2016-04-12 +Upstream-Status: Pending +--- + BaseTools/Conf/tools_def.template | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template +index 498696e583..36241b6ede 100755 +--- a/BaseTools/Conf/tools_def.template ++++ b/BaseTools/Conf/tools_def.template +@@ -1897,10 +1897,10 @@ DEFINE GCC_RISCV64_RC_FLAGS = -I binary -O elf64-littleriscv -B riscv + # GCC Build Flag for included header file list generation + DEFINE GCC_DEPS_FLAGS = -MMD -MF $@.deps + +-DEFINE GCC48_ALL_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -ffunction-sections -fdata-sections -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings ++DEFINE GCC48_ALL_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -ffunction-sections -fdata-sections -fno-stack-protector -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings + DEFINE GCC48_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 +-DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -Wno-address +-DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address ++DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -D EFI32 -fno-asynchronous-unwind-tables -Wno-address ++DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address + DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable + DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive + DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) +@@ -1909,7 +1909,7 @@ DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF + DEFINE GCC48_ASM_FLAGS = DEF(GCC_ASM_FLAGS) + DEFINE GCC48_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian + DEFINE GCC48_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian +-DEFINE GCC48_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector -mword-relocations ++DEFINE GCC48_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -mword-relocations + DEFINE GCC48_ARM_CC_XIPFLAGS = DEF(GCC_ARM_CC_XIPFLAGS) + DEFINE GCC48_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS) + DEFINE GCC48_AARCH64_CC_XIPFLAGS = DEF(GCC_AARCH64_CC_XIPFLAGS) +-- +2.32.0 + diff --git a/poky/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch b/poky/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch new file mode 100644 index 000000000..dfb8a7339 --- /dev/null +++ b/poky/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch @@ -0,0 +1,32 @@ +From b7cfe97895e0586d14403ba98e62a0cd9373da96 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 14 Jun 2021 19:55:08 +0200 +Subject: [PATCH 4/6] Strip build paths + +Pass --zero to GenFw in release builds so that the sections that link back to +the intermediate binaries (containing build paths) are removed. + +Upstream-Status: Pending (discussion at https://bugzilla.tianocore.org/show_bug.cgi?id=3256) +Signed-off-by: Ross Burton + +Signed-off-by: Alexander Kanavin +--- + OvmfPkg/OvmfPkgIa32.dsc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc +index 33fbd76790..06c6d5ce60 100644 +--- a/OvmfPkg/OvmfPkgIa32.dsc ++++ b/OvmfPkg/OvmfPkgIa32.dsc +@@ -91,6 +91,8 @@ + + !include NetworkPkg/NetworkBuildOptions.dsc.inc + ++ RELEASE_*_*_GENFW_FLAGS = --zero ++ + [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] + GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 + XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000 +-- +2.32.0 + diff --git a/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch b/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch deleted file mode 100644 index 128438b20..000000000 --- a/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch +++ /dev/null @@ -1,46 +0,0 @@ -From ad06fcf1e08736e79221cd6863ff2e3c9254f261 Mon Sep 17 00:00:00 2001 -From: Steve Langasek -Date: Sat, 10 Jun 2017 01:39:36 -0700 -Subject: [PATCH 4/4] ovmf: Update to latest - -Description: pass -fno-stack-protector to all GCC toolchains - The upstream build rules inexplicably pass -fno-stack-protector only - when building for i386 and amd64. Add this essential argument to the - generic rules for gcc 4.4 and later. -Last-Updated: 2016-04-12 -Upstream-Status: Pending - ---- - BaseTools/Conf/tools_def.template | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template -index 933b3160fd..c2fbbf0c38 100755 ---- a/BaseTools/Conf/tools_def.template -+++ b/BaseTools/Conf/tools_def.template -@@ -1952,10 +1952,10 @@ DEFINE GCC_RISCV64_RC_FLAGS = -I binary -O elf64-littleriscv -B riscv - # GCC Build Flag for included header file list generation - DEFINE GCC_DEPS_FLAGS = -MMD -MF $@.deps - --DEFINE GCC48_ALL_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -ffunction-sections -fdata-sections -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings -+DEFINE GCC48_ALL_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -ffunction-sections -fdata-sections -fno-stack-protector -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings - DEFINE GCC48_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 --DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -Wno-address --DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address -+DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -D EFI32 -fno-asynchronous-unwind-tables -Wno-address -+DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address - DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable - DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive - DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) -@@ -1964,7 +1964,7 @@ DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF - DEFINE GCC48_ASM_FLAGS = DEF(GCC_ASM_FLAGS) - DEFINE GCC48_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian - DEFINE GCC48_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian --DEFINE GCC48_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector -mword-relocations -+DEFINE GCC48_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -mword-relocations - DEFINE GCC48_ARM_CC_XIPFLAGS = DEF(GCC_ARM_CC_XIPFLAGS) - DEFINE GCC48_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS) - DEFINE GCC48_AARCH64_CC_XIPFLAGS = DEF(GCC_AARCH64_CC_XIPFLAGS) --- -2.28.0 - diff --git a/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch b/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch new file mode 100644 index 000000000..e467d6f15 --- /dev/null +++ b/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch @@ -0,0 +1,104 @@ +From 860bb1979f3578bb83257076fe0f3bd33f9d68bf Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 14 Jun 2021 19:56:28 +0200 +Subject: [PATCH 5/6] debug prefix map + +We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in + --debug-prefix-map to nasm (we carry a patch to nasm for this). The +tools definitions file is built by ovmf-native so we need to pass this in +at target build time when we know the right values so we use the environment. + +By using determininistc file paths during the ovmf build, it removes the +opportunitity for gcc/ld to change the output binaries due to path lengths +overflowing section sizes and causing small changes in the binary output. +Previously we relied on the stripped output being the same which isn't always +the case if the size of the debug symbols varies. + +Upstream-Status: Pending [gcc parts may be upstreamable, nasm patch isn't upstream yet] +Signed-off-by: Richard Purdie +Signed-off-by: Alexander Kanavin +--- + BaseTools/Conf/tools_def.template | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template +index 36241b6ede..947fbf2e8d 100755 +--- a/BaseTools/Conf/tools_def.template ++++ b/BaseTools/Conf/tools_def.template +@@ -1863,7 +1863,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_N + *_*_*_DTCPP_PATH = DEF(DTCPP_BIN) + *_*_*_DTC_PATH = DEF(DTC_BIN) + +-DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common ++DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common ENV(GCC_PREFIX_MAP) + DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe + DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe + DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie +@@ -1881,8 +1881,8 @@ DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _Ref + DEFINE GCC_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) + DEFINE GCC_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) + DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map +-DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros AutoGen.h +-DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h ++DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros AutoGen.h ENV(GCC_PREFIX_MAP) ++DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h ENV(GCC_PREFIX_MAP) + DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h + DEFINE GCC_ASLPP_FLAGS = -x c -E -include AutoGen.h + DEFINE GCC_ASLCC_FLAGS = -x c +@@ -2027,7 +2027,7 @@ DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include A + *_GCC48_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS) + *_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) + *_GCC48_IA32_OBJCOPY_FLAGS = +-*_GCC48_IA32_NASM_FLAGS = -f elf32 ++*_GCC48_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) + + DEBUG_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os + RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable +@@ -2055,7 +2055,7 @@ RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but + *_GCC48_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS) + *_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) + *_GCC48_X64_OBJCOPY_FLAGS = +-*_GCC48_X64_NASM_FLAGS = -f elf64 ++*_GCC48_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) + + DEBUG_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os + RELEASE_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable +@@ -2167,7 +2167,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s + *_GCC49_IA32_DLINK2_FLAGS = DEF(GCC49_IA32_DLINK2_FLAGS) + *_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) + *_GCC49_IA32_OBJCOPY_FLAGS = +-*_GCC49_IA32_NASM_FLAGS = -f elf32 ++*_GCC49_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) + + DEBUG_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os + RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable +@@ -2195,7 +2195,7 @@ RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but + *_GCC49_X64_DLINK2_FLAGS = DEF(GCC49_X64_DLINK2_FLAGS) + *_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) + *_GCC49_X64_OBJCOPY_FLAGS = +-*_GCC49_X64_NASM_FLAGS = -f elf64 ++*_GCC49_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) + + DEBUG_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os + RELEASE_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable +@@ -2313,7 +2313,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 + *_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie + *_GCC5_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) + *_GCC5_IA32_OBJCOPY_FLAGS = +-*_GCC5_IA32_NASM_FLAGS = -f elf32 ++*_GCC5_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) + + DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os + DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 +@@ -2345,7 +2345,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, + *_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) + *_GCC5_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) + *_GCC5_X64_OBJCOPY_FLAGS = +-*_GCC5_X64_NASM_FLAGS = -f elf64 ++*_GCC5_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) + + DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os + DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os +-- +2.32.0 + diff --git a/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch b/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch new file mode 100644 index 000000000..343c21b54 --- /dev/null +++ b/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch @@ -0,0 +1,180 @@ +From 27ed9962f5cb3afcc44d6c96c53277132a999712 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 14 Jun 2021 19:57:30 +0200 +Subject: [PATCH 6/6] reproducible + +This patch fixes various things which make the build more reproducible. Some changes +here only change intermediate artefacts but that means when you have two build trees +giving differing results, the differences can be isolated more easily. The issues here +usually become apparent with longer paths. + +This was all debugged with: +TMPDIR = "${TOPDIR}/tmp" +vs. +TMPDIR = "${TOPDIR}/tmp-inital-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath" + +The patch specifically: + + * Sorts output in GNUmakefile + * Always generates indirect flags files used to avoid pathlength issues else the + compile commands suddenly change when using longer paths + * Sorts the AutoGenTimeStamp file contents + * Makes the TargetDescBlock objects from BuildEngine sortable to allow the makefile fix + * Fix ElfConvert within GenFw so that only the basename of the binary being converted + is used, else the output from "GenFw XXX.bin" differs from "GenFw /long/path/XXX.bin" + with sufficiently long paths + +Upstream-Status: Pending [At least some of this might be interesting to upstream] +Signed-off-by: Richard Purdie +Signed-off-by: Alexander Kanavin +--- + BaseTools/Source/C/GenFw/Elf64Convert.c | 8 ++++--- + .../Source/Python/AutoGen/BuildEngine.py | 3 +++ + BaseTools/Source/Python/AutoGen/GenMake.py | 24 +++++++++---------- + .../Source/Python/AutoGen/ModuleAutoGen.py | 5 +++- + 4 files changed, 24 insertions(+), 16 deletions(-) + +diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c +index d097db8632..a87ae6f3d0 100644 +--- a/BaseTools/Source/C/GenFw/Elf64Convert.c ++++ b/BaseTools/Source/C/GenFw/Elf64Convert.c +@@ -14,6 +14,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #ifndef __GNUC__ + #include + #include ++#else ++#define _GNU_SOURCE + #endif + #include + #include +@@ -769,7 +771,7 @@ ScanSections64 ( + } + mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) + + sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) + +- strlen(mInImageName) + 1; ++ strlen(basename(mInImageName)) + 1; + + mCoffOffset = CoffAlign(mCoffOffset); + if (SectionCount == 0) { +@@ -1608,7 +1610,7 @@ WriteDebug64 ( + EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *Dir; + EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10; + +- Len = strlen(mInImageName) + 1; ++ Len = strlen(basename(mInImageName)) + 1; + + Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset); + Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW; +@@ -1618,7 +1620,7 @@ WriteDebug64 ( + + Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1); + Nb10->Signature = CODEVIEW_SIGNATURE_NB10; +- strcpy ((char *)(Nb10 + 1), mInImageName); ++ strcpy ((char *)(Nb10 + 1), basename(mInImageName)); + + + NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset); +diff --git a/BaseTools/Source/Python/AutoGen/BuildEngine.py b/BaseTools/Source/Python/AutoGen/BuildEngine.py +index 722fead75a..8f1c236970 100644 +--- a/BaseTools/Source/Python/AutoGen/BuildEngine.py ++++ b/BaseTools/Source/Python/AutoGen/BuildEngine.py +@@ -70,6 +70,9 @@ class TargetDescBlock(object): + else: + return str(Other) == self.Target.Path + ++ def __lt__(self, other): ++ return str(self) < str(other) ++ + def AddInput(self, Input): + if Input not in self.Inputs: + self.Inputs.append(Input) +diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py +index 961b2ab1c3..23c1592025 100755 +--- a/BaseTools/Source/Python/AutoGen/GenMake.py ++++ b/BaseTools/Source/Python/AutoGen/GenMake.py +@@ -575,7 +575,7 @@ cleanlib: + os.remove(RespFileList) + + # convert source files and binary files to build targets +- self.ResultFileList = [str(T.Target) for T in MyAgo.CodaTargetList] ++ self.ResultFileList = sorted([str(T.Target) for T in MyAgo.CodaTargetList]) + if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0: + EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build", + ExtraData="[%s]" % str(MyAgo)) +@@ -726,7 +726,7 @@ cleanlib: + OutputFile = '' + DepsFileList = [] + +- for Cmd in self.GenFfsList: ++ for Cmd in sorted(self.GenFfsList): + if Cmd[2]: + for CopyCmd in Cmd[2]: + Src, Dst = CopyCmd +@@ -759,7 +759,7 @@ cleanlib: + self.BuildTargetList.append('\t%s' % CmdString) + + self.ParseSecCmd(DepsFileList, Cmd[1]) +- for SecOutputFile, SecDepsFile, SecCmd in self.FfsOutputFileList : ++ for SecOutputFile, SecDepsFile, SecCmd in sorted(self.FfsOutputFileList): + self.BuildTargetList.append('%s : %s' % (self.ReplaceMacro(SecOutputFile), self.ReplaceMacro(SecDepsFile))) + self.BuildTargetList.append('\t%s' % self.ReplaceMacro(SecCmd)) + self.FfsOutputFileList = [] +@@ -798,13 +798,13 @@ cleanlib: + + def CommandExceedLimit(self): + FlagDict = { +- 'CC' : { 'Macro' : '$(CC_FLAGS)', 'Value' : False}, +- 'PP' : { 'Macro' : '$(PP_FLAGS)', 'Value' : False}, +- 'APP' : { 'Macro' : '$(APP_FLAGS)', 'Value' : False}, +- 'ASLPP' : { 'Macro' : '$(ASLPP_FLAGS)', 'Value' : False}, +- 'VFRPP' : { 'Macro' : '$(VFRPP_FLAGS)', 'Value' : False}, +- 'ASM' : { 'Macro' : '$(ASM_FLAGS)', 'Value' : False}, +- 'ASLCC' : { 'Macro' : '$(ASLCC_FLAGS)', 'Value' : False}, ++ 'CC' : { 'Macro' : '$(CC_FLAGS)', 'Value' : True}, ++ 'PP' : { 'Macro' : '$(PP_FLAGS)', 'Value' : True}, ++ 'APP' : { 'Macro' : '$(APP_FLAGS)', 'Value' : True}, ++ 'ASLPP' : { 'Macro' : '$(ASLPP_FLAGS)', 'Value' : True}, ++ 'VFRPP' : { 'Macro' : '$(VFRPP_FLAGS)', 'Value' : True}, ++ 'ASM' : { 'Macro' : '$(ASM_FLAGS)', 'Value' : True}, ++ 'ASLCC' : { 'Macro' : '$(ASLCC_FLAGS)', 'Value' : True}, + } + + RespDict = {} +@@ -1007,9 +1007,9 @@ cleanlib: + if not self.ObjTargetDict.get(T.Target.SubDir): + self.ObjTargetDict[T.Target.SubDir] = set() + self.ObjTargetDict[T.Target.SubDir].add(NewFile) +- for Type in self._AutoGenObject.Targets: ++ for Type in sorted(self._AutoGenObject.Targets): + resp_file_number = 0 +- for T in self._AutoGenObject.Targets[Type]: ++ for T in sorted(self._AutoGenObject.Targets[Type]): + # Generate related macros if needed + if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros: + self.FileListMacros[T.FileListMacro] = [] +diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py +index d70b0d7ae8..25dca9a6df 100755 +--- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py ++++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py +@@ -1484,6 +1484,9 @@ class ModuleAutoGen(AutoGen): + for File in Files: + if File.lower().endswith('.pdb'): + AsBuiltInfDict['binary_item'].append('DISPOSABLE|' + File) ++ ++ AsBuiltInfDict['binary_item'] = sorted(AsBuiltInfDict['binary_item']) ++ + HeaderComments = self.Module.HeaderComments + StartPos = 0 + for Index in range(len(HeaderComments)): +@@ -1759,7 +1762,7 @@ class ModuleAutoGen(AutoGen): + if os.path.exists (self.TimeStampPath): + os.remove (self.TimeStampPath) + +- SaveFileOnChange(self.TimeStampPath, "\n".join(FileSet), False) ++ SaveFileOnChange(self.TimeStampPath, "\n".join(sorted(FileSet)), False) + + # Ignore generating makefile when it is a binary module + if self.IsBinaryModule: +-- +2.32.0 + diff --git a/poky/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch b/poky/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch deleted file mode 100644 index 0165fae7c..000000000 --- a/poky/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch +++ /dev/null @@ -1,93 +0,0 @@ -We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in - --debug-prefix-map to nasm (we carry a patch to nasm for this). The -tools definitions file is built by ovmf-native so we need to pass this in -at target build time when we know the right values so we use the environment. - -By using determininistc file paths during the ovmf build, it removes the -opportunitity for gcc/ld to change the output binaries due to path lengths -overflowing section sizes and causing small changes in the binary output. -Previously we relied on the stripped output being the same which isn't always -the case if the size of the debug symbols varies. - -Upstream-Status: Pending [gcc parts may be upstreamable, nasm patch isn't upstream yet] -Signed-off-by: Richard Purdie - - -Index: git/BaseTools/Conf/tools_def.template -=================================================================== ---- git.orig/BaseTools/Conf/tools_def.template -+++ git/BaseTools/Conf/tools_def.template -@@ -1918,7 +1918,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --a - *_*_*_DTCPP_PATH = DEF(DTCPP_BIN) - *_*_*_DTC_PATH = DEF(DTC_BIN) - --DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -+DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common ENV(GCC_PREFIX_MAP) - DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe - DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe - DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie -@@ -1936,8 +1936,8 @@ DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = -fu - DEFINE GCC_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) - DEFINE GCC_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) - DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map --DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros AutoGen.h --DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h -+DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros AutoGen.h ENV(GCC_PREFIX_MAP) -+DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h ENV(GCC_PREFIX_MAP) - DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h - DEFINE GCC_ASLPP_FLAGS = -x c -E -include AutoGen.h - DEFINE GCC_ASLCC_FLAGS = -x c -@@ -2082,7 +2082,7 @@ DEFINE GCC_PP_FLAGS - *_GCC48_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS) - *_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) - *_GCC48_IA32_OBJCOPY_FLAGS = --*_GCC48_IA32_NASM_FLAGS = -f elf32 -+*_GCC48_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os - RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -@@ -2110,7 +2110,7 @@ RELEASE_GCC48_IA32_CC_FLAGS = DEF( - *_GCC48_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS) - *_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) - *_GCC48_X64_OBJCOPY_FLAGS = --*_GCC48_X64_NASM_FLAGS = -f elf64 -+*_GCC48_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os - RELEASE_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable -@@ -2222,7 +2222,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(G - *_GCC49_IA32_DLINK2_FLAGS = DEF(GCC49_IA32_DLINK2_FLAGS) - *_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) - *_GCC49_IA32_OBJCOPY_FLAGS = --*_GCC49_IA32_NASM_FLAGS = -f elf32 -+*_GCC49_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os - RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable -@@ -2250,7 +2250,7 @@ RELEASE_GCC49_IA32_CC_FLAGS = DEF( - *_GCC49_X64_DLINK2_FLAGS = DEF(GCC49_X64_DLINK2_FLAGS) - *_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) - *_GCC49_X64_OBJCOPY_FLAGS = --*_GCC49_X64_NASM_FLAGS = -f elf64 -+*_GCC49_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os - RELEASE_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable -@@ -2368,7 +2368,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = - - *_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie - *_GCC5_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) - *_GCC5_IA32_OBJCOPY_FLAGS = --*_GCC5_IA32_NASM_FLAGS = -f elf32 -+*_GCC5_IA32_NASM_FLAGS = -f elf32 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os - DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 -@@ -2400,7 +2400,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(G - *_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) - *_GCC5_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) - *_GCC5_X64_OBJCOPY_FLAGS = --*_GCC5_X64_NASM_FLAGS = -f elf64 -+*_GCC5_X64_NASM_FLAGS = -f elf64 ENV(NASM_PREFIX_MAP) - - DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os - DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os diff --git a/poky/meta/recipes-core/ovmf/ovmf/reproducible.patch b/poky/meta/recipes-core/ovmf/ovmf/reproducible.patch deleted file mode 100644 index 5d2aeaacf..000000000 --- a/poky/meta/recipes-core/ovmf/ovmf/reproducible.patch +++ /dev/null @@ -1,165 +0,0 @@ -This patch fixes various things which make the build more reproducible. Some changes -here only change intermediate artefacts but that means when you have two build trees -giving differing results, the differences can be isolated more easily. The issues here -usually become apparent with longer paths. - -This was all debugged with: -TMPDIR = "${TOPDIR}/tmp" -vs. -TMPDIR = "${TOPDIR}/tmp-inital-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath" - -The patch specifically: - - * Sorts output in GNUmakefile - * Always generates indirect flags files used to avoid pathlength issues else the - compile commands suddenly change when using longer paths - * Sorts the AutoGenTimeStamp file contents - * Makes the TargetDescBlock objects from BuildEngine sortable to allow the makefile fix - * Fix ElfConvert within GenFw so that only the basename of the binary being converted - is used, else the output from "GenFw XXX.bin" differs from "GenFw /long/path/XXX.bin" - with sufficiently long paths - -Upstream-Status: Pending [At least some of this might be interesting to upstream] -Signed-off-by: Richard Purdie - -Index: git/BaseTools/Source/Python/AutoGen/GenMake.py -=================================================================== ---- git.orig/BaseTools/Source/Python/AutoGen/GenMake.py -+++ git/BaseTools/Source/Python/AutoGen/GenMake.py -@@ -571,7 +571,7 @@ cleanlib: - os.remove(RespFileList) - - # convert source files and binary files to build targets -- self.ResultFileList = [str(T.Target) for T in MyAgo.CodaTargetList] -+ self.ResultFileList = sorted([str(T.Target) for T in MyAgo.CodaTargetList]) - if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0: - EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build", - ExtraData="[%s]" % str(MyAgo)) -@@ -722,7 +722,7 @@ cleanlib: - OutputFile = '' - DepsFileList = [] - -- for Cmd in self.GenFfsList: -+ for Cmd in sorted(self.GenFfsList): - if Cmd[2]: - for CopyCmd in Cmd[2]: - Src, Dst = CopyCmd -@@ -755,7 +755,7 @@ cleanlib: - self.BuildTargetList.append('\t%s' % CmdString) - - self.ParseSecCmd(DepsFileList, Cmd[1]) -- for SecOutputFile, SecDepsFile, SecCmd in self.FfsOutputFileList : -+ for SecOutputFile, SecDepsFile, SecCmd in sorted(self.FfsOutputFileList): - self.BuildTargetList.append('%s : %s' % (self.ReplaceMacro(SecOutputFile), self.ReplaceMacro(SecDepsFile))) - self.BuildTargetList.append('\t%s' % self.ReplaceMacro(SecCmd)) - self.FfsOutputFileList = [] -@@ -794,13 +794,13 @@ cleanlib: - - def CommandExceedLimit(self): - FlagDict = { -- 'CC' : { 'Macro' : '$(CC_FLAGS)', 'Value' : False}, -- 'PP' : { 'Macro' : '$(PP_FLAGS)', 'Value' : False}, -- 'APP' : { 'Macro' : '$(APP_FLAGS)', 'Value' : False}, -- 'ASLPP' : { 'Macro' : '$(ASLPP_FLAGS)', 'Value' : False}, -- 'VFRPP' : { 'Macro' : '$(VFRPP_FLAGS)', 'Value' : False}, -- 'ASM' : { 'Macro' : '$(ASM_FLAGS)', 'Value' : False}, -- 'ASLCC' : { 'Macro' : '$(ASLCC_FLAGS)', 'Value' : False}, -+ 'CC' : { 'Macro' : '$(CC_FLAGS)', 'Value' : True}, -+ 'PP' : { 'Macro' : '$(PP_FLAGS)', 'Value' : True}, -+ 'APP' : { 'Macro' : '$(APP_FLAGS)', 'Value' : True}, -+ 'ASLPP' : { 'Macro' : '$(ASLPP_FLAGS)', 'Value' : True}, -+ 'VFRPP' : { 'Macro' : '$(VFRPP_FLAGS)', 'Value' : True}, -+ 'ASM' : { 'Macro' : '$(ASM_FLAGS)', 'Value' : True}, -+ 'ASLCC' : { 'Macro' : '$(ASLCC_FLAGS)', 'Value' : True}, - } - - RespDict = {} -@@ -1003,9 +1003,9 @@ cleanlib: - if not self.ObjTargetDict.get(T.Target.SubDir): - self.ObjTargetDict[T.Target.SubDir] = set() - self.ObjTargetDict[T.Target.SubDir].add(NewFile) -- for Type in self._AutoGenObject.Targets: -+ for Type in sorted(self._AutoGenObject.Targets): - resp_file_number = 0 -- for T in self._AutoGenObject.Targets[Type]: -+ for T in sorted(self._AutoGenObject.Targets[Type]): - # Generate related macros if needed - if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros: - self.FileListMacros[T.FileListMacro] = [] -Index: git/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py -=================================================================== ---- git.orig/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py -+++ git/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py -@@ -1484,6 +1484,9 @@ class ModuleAutoGen(AutoGen): - for File in Files: - if File.lower().endswith('.pdb'): - AsBuiltInfDict['binary_item'].append('DISPOSABLE|' + File) -+ -+ AsBuiltInfDict['binary_item'] = sorted(AsBuiltInfDict['binary_item']) -+ - HeaderComments = self.Module.HeaderComments - StartPos = 0 - for Index in range(len(HeaderComments)): -@@ -1759,7 +1762,7 @@ class ModuleAutoGen(AutoGen): - if os.path.exists (self.TimeStampPath): - os.remove (self.TimeStampPath) - -- SaveFileOnChange(self.TimeStampPath, "\n".join(FileSet), False) -+ SaveFileOnChange(self.TimeStampPath, "\n".join(sorted(FileSet)), False) - - # Ignore generating makefile when it is a binary module - if self.IsBinaryModule: -Index: git/BaseTools/Source/Python/AutoGen/BuildEngine.py -=================================================================== ---- git.orig/BaseTools/Source/Python/AutoGen/BuildEngine.py -+++ git/BaseTools/Source/Python/AutoGen/BuildEngine.py -@@ -70,6 +70,9 @@ class TargetDescBlock(object): - else: - return str(Other) == self.Target.Path - -+ def __lt__(self, other): -+ return str(self) < str(other) -+ - def AddInput(self, Input): - if Input not in self.Inputs: - self.Inputs.append(Input) -Index: git/BaseTools/Source/C/GenFw/Elf64Convert.c -=================================================================== ---- git.orig/BaseTools/Source/C/GenFw/Elf64Convert.c -+++ git/BaseTools/Source/C/GenFw/Elf64Convert.c -@@ -14,6 +14,8 @@ SPDX-License-Identifier: BSD-2-Clause-Pa - #ifndef __GNUC__ - #include - #include -+#else -+#define _GNU_SOURCE - #endif - #include - #include -@@ -770,7 +772,7 @@ ScanSections64 ( - } - mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) + - sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) + -- strlen(mInImageName) + 1; -+ strlen(basename(mInImageName)) + 1; - - mCoffOffset = CoffAlign(mCoffOffset); - if (SectionCount == 0) { -@@ -1609,7 +1611,7 @@ WriteDebug64 ( - EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *Dir; - EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10; - -- Len = strlen(mInImageName) + 1; -+ Len = strlen(basename(mInImageName)) + 1; - - Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset); - Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW; -@@ -1619,7 +1621,7 @@ WriteDebug64 ( - - Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1); - Nb10->Signature = CODEVIEW_SIGNATURE_NB10; -- strcpy ((char *)(Nb10 + 1), mInImageName); -+ strcpy ((char *)(Nb10 + 1), basename(mInImageName)); - - - NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset); diff --git a/poky/meta/recipes-core/ovmf/ovmf/zero.patch b/poky/meta/recipes-core/ovmf/ovmf/zero.patch deleted file mode 100644 index af7a9d31f..000000000 --- a/poky/meta/recipes-core/ovmf/ovmf/zero.patch +++ /dev/null @@ -1,84 +0,0 @@ -Pass --zero to GenFw in release builds so that the sections that link back to -the intermediate binaries (containing build paths) are removed. - -Upstream-Status: Pending (discussion at https://bugzilla.tianocore.org/show_bug.cgi?id=3256) -Signed-off-by: Ross Burton - -From 6303b065802c9427c718fda129360189b79316e7 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 16 Mar 2021 16:49:49 +0000 -Subject: [PATCH] Strip build paths - ---- - OvmfPkg/AmdSev/AmdSevX64.dsc | 1 + - OvmfPkg/Bhyve/BhyveX64.dsc | 1 + - OvmfPkg/OvmfPkgIa32.dsc | 2 ++ - OvmfPkg/OvmfPkgIa32X64.dsc | 1 + - OvmfPkg/OvmfPkgX64.dsc | 1 + - OvmfPkg/OvmfXen.dsc | 1 + - 6 files changed, 7 insertions(+) - -diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc -index 4a1cdf5aca..132f55cf69 100644 ---- a/OvmfPkg/Bhyve/BhyveX64.dsc -+++ b/OvmfPkg/Bhyve/BhyveX64.dsc -@@ -76,6 +76,7 @@ - GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable - INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable - !endif -+ RELEASE_*_*_GENFW_FLAGS = --zero - - # - # Disable deprecated APIs. -diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc -index 1eaf3e99c6..ce20f09df8 100644 ---- a/OvmfPkg/OvmfPkgIa32.dsc -+++ b/OvmfPkg/OvmfPkgIa32.dsc -@@ -90,6 +90,8 @@ - - !include NetworkPkg/NetworkBuildOptions.dsc.inc - -+ RELEASE_*_*_GENFW_FLAGS = --zero -+ - [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] - GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 - XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000 -diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc -index 4a5a430147..97cc438250 100644 ---- a/OvmfPkg/OvmfPkgIa32X64.dsc -+++ b/OvmfPkg/OvmfPkgIa32X64.dsc -@@ -84,6 +84,7 @@ - GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable - INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable - !endif -+ RELEASE_*_*_GENFW_FLAGS = --zero - - # - # Disable deprecated APIs. -diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc -index d4d601b444..f544fb04bf 100644 ---- a/OvmfPkg/OvmfPkgX64.dsc -+++ b/OvmfPkg/OvmfPkgX64.dsc -@@ -84,6 +84,7 @@ - GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable - INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable - !endif -+ RELEASE_*_*_GENFW_FLAGS = --zero - - # - # Disable deprecated APIs. -diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc -index 507029404f..fcaa35acf1 100644 ---- a/OvmfPkg/OvmfXen.dsc -+++ b/OvmfPkg/OvmfXen.dsc -@@ -74,6 +74,7 @@ - GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable - INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable - !endif -+ RELEASE_*_*_GENFW_FLAGS = --zero - - # - # Disable deprecated APIs. --- -2.25.1 - diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb index 888ea082e..90dae2aed 100644 --- a/poky/meta/recipes-core/ovmf/ovmf_git.bb +++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb @@ -15,15 +15,15 @@ PACKAGECONFIG[secureboot] = ",,," SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \ file://0001-ovmf-update-path-to-native-BaseTools.patch \ file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \ - file://0004-ovmf-Update-to-latest.patch \ - file://zero.patch \ - file://debug_prefix_map.patch \ - file://reproducible.patch \ + file://0003-ovmf-Update-to-latest.patch \ + file://0004-Strip-build-paths.patch \ + file://0005-debug-prefix-map.patch \ + file://0006-reproducible.patch \ file://0001-Fix-VLA-parameter-warning.patch \ " -PV = "edk2-stable202102" -SRCREV = "ef91b07388e1c0a50c604e5350eeda98428ccea6" +PV = "edk2-stable202105" +SRCREV = "e1999b264f1f9d7230edf2448f757c73da567832" UPSTREAM_CHECK_GITTAGREGEX = "(?Pedk2-stable.*)" inherit deploy diff --git a/poky/meta/recipes-core/systemd/systemd-conf/wired.network b/poky/meta/recipes-core/systemd/systemd-conf/wired.network index e7b69970d..740628724 100644 --- a/poky/meta/recipes-core/systemd/systemd-conf/wired.network +++ b/poky/meta/recipes-core/systemd/systemd-conf/wired.network @@ -1,5 +1,6 @@ [Match] Type=ether +Name=!veth* KernelCommandLine=!nfsroot KernelCommandLine=!ip diff --git a/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch b/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch index af1a6bb05..940db4c5c 100644 --- a/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch +++ b/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch @@ -47,9 +47,18 @@ index b7e18768e3..3195ab205d 100644 #if SIZEOF_DEV_T == 8 # define DEV_FMT "%" PRIu64 diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c -index 23d108d5df..94373c9422 100644 +index 23d108d5df..b037734ee3 100644 --- a/src/basic/rlimit-util.c +++ b/src/basic/rlimit-util.c +@@ -43,7 +43,7 @@ int setrlimit_closest(int resource, const struct rlimit *rlim) { + fixed.rlim_max == highest.rlim_max) + return 0; + +- log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", rlim->rlim_max, rlimit_to_string(resource), fixed.rlim_max); ++ log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", (uintmax_t)rlim->rlim_max, rlimit_to_string(resource), (uintmax_t)fixed.rlim_max); + + if (setrlimit(resource, &fixed) < 0) + return -errno; @@ -308,13 +308,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) { if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY) s = strdup("infinity"); diff --git a/poky/meta/recipes-core/systemd/systemd_248.3.bb b/poky/meta/recipes-core/systemd/systemd_248.3.bb index 4e6565649..37607708f 100644 --- a/poky/meta/recipes-core/systemd/systemd_248.3.bb +++ b/poky/meta/recipes-core/systemd/systemd_248.3.bb @@ -507,6 +507,7 @@ FILES_${PN}-extra-utils = "\ ${bindir}/systemd-cgls \ ${bindir}/systemd-cgtop \ ${bindir}/systemd-stdio-bridge \ + ${bindir}/systemd-sysext \ ${base_bindir}/systemd-ask-password \ ${base_bindir}/systemd-tty-ask-password-agent \ ${systemd_unitdir}/system/systemd-ask-password-console.path \ diff --git a/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.36.2.bb b/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.36.2.bb deleted file mode 100644 index 9612c491c..000000000 --- a/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.36.2.bb +++ /dev/null @@ -1,16 +0,0 @@ -# To allow util-linux to optionally build-depend on cryptsetup, libuuid is -# split out of the main recipe, as it's needed by cryptsetup - -require util-linux.inc - -inherit autotools gettext pkgconfig - -S = "${WORKDIR}/util-linux-${PV}" -EXTRA_OECONF += "--disable-all-programs --enable-libuuid" -LICENSE = "BSD-3-Clause" - -do_install_append() { - rm -rf ${D}${datadir} ${D}${bindir} ${D}${base_bindir} ${D}${sbindir} ${D}${base_sbindir} ${D}${exec_prefix}/sbin -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.37.bb b/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.37.bb new file mode 100644 index 000000000..9612c491c --- /dev/null +++ b/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.37.bb @@ -0,0 +1,16 @@ +# To allow util-linux to optionally build-depend on cryptsetup, libuuid is +# split out of the main recipe, as it's needed by cryptsetup + +require util-linux.inc + +inherit autotools gettext pkgconfig + +S = "${WORKDIR}/util-linux-${PV}" +EXTRA_OECONF += "--disable-all-programs --enable-libuuid" +LICENSE = "BSD-3-Clause" + +do_install_append() { + rm -rf ${D}${datadir} ${D}${bindir} ${D}${base_bindir} ${D}${sbindir} ${D}${base_sbindir} ${D}${exec_prefix}/sbin +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc index 6b47f417a..9d7d8a23a 100644 --- a/poky/meta/recipes-core/util-linux/util-linux.inc +++ b/poky/meta/recipes-core/util-linux/util-linux.inc @@ -35,6 +35,6 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-lin file://run-ptest \ file://display_testname_for_subtest.patch \ file://avoid_parallel_tests.patch \ - file://Automake-use-EXTRA_LTLIBRARIES-instead-of-noinst_LTL.patch \ + file://8a3a74160b96498d672e3652827aa7e6d7f3a120.patch \ " -SRC_URI[sha256sum] = "f7516ba9d8689343594356f0e5e1a5f0da34adfbc89023437735872bb5024c5f" +SRC_URI[sha256sum] = "bd07b7e98839e0359842110525a3032fdb8eaf3a90bedde3dd1652d32d15cce5" diff --git a/poky/meta/recipes-core/util-linux/util-linux/8a3a74160b96498d672e3652827aa7e6d7f3a120.patch b/poky/meta/recipes-core/util-linux/util-linux/8a3a74160b96498d672e3652827aa7e6d7f3a120.patch new file mode 100644 index 000000000..a5bb00ab6 --- /dev/null +++ b/poky/meta/recipes-core/util-linux/util-linux/8a3a74160b96498d672e3652827aa7e6d7f3a120.patch @@ -0,0 +1,29 @@ +From 8a3a74160b96498d672e3652827aa7e6d7f3a120 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 15 Jun 2021 12:04:43 +0200 +Subject: [PATCH] mkswap: fix holes detection (infinite loop and/or + stack-buffer-underflow) + +Reported-by: Brian Lane +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1971877 +Fix: https://github.com/karelzak/util-linux/issues/1348 +Signed-off-by: Karel Zak +Upstream-Status: Backport +Signed-off-by: Alexander Kanavin +--- + disk-utils/mkswap.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/disk-utils/mkswap.c b/disk-utils/mkswap.c +index 27374fd72..c45a3a317 100644 +--- a/disk-utils/mkswap.c ++++ b/disk-utils/mkswap.c +@@ -267,6 +267,8 @@ static void check_extents(struct mkswap_control *ctl) + return; + + n = fiemap->fm_mapped_extents; ++ if (n == 0) ++ break; + + for (i = 0; i < n; i++) { + struct fiemap_extent *e = &fiemap->fm_extents[i]; diff --git a/poky/meta/recipes-core/util-linux/util-linux/Automake-use-EXTRA_LTLIBRARIES-instead-of-noinst_LTL.patch b/poky/meta/recipes-core/util-linux/util-linux/Automake-use-EXTRA_LTLIBRARIES-instead-of-noinst_LTL.patch deleted file mode 100644 index 272518914..000000000 --- a/poky/meta/recipes-core/util-linux/util-linux/Automake-use-EXTRA_LTLIBRARIES-instead-of-noinst_LTL.patch +++ /dev/null @@ -1,49 +0,0 @@ -Author: Luca Boccassi -Description: Automake: use EXTRA_LTLIBRARIES instead of noinst_LTLIBRARIES - noinst_LTLIBRARIES causes the libraries to be always built - unconditionally. EXTRA_LTLIBRARIES causes them to be built - only if other build target needs them. - In other words, avoid building libcommon.a and libtcolors.a - unless they are needed by another library/executable and - save some build time. -Upstream-Status: backport, commit:c65953d72bbc7412f32e566d9fa6e780d84f0696 ---- a/Makefile.am -+++ b/Makefile.am -@@ -39,7 +39,7 @@ bashcompletiondir = @bashcompletiondir@ - - dist_noinst_HEADERS = - noinst_PROGRAMS = --noinst_LTLIBRARIES = -+EXTRA_LTLIBRARIES = - usrbin_exec_PROGRAMS = - usrsbin_exec_PROGRAMS = - dist_man_MANS = -@@ -169,7 +169,7 @@ else - edit_cmd += -e 's|@vendordir[@]||g' - endif - --CLEANFILES += $(PATHFILES) -+CLEANFILES += $(PATHFILES) $(EXTRA_LTLIBRARIES) - EXTRA_DIST += $(PATHFILES:=.in) - - $(PATHFILES): Makefile ---- a/lib/Makemodule.am -+++ b/lib/Makemodule.am -@@ -9,7 +9,7 @@ - # Note that you need "make install-strip" (or proper rpm / Debian build) - # to generate binaries with only relevant stuff. - # --noinst_LTLIBRARIES += libcommon.la -+EXTRA_LTLIBRARIES += libcommon.la - libcommon_la_CFLAGS = $(AM_CFLAGS) - libcommon_la_SOURCES = \ - lib/blkdev.c \ -@@ -59,7 +59,7 @@ libcommon_la_SOURCES += lib/sysfs.c - endif - endif - --noinst_LTLIBRARIES += libtcolors.la -+EXTRA_LTLIBRARIES += libtcolors.la - libtcolors_la_CFLAGS = $(AM_CFLAGS) - libtcolors_la_SOURCES = lib/colors.c lib/color-names.c include/colors.h include/color-names.h - libtcolors_la_LIBADD = diff --git a/poky/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch b/poky/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch index 748b6ef09..f1cbdb3be 100644 --- a/poky/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch +++ b/poky/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch @@ -1,20 +1,29 @@ +From ee3c7812e1efa6719af68b994804f0e6caceabd8 Mon Sep 17 00:00:00 2001 +From: Tudor Florea +Date: Mon, 14 Jun 2021 14:00:31 +0200 +Subject: [PATCH] util-linux: Add ptest + Ptest needs buildtest-TESTS and runtest-TESTS targets. serial-tests is required to generate those targets. -Revert run.sh script accordingly to serialize running tests +Revert run.sh script accordingly to serialize running tests Signed-off-by: Tudor Florea -Upstream-Status: Inappropriate +Upstream-Status: Inappropriate + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -Index: util-linux-2.32/configure.ac -=================================================================== ---- util-linux-2.32.orig/configure.ac -+++ util-linux-2.32/configure.ac +diff --git a/configure.ac b/configure.ac +index 5664f9f..075ef27 100644 +--- a/configure.ac ++++ b/configure.ac @@ -11,7 +11,7 @@ AC_CONFIG_MACRO_DIR([m4]) dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run - dnl the compiler (like AC_PROG_LIBTOOL) to avoid autoconf errors. + dnl the compiler (like LT_INIT) to avoid autoconf errors. AC_USE_SYSTEM_EXTENSIONS --AM_INIT_AUTOMAKE([-Wall foreign 1.10 tar-pax no-dist-gzip dist-xz subdir-objects]) -+AM_INIT_AUTOMAKE([-Wall foreign 1.10 tar-pax no-dist-gzip dist-xz subdir-objects serial-tests]) +-AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign 1.10 tar-pax no-dist-gzip dist-xz subdir-objects]) ++AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign 1.10 tar-pax no-dist-gzip dist-xz subdir-objects serial-tests]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) diff --git a/poky/meta/recipes-core/util-linux/util-linux/ptest.patch b/poky/meta/recipes-core/util-linux/util-linux/ptest.patch index 0537f7d85..ba2bd3f6a 100644 --- a/poky/meta/recipes-core/util-linux/util-linux/ptest.patch +++ b/poky/meta/recipes-core/util-linux/util-linux/ptest.patch @@ -1,23 +1,24 @@ -Define TESTS variable +From af073c13ef184ca75811df688e0a0a25827b36c3 Mon Sep 17 00:00:00 2001 +From: Tudor Florea +Date: Thu, 3 Dec 2015 04:08:00 +0100 +Subject: [PATCH] Define TESTS variable Signed-off-by: Tudor Florea Upstream-Status: Pending + --- Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.am b/Makefile.am -index bbaccb1..7d5a6bb 100644 +index 886598d..1cf4346 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -48,6 +48,7 @@ systemdsystemunit_DATA = +@@ -57,6 +57,7 @@ systemdsystemunit_DATA = dist_bashcompletion_DATA = check_PROGRAMS = dist_check_SCRIPTS = +TESTS = $(check_PROGRAMS) PATHFILES = - --- -2.8.3 - + ADOCFILES_COMMON = diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.36.2.bb b/poky/meta/recipes-core/util-linux/util-linux_2.36.2.bb deleted file mode 100644 index c79cf782d..000000000 --- a/poky/meta/recipes-core/util-linux/util-linux_2.36.2.bb +++ /dev/null @@ -1,332 +0,0 @@ -require util-linux.inc - -#gtk-doc is not enabled as it requires xmlto which requires util-linux -inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest -DEPENDS = "libcap-ng ncurses virtual/crypt zlib util-linux-libuuid" - -PACKAGES =+ "${PN}-swaponoff" -PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pylibmount', '${PN}-pylibmount', '', d)}" - -python util_linux_binpackages () { - def pkg_hook(f, pkg, file_regex, output_pattern, modulename): - pn = d.getVar('PN') - d.appendVar('RRECOMMENDS_%s' % pn, ' %s' % pkg) - - if d.getVar('ALTERNATIVE_' + pkg): - return - if d.getVarFlag('ALTERNATIVE_LINK_NAME', modulename): - d.setVar('ALTERNATIVE_' + pkg, modulename) - - bindirs = sorted(list(set(d.expand("${base_sbindir} ${base_bindir} ${sbindir} ${bindir}").split()))) - for dir in bindirs: - do_split_packages(d, root=dir, - file_regex=r'(.*)', output_pattern='${PN}-%s', - description='${PN} %s', - hook=pkg_hook, extra_depends='') - - # There are some symlinks for some binaries which we have ignored - # above. Add them to the package owning the binary they are - # pointing to - extras = {} - dvar = d.getVar('PKGD') - for root in bindirs: - for walkroot, dirs, files in os.walk(dvar + root): - for f in files: - file = os.path.join(walkroot, f) - if not os.path.islink(file): - continue - - pkg = os.path.basename(os.readlink(file)) - extras[pkg] = extras.get(pkg, '') + ' ' + file.replace(dvar, '', 1) - - pn = d.getVar('PN') - for pkg, links in extras.items(): - of = d.getVar('FILES_' + pn + '-' + pkg) - links = of + links - d.setVar('FILES_' + pn + '-' + pkg, links) -} - -# we must execute before update-alternatives PACKAGE_PREPROCESS_FUNCS -PACKAGE_PREPROCESS_FUNCS =+ "util_linux_binpackages " - -# skip libuuid as it will be packaged by the util-linux-libuuid recipe -python util_linux_libpackages() { - do_split_packages(d, root=d.getVar('UTIL_LINUX_LIBDIR'), file_regex=r'^lib(?!uuid)(.*)\.so\..*$', - output_pattern='${PN}-lib%s', - description='${PN} lib%s', - extra_depends='', prepend=True, allow_links=True) -} - -PACKAGESPLITFUNCS =+ "util_linux_libpackages" - -PACKAGES_DYNAMIC = "^${PN}-.*" - -CACHED_CONFIGUREVARS += "scanf_cv_alloc_modifier=ms" -UTIL_LINUX_LIBDIR = "${libdir}" -UTIL_LINUX_LIBDIR_class-target = "${base_libdir}" -EXTRA_OECONF = "\ - --enable-libuuid --enable-libblkid \ - \ - --enable-fsck --enable-kill --enable-last --enable-mesg \ - --enable-mount --enable-partx --enable-raw --enable-rfkill \ - --enable-unshare --enable-write \ - \ - --disable-bfs --disable-chfn-chsh --disable-login \ - --disable-makeinstall-chown --disable-minix --disable-newgrp \ - --disable-use-tty-group --disable-vipw \ - \ - --without-udev \ - \ - usrsbin_execdir='${sbindir}' \ - --libdir='${UTIL_LINUX_LIBDIR}' \ -" - -EXTRA_OECONF_append_class-target = " --enable-setpriv" -EXTRA_OECONF_append_class-native = " --without-cap-ng --disable-setpriv" -EXTRA_OECONF_append_class-nativesdk = " --without-cap-ng --disable-setpriv" -EXTRA_OECONF_append = " --disable-hwclock-gplv3" - -# enable pcre2 for native/nativesdk to match host distros -# this helps to keep same expectations when using the SDK or -# build host versions during development -# -PACKAGECONFIG ?= "pcre2" -PACKAGECONFIG_class-target ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" -# inherit manpages requires this to be present, however util-linux does not have -# configuration options, and installs manpages always -PACKAGECONFIG[manpages] = "" -PACKAGECONFIG[pam] = "--enable-su --enable-runuser,--disable-su --disable-runuser, libpam," -# Respect the systemd feature for uuidd -PACKAGECONFIG[systemd] = "--with-systemd --with-systemdsystemunitdir=${systemd_system_unitdir}, --without-systemd --without-systemdsystemunitdir,systemd" -# Build python bindings for libmount -PACKAGECONFIG[pylibmount] = "--with-python=3 --enable-pylibmount,--without-python --disable-pylibmount,python3" -# Readline support -PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" -# PCRE support in hardlink -PACKAGECONFIG[pcre2] = ",,libpcre2" -PACKAGECONFIG[cryptsetup] = "--with-cryptsetup,--without-cryptsetup,cryptsetup" - -EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} CPU= CPUOPT= 'OPT=${CFLAGS}'" - -ALLOW_EMPTY_${PN} = "1" -FILES_${PN} = "" -FILES_${PN}-doc += "${datadir}/getopt/getopt-*.*" -FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.la" -FILES_${PN}-mount = "${sysconfdir}/default/mountall" -FILES_${PN}-runuser = "${sysconfdir}/pam.d/runuser*" -FILES_${PN}-su = "${sysconfdir}/pam.d/su-l" -CONFFILES_${PN}-su = "${sysconfdir}/pam.d/su-l" -FILES_${PN}-pylibmount = "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \ - ${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \ - ${PYTHON_SITEPACKAGES_DIR}/libmount/__pycache__/*" - -# Util-linux' blkid replaces the e2fsprogs one -RCONFLICTS_${PN}-blkid = "${MLPREFIX}e2fsprogs-blkid" -RREPLACES_${PN}-blkid = "${MLPREFIX}e2fsprogs-blkid" - -RRECOMMENDS_${PN}_class-native = "" -RRECOMMENDS_${PN}_class-nativesdk = "" -RDEPENDS_${PN}_class-native = "" -RDEPENDS_${PN}_class-nativesdk = "" - -RDEPENDS_${PN} += " util-linux-libuuid" -RDEPENDS_${PN}-dev += " util-linux-libuuid-dev" - -RPROVIDES_${PN}-dev = "${PN}-libblkid-dev ${PN}-libmount-dev" - -RDEPENDS_${PN}-bash-completion += "${PN}-lsblk" -RDEPENDS_${PN}-ptest += "bash bc btrfs-tools coreutils e2fsprogs grep iproute2 kmod mdadm procps sed socat which xz" -RRECOMMENDS_${PN}-ptest += "kernel-module-scsi-debug" -RDEPENDS_${PN}-swaponoff = "${PN}-swapon ${PN}-swapoff" -ALLOW_EMPTY_${PN}-swaponoff = "1" - -#SYSTEMD_PACKAGES = "${PN}-uuidd ${PN}-fstrim" -SYSTEMD_SERVICE_${PN}-uuidd = "uuidd.socket uuidd.service" -SYSTEMD_AUTO_ENABLE_${PN}-uuidd = "disable" -SYSTEMD_SERVICE_${PN}-fstrim = "fstrim.timer fstrim.service" -SYSTEMD_AUTO_ENABLE_${PN}-fstrim = "disable" - -do_install () { - # with ccache the timestamps on compiled files may - # end up earlier than on their inputs, this allows - # for the resultant compilation in the install step. - oe_runmake 'CC=${CC}' 'LD=${LD}' \ - 'LDFLAGS=${LDFLAGS}' 'DESTDIR=${D}' install - - mkdir -p ${D}${base_bindir} - - sbinprogs="agetty ctrlaltdel cfdisk vipw vigr" - sbinprogs_a="pivot_root hwclock mkswap losetup swapon swapoff fdisk fsck blkid blockdev fstrim sulogin switch_root nologin" - binprogs_a="dmesg getopt kill more umount mount login su mountpoint" - - if [ "${base_sbindir}" != "${sbindir}" ]; then - mkdir -p ${D}${base_sbindir} - for p in $sbinprogs $sbinprogs_a; do - if [ -f "${D}${sbindir}/$p" ]; then - mv "${D}${sbindir}/$p" "${D}${base_sbindir}/$p" - fi - done - fi - - if [ "${base_bindir}" != "${bindir}" ]; then - mkdir -p ${D}${base_bindir} - for p in $binprogs_a; do - if [ -f "${D}${bindir}/$p" ]; then - mv "${D}${bindir}/$p" "${D}${base_bindir}/$p" - fi - done - fi - - install -d ${D}${sysconfdir}/default/ - echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall - - rm -f ${D}${bindir}/chkdupexe -} - -do_install_append_class-target () { - if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then - install -d ${D}${sysconfdir}/pam.d - install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser - install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l - # Required for "su -" aka "su --login" because - # otherwise it uses "other", which has "auth pam_deny.so" - # and thus prevents the operation. - ln -s su ${D}${sysconfdir}/pam.d/su-l - fi -} -# nologin causes a conflict with shadow-native -# kill causes a conflict with coreutils-native (if ${bindir}==${base_bindir}) -do_install_append_class-native () { - rm -f ${D}${base_sbindir}/nologin - rm -f ${D}${base_bindir}/kill -} - -# dm-verity support introduces a circular build dependency, so util-linux-libuuid is split out for target builds -# Need to build libuuid for uuidgen, but then delete it and let the other recipe ship it -do_install_append () { - rm -rf ${D}${includedir}/uuid ${D}${libdir}/pkgconfig/uuid.pc ${D}${libdir}/libuuid* ${D}${base_libdir}/libuuid* -} - -ALTERNATIVE_PRIORITY = "80" - -ALTERNATIVE_LINK_NAME[blkid] = "${base_sbindir}/blkid" -ALTERNATIVE_LINK_NAME[blockdev] = "${base_sbindir}/blockdev" -ALTERNATIVE_LINK_NAME[cal] = "${bindir}/cal" -ALTERNATIVE_LINK_NAME[chrt] = "${bindir}/chrt" -ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg" -ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject" -ALTERNATIVE_LINK_NAME[fallocate] = "${bindir}/fallocate" -ALTERNATIVE_LINK_NAME[fdisk] = "${base_sbindir}/fdisk" -ALTERNATIVE_LINK_NAME[flock] = "${bindir}/flock" -ALTERNATIVE_LINK_NAME[fsck] = "${base_sbindir}/fsck" -ALTERNATIVE_LINK_NAME[fsfreeze] = "${sbindir}/fsfreeze" -ALTERNATIVE_LINK_NAME[fstrim] = "${base_sbindir}/fstrim" -ALTERNATIVE_LINK_NAME[getopt] = "${base_bindir}/getopt" -ALTERNATIVE_${PN}-agetty = "getty" -ALTERNATIVE_LINK_NAME[getty] = "${base_sbindir}/getty" -ALTERNATIVE_TARGET[getty] = "${base_sbindir}/agetty" -ALTERNATIVE_LINK_NAME[hexdump] = "${bindir}/hexdump" -ALTERNATIVE_LINK_NAME[hwclock] = "${base_sbindir}/hwclock" -ALTERNATIVE_LINK_NAME[ionice] = "${bindir}/ionice" -ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill" -ALTERNATIVE_${PN}-last = "last lastb" -ALTERNATIVE_LINK_NAME[last] = "${bindir}/last" -ALTERNATIVE_LINK_NAME[lastb] = "${bindir}/lastb" -ALTERNATIVE_LINK_NAME[logger] = "${bindir}/logger" -ALTERNATIVE_LINK_NAME[losetup] = "${base_sbindir}/losetup" -ALTERNATIVE_LINK_NAME[mesg] = "${bindir}/mesg" -ALTERNATIVE_LINK_NAME[mkswap] = "${base_sbindir}/mkswap" -ALTERNATIVE_LINK_NAME[mcookie] = "${bindir}/mcookie" -ALTERNATIVE_LINK_NAME[more] = "${base_bindir}/more" -ALTERNATIVE_LINK_NAME[mount] = "${base_bindir}/mount" -ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint" -ALTERNATIVE_LINK_NAME[nologin] = "${base_sbindir}/nologin" -ALTERNATIVE_LINK_NAME[nsenter] = "${bindir}/nsenter" -ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root" -ALTERNATIVE_LINK_NAME[prlimit] = "${bindir}/prlimit" -ALTERNATIVE_LINK_NAME[readprofile] = "${sbindir}/readprofile" -ALTERNATIVE_LINK_NAME[renice] = "${bindir}/renice" -ALTERNATIVE_LINK_NAME[rev] = "${bindir}/rev" -ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill" -ALTERNATIVE_LINK_NAME[rtcwake] = "${sbindir}/rtcwake" -ALTERNATIVE_LINK_NAME[setpriv] = "${bindir}/setpriv" -ALTERNATIVE_LINK_NAME[setsid] = "${bindir}/setsid" -ALTERNATIVE_LINK_NAME[su] = "${base_bindir}/su" -ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin" -ALTERNATIVE_LINK_NAME[swapoff] = "${base_sbindir}/swapoff" -ALTERNATIVE_LINK_NAME[swapon] = "${base_sbindir}/swapon" -ALTERNATIVE_LINK_NAME[switch_root] = "${base_sbindir}/switch_root" -ALTERNATIVE_LINK_NAME[taskset] = "${bindir}/taskset" -ALTERNATIVE_LINK_NAME[umount] = "${base_bindir}/umount" -ALTERNATIVE_LINK_NAME[unshare] = "${bindir}/unshare" -ALTERNATIVE_LINK_NAME[utmpdump] = "${bindir}/utmpdump" -ALTERNATIVE_LINK_NAME[uuidgen] = "${bindir}/uuidgen" -ALTERNATIVE_LINK_NAME[wall] = "${bindir}/wall" - -ALTERNATIVE_${PN}-doc = "\ -blkid.8 eject.1 findfs.8 fsck.8 kill.1 last.1 lastb.1 libblkid.3 logger.1 mesg.1 \ -mountpoint.1 nologin.8 rfkill.8 sulogin.8 utmpdump.1 uuid.3 wall.1\ -" -ALTERNATIVE_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'pam', 'su.1', '', d)}" - -ALTERNATIVE_LINK_NAME[blkid.8] = "${mandir}/man8/blkid.8" -ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1" -ALTERNATIVE_LINK_NAME[findfs.8] = "${mandir}/man8/findfs.8" -ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8" -ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1" -ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1" -ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1" -ALTERNATIVE_LINK_NAME[libblkid.3] = "${mandir}/man3/libblkid.3" -ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1" -ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1" -ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1" -ALTERNATIVE_LINK_NAME[nologin.8] = "${mandir}/man8/nologin.8" -ALTERNATIVE_LINK_NAME[rfkill.8] = "${mandir}/man8/rfkill.8" -ALTERNATIVE_LINK_NAME[setpriv.1] = "${mandir}/man1/setpriv.1" -ALTERNATIVE_LINK_NAME[su.1] = "${mandir}/man1/su.1" -ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8" -ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1" -ALTERNATIVE_LINK_NAME[uuid.3] = "${mandir}/man3/uuid.3" -ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1" - - -BBCLASSEXTEND = "native nativesdk" - -PTEST_BINDIR = "1" -do_compile_ptest() { - oe_runmake buildtest-TESTS -} - -do_install_ptest() { - mkdir -p ${D}${PTEST_PATH}/tests/ts - find . -name 'test*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; - find ./.libs -name 'sample*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; - find ./.libs -name 'test*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; - - cp ${S}/tests/*.sh ${D}${PTEST_PATH}/tests/ - cp -pR ${S}/tests/expected ${D}${PTEST_PATH}/tests/expected - cp -pR ${S}/tests/ts ${D}${PTEST_PATH}/tests/ - cp ${WORKDIR}/build/config.h ${D}${PTEST_PATH} - - # The original paths of executables to be tested point to a local folder containing - # the executables. We want to test the installed executables, not the local copies. - # So strip the paths, the executables will be located via "which" - sed -i \ - -e '/^TS_CMD/ s|$top_builddir/||g' \ - -e '/^TS_HELPER/ s|$top_builddir|${PTEST_PATH}|g' \ - ${D}${PTEST_PATH}/tests/commands.sh - - # Change 'if [ ! -x "$1" ]' to 'if [ ! -x "`which $1 2>/dev/null`"]' - sed -i -e \ - '/^\tif[[:space:]]\[[[:space:]]![[:space:]]-x[[:space:]]"$1"/s|$1|`which $1 2>/dev/null`|g' \ - ${D}${PTEST_PATH}/tests/functions.sh - - # Running "kill" without the the complete path would use the shell's built-in kill - sed -i -e \ - '/^TS_CMD_KILL/ s|kill|${PTEST_PATH}/bin/kill|g' \ - ${D}${PTEST_PATH}/tests/commands.sh - - - sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest - -} diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.37.bb b/poky/meta/recipes-core/util-linux/util-linux_2.37.bb new file mode 100644 index 000000000..9a50c75e7 --- /dev/null +++ b/poky/meta/recipes-core/util-linux/util-linux_2.37.bb @@ -0,0 +1,302 @@ +require util-linux.inc + +#gtk-doc is not enabled as it requires xmlto which requires util-linux +inherit autotools gettext pkgconfig systemd update-alternatives python3-dir bash-completion ptest +DEPENDS = "libcap-ng ncurses virtual/crypt zlib util-linux-libuuid" + +PACKAGES =+ "${PN}-swaponoff" +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pylibmount', '${PN}-pylibmount', '', d)}" + +python util_linux_binpackages () { + def pkg_hook(f, pkg, file_regex, output_pattern, modulename): + pn = d.getVar('PN') + d.appendVar('RRECOMMENDS_%s' % pn, ' %s' % pkg) + + if d.getVar('ALTERNATIVE_' + pkg): + return + if d.getVarFlag('ALTERNATIVE_LINK_NAME', modulename): + d.setVar('ALTERNATIVE_' + pkg, modulename) + + bindirs = sorted(list(set(d.expand("${base_sbindir} ${base_bindir} ${sbindir} ${bindir}").split()))) + for dir in bindirs: + do_split_packages(d, root=dir, + file_regex=r'(.*)', output_pattern='${PN}-%s', + description='${PN} %s', + hook=pkg_hook, extra_depends='') + + # There are some symlinks for some binaries which we have ignored + # above. Add them to the package owning the binary they are + # pointing to + extras = {} + dvar = d.getVar('PKGD') + for root in bindirs: + for walkroot, dirs, files in os.walk(dvar + root): + for f in files: + file = os.path.join(walkroot, f) + if not os.path.islink(file): + continue + + pkg = os.path.basename(os.readlink(file)) + extras[pkg] = extras.get(pkg, '') + ' ' + file.replace(dvar, '', 1) + + pn = d.getVar('PN') + for pkg, links in extras.items(): + of = d.getVar('FILES_' + pn + '-' + pkg) + links = of + links + d.setVar('FILES_' + pn + '-' + pkg, links) +} + +# we must execute before update-alternatives PACKAGE_PREPROCESS_FUNCS +PACKAGE_PREPROCESS_FUNCS =+ "util_linux_binpackages " + +# skip libuuid as it will be packaged by the util-linux-libuuid recipe +python util_linux_libpackages() { + do_split_packages(d, root=d.getVar('UTIL_LINUX_LIBDIR'), file_regex=r'^lib(?!uuid)(.*)\.so\..*$', + output_pattern='${PN}-lib%s', + description='${PN} lib%s', + extra_depends='', prepend=True, allow_links=True) +} + +PACKAGESPLITFUNCS =+ "util_linux_libpackages" + +PACKAGES_DYNAMIC = "^${PN}-.*" + +CACHED_CONFIGUREVARS += "scanf_cv_alloc_modifier=ms" +UTIL_LINUX_LIBDIR = "${libdir}" +UTIL_LINUX_LIBDIR_class-target = "${base_libdir}" +EXTRA_OECONF = "\ + --enable-libuuid --enable-libblkid \ + \ + --enable-fsck --enable-kill --enable-last --enable-mesg \ + --enable-mount --enable-partx --enable-raw --enable-rfkill \ + --enable-unshare --enable-write \ + \ + --disable-bfs --disable-chfn-chsh --disable-login \ + --disable-makeinstall-chown --disable-minix --disable-newgrp \ + --disable-use-tty-group --disable-vipw \ + \ + --without-udev \ + \ + usrsbin_execdir='${sbindir}' \ + --libdir='${UTIL_LINUX_LIBDIR}' \ +" + +EXTRA_OECONF_append_class-target = " --enable-setpriv" +EXTRA_OECONF_append_class-native = " --without-cap-ng --disable-setpriv" +EXTRA_OECONF_append_class-nativesdk = " --without-cap-ng --disable-setpriv" +EXTRA_OECONF_append = " --disable-hwclock-gplv3" + +# enable pcre2 for native/nativesdk to match host distros +# this helps to keep same expectations when using the SDK or +# build host versions during development +# +PACKAGECONFIG ?= "pcre2" +PACKAGECONFIG_class-target ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" +PACKAGECONFIG[pam] = "--enable-su --enable-runuser,--disable-su --disable-runuser, libpam," +# Respect the systemd feature for uuidd +PACKAGECONFIG[systemd] = "--with-systemd --with-systemdsystemunitdir=${systemd_system_unitdir}, --without-systemd --without-systemdsystemunitdir,systemd" +# Build python bindings for libmount +PACKAGECONFIG[pylibmount] = "--with-python=3 --enable-pylibmount,--without-python --disable-pylibmount,python3" +# Readline support +PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" +# PCRE support in hardlink +PACKAGECONFIG[pcre2] = ",,libpcre2" +PACKAGECONFIG[cryptsetup] = "--with-cryptsetup,--without-cryptsetup,cryptsetup" + +EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} CPU= CPUOPT= 'OPT=${CFLAGS}'" + +ALLOW_EMPTY_${PN} = "1" +FILES_${PN} = "" +FILES_${PN}-doc += "${datadir}/getopt/getopt-*.*" +FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.la" +FILES_${PN}-mount = "${sysconfdir}/default/mountall" +FILES_${PN}-runuser = "${sysconfdir}/pam.d/runuser*" +FILES_${PN}-su = "${sysconfdir}/pam.d/su-l" +CONFFILES_${PN}-su = "${sysconfdir}/pam.d/su-l" +FILES_${PN}-pylibmount = "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \ + ${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \ + ${PYTHON_SITEPACKAGES_DIR}/libmount/__pycache__/*" + +# Util-linux' blkid replaces the e2fsprogs one +RCONFLICTS_${PN}-blkid = "${MLPREFIX}e2fsprogs-blkid" +RREPLACES_${PN}-blkid = "${MLPREFIX}e2fsprogs-blkid" + +RRECOMMENDS_${PN}_class-native = "" +RRECOMMENDS_${PN}_class-nativesdk = "" +RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}_class-nativesdk = "" + +RDEPENDS_${PN} += " util-linux-libuuid" +RDEPENDS_${PN}-dev += " util-linux-libuuid-dev" + +RPROVIDES_${PN}-dev = "${PN}-libblkid-dev ${PN}-libmount-dev" + +RDEPENDS_${PN}-bash-completion += "${PN}-lsblk" +RDEPENDS_${PN}-ptest += "bash bc btrfs-tools coreutils e2fsprogs grep iproute2 kmod mdadm procps sed socat which xz" +RRECOMMENDS_${PN}-ptest += "kernel-module-scsi-debug" +RDEPENDS_${PN}-swaponoff = "${PN}-swapon ${PN}-swapoff" +ALLOW_EMPTY_${PN}-swaponoff = "1" + +#SYSTEMD_PACKAGES = "${PN}-uuidd ${PN}-fstrim" +SYSTEMD_SERVICE_${PN}-uuidd = "uuidd.socket uuidd.service" +SYSTEMD_AUTO_ENABLE_${PN}-uuidd = "disable" +SYSTEMD_SERVICE_${PN}-fstrim = "fstrim.timer fstrim.service" +SYSTEMD_AUTO_ENABLE_${PN}-fstrim = "disable" + +do_install () { + # with ccache the timestamps on compiled files may + # end up earlier than on their inputs, this allows + # for the resultant compilation in the install step. + oe_runmake 'CC=${CC}' 'LD=${LD}' \ + 'LDFLAGS=${LDFLAGS}' 'DESTDIR=${D}' install + + mkdir -p ${D}${base_bindir} + + sbinprogs="agetty ctrlaltdel cfdisk vipw vigr" + sbinprogs_a="pivot_root hwclock mkswap losetup swapon swapoff fdisk fsck blkid blockdev fstrim sulogin switch_root nologin" + binprogs_a="dmesg getopt kill more umount mount login su mountpoint" + + if [ "${base_sbindir}" != "${sbindir}" ]; then + mkdir -p ${D}${base_sbindir} + for p in $sbinprogs $sbinprogs_a; do + if [ -f "${D}${sbindir}/$p" ]; then + mv "${D}${sbindir}/$p" "${D}${base_sbindir}/$p" + fi + done + fi + + if [ "${base_bindir}" != "${bindir}" ]; then + mkdir -p ${D}${base_bindir} + for p in $binprogs_a; do + if [ -f "${D}${bindir}/$p" ]; then + mv "${D}${bindir}/$p" "${D}${base_bindir}/$p" + fi + done + fi + + install -d ${D}${sysconfdir}/default/ + echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall + + rm -f ${D}${bindir}/chkdupexe +} + +do_install_append_class-target () { + if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then + install -d ${D}${sysconfdir}/pam.d + install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser + install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l + # Required for "su -" aka "su --login" because + # otherwise it uses "other", which has "auth pam_deny.so" + # and thus prevents the operation. + ln -s su ${D}${sysconfdir}/pam.d/su-l + fi +} +# nologin causes a conflict with shadow-native +# kill causes a conflict with coreutils-native (if ${bindir}==${base_bindir}) +do_install_append_class-native () { + rm -f ${D}${base_sbindir}/nologin + rm -f ${D}${base_bindir}/kill +} + +# dm-verity support introduces a circular build dependency, so util-linux-libuuid is split out for target builds +# Need to build libuuid for uuidgen, but then delete it and let the other recipe ship it +do_install_append () { + rm -rf ${D}${includedir}/uuid ${D}${libdir}/pkgconfig/uuid.pc ${D}${libdir}/libuuid* ${D}${base_libdir}/libuuid* +} + +ALTERNATIVE_PRIORITY = "80" + +ALTERNATIVE_LINK_NAME[blkid] = "${base_sbindir}/blkid" +ALTERNATIVE_LINK_NAME[blockdev] = "${base_sbindir}/blockdev" +ALTERNATIVE_LINK_NAME[cal] = "${bindir}/cal" +ALTERNATIVE_LINK_NAME[chrt] = "${bindir}/chrt" +ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg" +ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject" +ALTERNATIVE_LINK_NAME[fallocate] = "${bindir}/fallocate" +ALTERNATIVE_LINK_NAME[fdisk] = "${base_sbindir}/fdisk" +ALTERNATIVE_LINK_NAME[flock] = "${bindir}/flock" +ALTERNATIVE_LINK_NAME[fsck] = "${base_sbindir}/fsck" +ALTERNATIVE_LINK_NAME[fsfreeze] = "${sbindir}/fsfreeze" +ALTERNATIVE_LINK_NAME[fstrim] = "${base_sbindir}/fstrim" +ALTERNATIVE_LINK_NAME[getopt] = "${base_bindir}/getopt" +ALTERNATIVE_${PN}-agetty = "getty" +ALTERNATIVE_LINK_NAME[getty] = "${base_sbindir}/getty" +ALTERNATIVE_TARGET[getty] = "${base_sbindir}/agetty" +ALTERNATIVE_LINK_NAME[hexdump] = "${bindir}/hexdump" +ALTERNATIVE_LINK_NAME[hwclock] = "${base_sbindir}/hwclock" +ALTERNATIVE_LINK_NAME[ionice] = "${bindir}/ionice" +ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill" +ALTERNATIVE_${PN}-last = "last lastb" +ALTERNATIVE_LINK_NAME[last] = "${bindir}/last" +ALTERNATIVE_LINK_NAME[lastb] = "${bindir}/lastb" +ALTERNATIVE_LINK_NAME[logger] = "${bindir}/logger" +ALTERNATIVE_LINK_NAME[losetup] = "${base_sbindir}/losetup" +ALTERNATIVE_LINK_NAME[mesg] = "${bindir}/mesg" +ALTERNATIVE_LINK_NAME[mkswap] = "${base_sbindir}/mkswap" +ALTERNATIVE_LINK_NAME[mcookie] = "${bindir}/mcookie" +ALTERNATIVE_LINK_NAME[more] = "${base_bindir}/more" +ALTERNATIVE_LINK_NAME[mount] = "${base_bindir}/mount" +ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint" +ALTERNATIVE_LINK_NAME[nologin] = "${base_sbindir}/nologin" +ALTERNATIVE_LINK_NAME[nsenter] = "${bindir}/nsenter" +ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root" +ALTERNATIVE_LINK_NAME[prlimit] = "${bindir}/prlimit" +ALTERNATIVE_LINK_NAME[readprofile] = "${sbindir}/readprofile" +ALTERNATIVE_LINK_NAME[renice] = "${bindir}/renice" +ALTERNATIVE_LINK_NAME[rev] = "${bindir}/rev" +ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill" +ALTERNATIVE_LINK_NAME[rtcwake] = "${sbindir}/rtcwake" +ALTERNATIVE_LINK_NAME[setpriv] = "${bindir}/setpriv" +ALTERNATIVE_LINK_NAME[setsid] = "${bindir}/setsid" +ALTERNATIVE_LINK_NAME[su] = "${base_bindir}/su" +ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin" +ALTERNATIVE_LINK_NAME[swapoff] = "${base_sbindir}/swapoff" +ALTERNATIVE_LINK_NAME[swapon] = "${base_sbindir}/swapon" +ALTERNATIVE_LINK_NAME[switch_root] = "${base_sbindir}/switch_root" +ALTERNATIVE_LINK_NAME[taskset] = "${bindir}/taskset" +ALTERNATIVE_LINK_NAME[umount] = "${base_bindir}/umount" +ALTERNATIVE_LINK_NAME[unshare] = "${bindir}/unshare" +ALTERNATIVE_LINK_NAME[utmpdump] = "${bindir}/utmpdump" +ALTERNATIVE_LINK_NAME[uuidgen] = "${bindir}/uuidgen" +ALTERNATIVE_LINK_NAME[wall] = "${bindir}/wall" + +BBCLASSEXTEND = "native nativesdk" + +PTEST_BINDIR = "1" +do_compile_ptest() { + oe_runmake buildtest-TESTS +} + +do_install_ptest() { + mkdir -p ${D}${PTEST_PATH}/tests/ts + find . -name 'test*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; + find ./.libs -name 'sample*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; + find ./.libs -name 'test*' -maxdepth 1 -type f -perm -111 -exec cp {} ${D}${PTEST_PATH} \; + + cp ${S}/tests/*.sh ${D}${PTEST_PATH}/tests/ + cp -pR ${S}/tests/expected ${D}${PTEST_PATH}/tests/expected + cp -pR ${S}/tests/ts ${D}${PTEST_PATH}/tests/ + cp ${WORKDIR}/build/config.h ${D}${PTEST_PATH} + + # The original paths of executables to be tested point to a local folder containing + # the executables. We want to test the installed executables, not the local copies. + # So strip the paths, the executables will be located via "which" + sed -i \ + -e '/^TS_CMD/ s|$top_builddir/||g' \ + -e '/^TS_HELPER/ s|$top_builddir|${PTEST_PATH}|g' \ + ${D}${PTEST_PATH}/tests/commands.sh + + # Change 'if [ ! -x "$1" ]' to 'if [ ! -x "`which $1 2>/dev/null`"]' + sed -i -e \ + '/^\tif[[:space:]]\[[[:space:]]![[:space:]]-x[[:space:]]"$1"/s|$1|`which $1 2>/dev/null`|g' \ + ${D}${PTEST_PATH}/tests/functions.sh + + # Running "kill" without the the complete path would use the shell's built-in kill + sed -i -e \ + '/^TS_CMD_KILL/ s|kill|${PTEST_PATH}/bin/kill|g' \ + ${D}${PTEST_PATH}/tests/commands.sh + + + sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest + +} diff --git a/poky/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch b/poky/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch index a9a8eb630..72713c3b1 100644 --- a/poky/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch +++ b/poky/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch @@ -1,4 +1,4 @@ -From 5fb6355c7dd00c97fe90e805ace075b6e9b6952d Mon Sep 17 00:00:00 2001 +From c7a79e753e50f1a5f248ba5812c61616f2f524f0 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 10 May 2019 16:47:38 +0200 Subject: [PATCH] Do not init tables from dpkg configuration diff --git a/poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch b/poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch index 34d0c4b4c..1517b4785 100644 --- a/poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch +++ b/poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch @@ -1,4 +1,4 @@ -From 76f8386cac7f13688b386686e0b1fc4b1b574f53 Mon Sep 17 00:00:00 2001 +From 393ac20efc66bfc000a2457e093e369b934c5a50 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 21 May 2020 20:13:25 +0000 Subject: [PATCH] Revert "always run 'dpkg --configure -a' at the end of our diff --git a/poky/meta/recipes-devtools/apt/apt_2.2.3.bb b/poky/meta/recipes-devtools/apt/apt_2.2.3.bb deleted file mode 100644 index fe00fb03c..000000000 --- a/poky/meta/recipes-devtools/apt/apt_2.2.3.bb +++ /dev/null @@ -1,135 +0,0 @@ -SUMMARY = "Advanced front-end for dpkg" -DESCRIPTION = "APT is the Advanced Package Tool, an advanced interface to the Debian packaging system which provides the apt-get program." -HOMEPAGE = "https://packages.debian.org/jessie/apt" -LICENSE = "GPLv2.0+" -SECTION = "base" - -# Triehash script taken from https://github.com/julian-klode/triehash -SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz \ - file://triehash \ - file://0001-Disable-documentation-directory-altogether.patch \ - file://0001-Fix-musl-build.patch \ - file://0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch \ - file://0001-srvrec-Keep-support-for-older-resolver.patch \ - file://0001-cmake-Do-not-build-po-files.patch \ - file://0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch \ - file://0001-aptwebserver.cc-Include-array.patch \ - " - -SRC_URI_append_class-native = " \ - file://0001-Do-not-init-tables-from-dpkg-configuration.patch \ - file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ - " - -SRC_URI_append_class-nativesdk = " \ - file://0001-Do-not-init-tables-from-dpkg-configuration.patch \ - file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ - " - -SRC_URI[sha256sum] = "2880474bc08c79f103cd30d24a9c30c78b480c65076e466d24df93b9fa05ab27" -LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -# the package is taken from snapshots.debian.org; that source is static and goes stale -# so we check the latest upstream from a directory that does get updated -UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apt/" - -inherit cmake perlnative bash-completion upstream-version-is-even useradd - -# User is added to allow apt to drop privs, will runtime warn without -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --home /nonexistent --no-create-home _apt" - -BBCLASSEXTEND = "native nativesdk" - -DEPENDS += "db gnutls lz4 zlib bzip2 xz libgcrypt xxhash" - -EXTRA_OECMAKE_append = " -DCURRENT_VENDOR=debian -DWITH_DOC=False \ - -DDPKG_DATADIR=${datadir}/dpkg \ - -DTRIEHASH_EXECUTABLE=${WORKDIR}/triehash \ - -DCMAKE_DISABLE_FIND_PACKAGE_ZSTD=True \ - -DCMAKE_DISABLE_FIND_PACKAGE_SECCOMP=True \ - -DWITH_TESTS=False \ -" - -do_configure_prepend () { - echo "set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )" >> ${WORKDIR}/toolchain.cmake - -} - -# Unfortunately apt hardcodes this all over the place -FILES_${PN} += "${prefix}/lib/dpkg ${prefix}/lib/apt" -RDEPENDS_${PN} += "bash perl dpkg" - -customize_apt_conf_sample() { - cat > ${D}${sysconfdir}/apt/apt.conf.sample << EOF -Dir "${STAGING_DIR_NATIVE}/" -{ - State "var/lib/apt/" - { - Lists "#APTCONF#/lists/"; - status "#ROOTFS#/var/lib/dpkg/status"; - }; - Cache "var/cache/apt/" - { - Archives "archives/"; - pkgcache ""; - srcpkgcache ""; - }; - Bin "${STAGING_BINDIR_NATIVE}/" - { - methods "${STAGING_LIBDIR}/apt/methods/"; - gzip "/bin/gzip"; - dpkg "dpkg"; - dpkg-source "dpkg-source"; - dpkg-buildpackage "dpkg-buildpackage"; - apt-get "apt-get"; - apt-cache "apt-cache"; - }; - Etc "#APTCONF#" - { - Preferences "preferences"; - }; - Log "var/log/apt"; -}; - -APT -{ - Install-Recommends "true"; - Immediate-Configure "false"; - Architecture "i586"; - Get - { - Assume-Yes "true"; - }; -}; - -Acquire -{ - AllowInsecureRepositories "true"; -}; - -DPkg::Options {"--root=#ROOTFS#";"--admindir=#ROOTFS#/var/lib/dpkg";"--force-all";"--no-debsig"}; -DPkg::Path ""; -EOF -} - -do_install_append_class-native() { - customize_apt_conf_sample -} - -do_install_append_class-nativesdk() { - customize_apt_conf_sample -} - - -do_install_append_class-target() { - #Write the correct apt-architecture to apt.conf - APT_CONF=${D}/etc/apt/apt.conf - echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF} -} - -# Avoid non-reproducible -src package -do_install_append () { - sed -i -e "s,${B},,g" \ - ${B}/apt-pkg/tagfile-keys.cc -} diff --git a/poky/meta/recipes-devtools/apt/apt_2.2.4.bb b/poky/meta/recipes-devtools/apt/apt_2.2.4.bb new file mode 100644 index 000000000..f12011141 --- /dev/null +++ b/poky/meta/recipes-devtools/apt/apt_2.2.4.bb @@ -0,0 +1,135 @@ +SUMMARY = "Advanced front-end for dpkg" +DESCRIPTION = "APT is the Advanced Package Tool, an advanced interface to the Debian packaging system which provides the apt-get program." +HOMEPAGE = "https://packages.debian.org/jessie/apt" +LICENSE = "GPLv2.0+" +SECTION = "base" + +# Triehash script taken from https://github.com/julian-klode/triehash +SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz \ + file://triehash \ + file://0001-Disable-documentation-directory-altogether.patch \ + file://0001-Fix-musl-build.patch \ + file://0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch \ + file://0001-srvrec-Keep-support-for-older-resolver.patch \ + file://0001-cmake-Do-not-build-po-files.patch \ + file://0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch \ + file://0001-aptwebserver.cc-Include-array.patch \ + " + +SRC_URI_append_class-native = " \ + file://0001-Do-not-init-tables-from-dpkg-configuration.patch \ + file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ + " + +SRC_URI_append_class-nativesdk = " \ + file://0001-Do-not-init-tables-from-dpkg-configuration.patch \ + file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ + " + +SRC_URI[sha256sum] = "6eecd04a4979bd2040b22a14571c15d342c4e1802b2023acb5aa19649b1f64ea" +LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +# the package is taken from snapshots.debian.org; that source is static and goes stale +# so we check the latest upstream from a directory that does get updated +UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apt/" + +inherit cmake perlnative bash-completion upstream-version-is-even useradd + +# User is added to allow apt to drop privs, will runtime warn without +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --home /nonexistent --no-create-home _apt" + +BBCLASSEXTEND = "native nativesdk" + +DEPENDS += "db gnutls lz4 zlib bzip2 xz libgcrypt xxhash" + +EXTRA_OECMAKE_append = " -DCURRENT_VENDOR=debian -DWITH_DOC=False \ + -DDPKG_DATADIR=${datadir}/dpkg \ + -DTRIEHASH_EXECUTABLE=${WORKDIR}/triehash \ + -DCMAKE_DISABLE_FIND_PACKAGE_ZSTD=True \ + -DCMAKE_DISABLE_FIND_PACKAGE_SECCOMP=True \ + -DWITH_TESTS=False \ +" + +do_configure_prepend () { + echo "set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )" >> ${WORKDIR}/toolchain.cmake + +} + +# Unfortunately apt hardcodes this all over the place +FILES_${PN} += "${prefix}/lib/dpkg ${prefix}/lib/apt" +RDEPENDS_${PN} += "bash perl dpkg" + +customize_apt_conf_sample() { + cat > ${D}${sysconfdir}/apt/apt.conf.sample << EOF +Dir "${STAGING_DIR_NATIVE}/" +{ + State "var/lib/apt/" + { + Lists "#APTCONF#/lists/"; + status "#ROOTFS#/var/lib/dpkg/status"; + }; + Cache "var/cache/apt/" + { + Archives "archives/"; + pkgcache ""; + srcpkgcache ""; + }; + Bin "${STAGING_BINDIR_NATIVE}/" + { + methods "${STAGING_LIBDIR}/apt/methods/"; + gzip "/bin/gzip"; + dpkg "dpkg"; + dpkg-source "dpkg-source"; + dpkg-buildpackage "dpkg-buildpackage"; + apt-get "apt-get"; + apt-cache "apt-cache"; + }; + Etc "#APTCONF#" + { + Preferences "preferences"; + }; + Log "var/log/apt"; +}; + +APT +{ + Install-Recommends "true"; + Immediate-Configure "false"; + Architecture "i586"; + Get + { + Assume-Yes "true"; + }; +}; + +Acquire +{ + AllowInsecureRepositories "true"; +}; + +DPkg::Options {"--root=#ROOTFS#";"--admindir=#ROOTFS#/var/lib/dpkg";"--force-all";"--no-debsig"}; +DPkg::Path ""; +EOF +} + +do_install_append_class-native() { + customize_apt_conf_sample +} + +do_install_append_class-nativesdk() { + customize_apt_conf_sample +} + + +do_install_append_class-target() { + #Write the correct apt-architecture to apt.conf + APT_CONF=${D}/etc/apt/apt.conf + echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF} +} + +# Avoid non-reproducible -src package +do_install_append () { + sed -i -e "s,${B},,g" \ + ${B}/apt-pkg/tagfile-keys.cc +} diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch new file mode 100644 index 000000000..d7188881d --- /dev/null +++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch @@ -0,0 +1,42 @@ +From 3d19b0fb882c5e195362a9f0909c474e60070ca0 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Fri, 18 Jun 2021 11:10:36 -0400 +Subject: [PATCH] btrfs-progs: include linux/const.h to fix build with 5.12+ + headers + +btrfs-tools compile fails with mips, musl and 5.12+ headers. + +The definition of __ALIGN_KERNEL has moved in 5.12+ kernels, so we +add an explicit include of const.h to pickup the macro: + + | make: *** [Makefile:595: mkfs.btrfs] Error 1 + | make: *** Waiting for unfinished jobs.... + | libbtrfs.a(volumes.o): in function `dev_extent_search_start': + | /usr/src/debug/btrfs-tools/5.12.1-r0/git/kernel-shared/volumes.c:464: undefined reference to `__ALIGN_KERNEL' + | collect2: error: ld returned 1 exit status + +This is safe for older kernel's as well, since the header still +exists, and is valid to include. + +Upstream-status: OE Specific [mips64 + musl + libc-headers] + +Signed-off-by: Bruce Ashfield +--- + kerncompat.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/kerncompat.h b/kerncompat.h +index df167fe6..254235bd 100644 +--- a/kerncompat.h ++++ b/kerncompat.h +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #include + +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.12.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.12.1.bb index 3fc959bf8..d0c9cf2a9 100644 --- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.12.1.bb +++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.12.1.bb @@ -18,6 +18,7 @@ DEPENDS_append_class-target = " udev" SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \ file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ + file://0001-btrfs-tools-include-linux-const.h-to-fix-build-with-.patch \ " SRCREV = "96d77fcefdd3b9fd297b5aabbce6dc43e2315ee2" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.20.2.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.20.2.bb deleted file mode 100644 index 335097d38..000000000 --- a/poky/meta/recipes-devtools/cmake/cmake-native_3.20.2.bb +++ /dev/null @@ -1,53 +0,0 @@ -require cmake.inc -inherit native - -DEPENDS += "bzip2-replacement-native xz-native zlib-native curl-native ncurses-native zstd-native" - -SRC_URI += "file://OEToolchainConfig.cmake \ - file://environment.d-cmake.sh \ - file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ - file://0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch \ - " - - -B = "${WORKDIR}/build" -do_configure[cleandirs] = "${B}" - -CMAKE_EXTRACONF = "\ - -DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \ - -DBUILD_CursesDialog=1 \ - -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ - -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=0 \ - -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ - -DHAVE_SYS_ACL_H=0 \ -" - -do_configure () { - ${S}/configure --verbose --prefix=${prefix} \ - ${@oe.utils.parallel_make_argument(d, '--parallel=%d')} \ - ${@bb.utils.contains('CCACHE', 'ccache ', '--enable-ccache', '', d)} \ - -- ${CMAKE_EXTRACONF} -} - -do_compile() { - oe_runmake -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install - - # The following codes are here because eSDK needs to provide compatibilty - # for SDK. That is, eSDK could also be used like traditional SDK. - mkdir -p ${D}${datadir}/cmake - install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ - mkdir -p ${D}${base_prefix}/environment-setup.d - install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${base_prefix}/environment-setup.d/cmake.sh -} - -do_compile[progress] = "percent" - -SYSROOT_DIRS_NATIVE += "${datadir}/cmake ${base_prefix}/environment-setup.d" diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.20.3.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.20.3.bb new file mode 100644 index 000000000..335097d38 --- /dev/null +++ b/poky/meta/recipes-devtools/cmake/cmake-native_3.20.3.bb @@ -0,0 +1,53 @@ +require cmake.inc +inherit native + +DEPENDS += "bzip2-replacement-native xz-native zlib-native curl-native ncurses-native zstd-native" + +SRC_URI += "file://OEToolchainConfig.cmake \ + file://environment.d-cmake.sh \ + file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ + file://0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch \ + " + + +B = "${WORKDIR}/build" +do_configure[cleandirs] = "${B}" + +CMAKE_EXTRACONF = "\ + -DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \ + -DBUILD_CursesDialog=1 \ + -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ + -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=0 \ + -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ + -DHAVE_SYS_ACL_H=0 \ +" + +do_configure () { + ${S}/configure --verbose --prefix=${prefix} \ + ${@oe.utils.parallel_make_argument(d, '--parallel=%d')} \ + ${@bb.utils.contains('CCACHE', 'ccache ', '--enable-ccache', '', d)} \ + -- ${CMAKE_EXTRACONF} +} + +do_compile() { + oe_runmake +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install + + # The following codes are here because eSDK needs to provide compatibilty + # for SDK. That is, eSDK could also be used like traditional SDK. + mkdir -p ${D}${datadir}/cmake + install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ + mkdir -p ${D}${base_prefix}/environment-setup.d + install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${base_prefix}/environment-setup.d/cmake.sh +} + +do_compile[progress] = "percent" + +SYSROOT_DIRS_NATIVE += "${datadir}/cmake ${base_prefix}/environment-setup.d" diff --git a/poky/meta/recipes-devtools/cmake/cmake.inc b/poky/meta/recipes-devtools/cmake/cmake.inc index be4376062..0987c01c8 100644 --- a/poky/meta/recipes-devtools/cmake/cmake.inc +++ b/poky/meta/recipes-devtools/cmake/cmake.inc @@ -21,7 +21,7 @@ SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \ file://0004-Fail-silently-if-system-Qt-installation-is-broken.patch \ " -SRC_URI[sha256sum] = "aecf6ecb975179eb3bb6a4a50cae192d41e92b9372b02300f9e8f1d5f559544e" +SRC_URI[sha256sum] = "4d008ac3461e271fcfac26a05936f77fc7ab64402156fb371d41284851a651b8" UPSTREAM_CHECK_REGEX = "cmake-(?P\d+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.20.2.bb b/poky/meta/recipes-devtools/cmake/cmake_3.20.2.bb deleted file mode 100644 index 64c92b89f..000000000 --- a/poky/meta/recipes-devtools/cmake/cmake_3.20.2.bb +++ /dev/null @@ -1,53 +0,0 @@ -require cmake.inc - -inherit cmake bash-completion - -DEPENDS += "curl expat zlib libarchive xz ncurses bzip2" - -SRC_URI_append_class-nativesdk = " \ - file://OEToolchainConfig.cmake \ - file://environment.d-cmake.sh \ - file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ -" - -# Strip ${prefix} from ${docdir}, set result into docdir_stripped -python () { - prefix=d.getVar("prefix") - docdir=d.getVar("docdir") - - if not docdir.startswith(prefix): - bb.fatal('docdir must contain prefix as its prefix') - - docdir_stripped = docdir[len(prefix):] - if len(docdir_stripped) > 0 and docdir_stripped[0] == '/': - docdir_stripped = docdir_stripped[1:] - - d.setVar("docdir_stripped", docdir_stripped) -} - -EXTRA_OECMAKE=" \ - -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-${CMAKE_MAJOR_VERSION} \ - -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ - -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ - -DKWSYS_CHAR_IS_SIGNED=1 \ - -DBUILD_CursesDialog=0 \ - -DKWSYS_LFS_WORKS=1 \ -" - -do_install_append_class-nativesdk() { - mkdir -p ${D}${datadir}/cmake - install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ - - mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d - install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh -} - -FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}" - -FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION} ${datadir}/cmake ${datadir}/aclocal ${datadir}/emacs ${datadir}/vim" -FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}" -FILES_${PN}-dev = "" - -BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.20.3.bb b/poky/meta/recipes-devtools/cmake/cmake_3.20.3.bb new file mode 100644 index 000000000..64c92b89f --- /dev/null +++ b/poky/meta/recipes-devtools/cmake/cmake_3.20.3.bb @@ -0,0 +1,53 @@ +require cmake.inc + +inherit cmake bash-completion + +DEPENDS += "curl expat zlib libarchive xz ncurses bzip2" + +SRC_URI_append_class-nativesdk = " \ + file://OEToolchainConfig.cmake \ + file://environment.d-cmake.sh \ + file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ +" + +# Strip ${prefix} from ${docdir}, set result into docdir_stripped +python () { + prefix=d.getVar("prefix") + docdir=d.getVar("docdir") + + if not docdir.startswith(prefix): + bb.fatal('docdir must contain prefix as its prefix') + + docdir_stripped = docdir[len(prefix):] + if len(docdir_stripped) > 0 and docdir_stripped[0] == '/': + docdir_stripped = docdir_stripped[1:] + + d.setVar("docdir_stripped", docdir_stripped) +} + +EXTRA_OECMAKE=" \ + -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-${CMAKE_MAJOR_VERSION} \ + -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ + -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ + -DKWSYS_CHAR_IS_SIGNED=1 \ + -DBUILD_CursesDialog=0 \ + -DKWSYS_LFS_WORKS=1 \ +" + +do_install_append_class-nativesdk() { + mkdir -p ${D}${datadir}/cmake + install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ + + mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d + install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh +} + +FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}" + +FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION} ${datadir}/cmake ${datadir}/aclocal ${datadir}/emacs ${datadir}/vim" +FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}" +FILES_${PN}-dev = "" + +BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch index 4b844574e..b63fe5394 100644 --- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch +++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch @@ -5,21 +5,24 @@ Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin - +Signed-off-by: Wang Mingyu --- src/python/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt -index ecc262d..a86514c 100644 +index a31b14d..01fd8ca 100644 --- a/src/python/CMakeLists.txt +++ b/src/python/CMakeLists.txt @@ -14,7 +14,7 @@ if (NOT SKBUILD) FIND_PACKAGE(PythonLibs 3 REQUIRED) endif (NOT SKBUILD) --EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) -+#EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) +-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from sysconfig import get_path; stdout.write(get_path('platlib'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) ++#EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from sysconfig import get_path; stdout.write(get_path('platlib'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH}) MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.2.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.2.bb deleted file mode 100644 index 76bdd6983..000000000 --- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.2.bb +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION = "C implementation of createrepo." -HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ - file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ - " - -SRCREV = "8eff6ed99f5fd0ba844cb8513963435caab5fd3c" - -S = "${WORKDIR}/git" - -DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm" -DEPENDS_append_class-native = " file-replacement-native" - -inherit cmake pkgconfig bash-completion distutils3-base - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF -DWITH_LIBMODULEMD=OFF" - -BBCLASSEXTEND = "native nativesdk" - -# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/createrepo_c \ - RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ - MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc - create_wrapper ${D}/${bindir}/modifyrepo_c \ - MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc -} - -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/createrepo_c \ - RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ - MAGIC=${SDKPATHNATIVE}${datadir}/misc/magic.mgc - create_wrapper ${D}/${bindir}/modifyrepo_c \ - MAGIC=${SDKPATHNATIVE}${datadir}/misc/magic.mgc - rm -rf ${D}/etc -} diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.3.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.3.bb new file mode 100644 index 000000000..481c4bff2 --- /dev/null +++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.3.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "C implementation of createrepo." +HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ + file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + " + +SRCREV = "8196982f0974c268898a5550d61b374bd58103e2" + +S = "${WORKDIR}/git" + +DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm" +DEPENDS_append_class-native = " file-replacement-native" + +inherit cmake pkgconfig bash-completion distutils3-base + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF -DWITH_LIBMODULEMD=OFF" + +BBCLASSEXTEND = "native nativesdk" + +# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ + MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc + create_wrapper ${D}/${bindir}/modifyrepo_c \ + MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc +} + +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ + MAGIC=${SDKPATHNATIVE}${datadir}/misc/magic.mgc + create_wrapper ${D}/${bindir}/modifyrepo_c \ + MAGIC=${SDKPATHNATIVE}${datadir}/misc/magic.mgc + rm -rf ${D}/etc +} diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb deleted file mode 100644 index 7aebaf1b6..000000000 --- a/poky/meta/recipes-devtools/elfutils/elfutils_0.183.bb +++ /dev/null @@ -1,165 +0,0 @@ -SUMMARY = "Utilities and libraries for handling compiled object files" -HOMEPAGE = "https://sourceware.org/elfutils" -DESCRIPTION = "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux." -SECTION = "base" -LICENSE = "GPLv2 & GPLv2+ & LGPLv3+ & GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://debuginfod/debuginfod-client.c;endline=27;md5=f8e9d171c401c493ec45a0b2992ea2ed \ - " -DEPENDS = "zlib virtual/libintl" -DEPENDS_append_libc-musl = " argp-standalone fts musl-obstack " -# The Debian patches below are from: -# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz -SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ - file://0001-dso-link-change.patch \ - file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \ - file://0003-fixheadercheck.patch \ - file://0006-Fix-build-on-aarch64-musl.patch \ - file://0001-libasm-may-link-with-libbz2-if-found.patch \ - file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \ - file://0001-skip-the-test-when-gcc-not-deployed.patch \ - file://run-ptest \ - file://ptest.patch \ - file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \ - file://0001-add-support-for-ipkg-to-debuginfod.cxx.patch \ - file://0001-debuginfod-debuginfod-client.c-correct-string-format.patch \ - " -SRC_URI_append_libc-musl = " \ - file://0002-musl-libs.patch \ - file://0003-musl-utils.patch \ - file://0004-Fix-error-on-musl.patch \ - file://0015-config-eu.am-do-not-use-Werror.patch \ - " -SRC_URI[sha256sum] = "c3637c208d309d58714a51e61e63f1958808fead882e9b607506a29e5474f2c5" - -inherit autotools gettext ptest pkgconfig - -EXTRA_OECONF = "--program-prefix=eu-" - -DEPENDS_BZIP2 = "bzip2-replacement-native" -DEPENDS_BZIP2_class-target = "bzip2" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'debuginfod', 'debuginfod libdebuginfod', '', d)}" -PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}" -PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz" -PACKAGECONFIG[libdebuginfod] = "--enable-libdebuginfod,--disable-libdebuginfod,curl" -PACKAGECONFIG[debuginfod] = "--enable-debuginfod,--disable-debuginfod,libarchive sqlite3 libmicrohttpd" - -RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils iproute2-ss bsdtar" - -EXTRA_OECONF_append_class-target = " --disable-tests-rpath" - -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" - -do_compile_ptest() { - cd ${B}/tests - oe_runmake buildtest-TESTS oecheck -} - -do_install_ptest() { - if [ ${PTEST_ENABLED} = "1" ]; then - # copy the files which needed by the cases - TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip" - install -d -m 755 ${D}${PTEST_PATH}/src - install -d -m 755 ${D}${PTEST_PATH}/libelf - install -d -m 755 ${D}${PTEST_PATH}/libdw - install -d -m 755 ${D}${PTEST_PATH}/libdwfl - install -d -m 755 ${D}${PTEST_PATH}/libdwelf - install -d -m 755 ${D}${PTEST_PATH}/libasm - install -d -m 755 ${D}${PTEST_PATH}/libcpu - install -d -m 755 ${D}${PTEST_PATH}/libebl - for test_file in ${TEST_FILES}; do - if [ -f ${B}/src/${test_file} ]; then - cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src - fi - done - cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so - cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so - cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so - cp ${B}/libcpu/libcpu.a ${D}${PTEST_PATH}/libcpu/ - cp ${B}/libebl/libebl.a ${D}${PTEST_PATH}/libebl/ - cp ${S}/libelf/*.h ${D}${PTEST_PATH}/libelf/ - cp ${S}/libdw/*.h ${D}${PTEST_PATH}/libdw/ - cp ${S}/libdwfl/*.h ${D}${PTEST_PATH}/libdwfl/ - cp ${S}/libdwelf/*.h ${D}${PTEST_PATH}/libdwelf/ - cp ${S}/libasm/*.h ${D}${PTEST_PATH}/libasm/ - cp -r ${S}/tests/ ${D}${PTEST_PATH} - cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests - cp -r ${B}/config.h ${D}${PTEST_PATH} - cp -r ${B}/backends ${D}${PTEST_PATH} - cp -r ${B}/debuginfod ${D}${PTEST_PATH} - sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile - find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} - fi -} - -EXTRA_OEMAKE_class-native = "" -EXTRA_OEMAKE_class-nativesdk = "" - -BBCLASSEXTEND = "native nativesdk" - -# Package utilities separately -PACKAGES =+ "${PN}-binutils libelf libasm libdw libdebuginfod" - -# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+ -# according to NEWS file: -# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone -# programs. There is now also a formal CONTRIBUTING document describing how to -# submit patches." -LICENSE_${PN}-binutils = "GPLv3+" -LICENSE_${PN} = "GPLv3+" -LICENSE_libelf = "GPLv2 | LGPLv3+" -LICENSE_libasm = "GPLv2 | LGPLv3+" -LICENSE_libdw = "GPLv2 | LGPLv3+" -LICENSE_libdebuginfod = "GPLv2+ | LGPLv3+" - -FILES_${PN}-binutils = "\ - ${bindir}/eu-addr2line \ - ${bindir}/eu-ld \ - ${bindir}/eu-nm \ - ${bindir}/eu-readelf \ - ${bindir}/eu-size \ - ${bindir}/eu-strip" - -FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*" -FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*" -FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*" -FILES_libdebuginfod = "${libdir}/libdebuginfod-${PV}.so ${libdir}/libdebuginfod.so.*" -# Some packages have the version preceeding the .so instead properly -# versioned .so., so we need to reorder and repackage. -#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so" -#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so" - -# The package contains symlinks that trip up insane -INSANE_SKIP_${MLPREFIX}libdw = "dev-so" -# The nlist binary in the tests uses explicitly minimal compiler flags -INSANE_SKIP_${PN}-ptest += "ldflags" - -# avoid stripping some generated binaries otherwise some of the tests such as test-nlist, -# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail -INHIBIT_PACKAGE_STRIP_FILES = "\ - ${PKGD}${PTEST_PATH}/tests/test-nlist \ - ${PKGD}${PTEST_PATH}/tests/elfstrmerge \ - ${PKGD}${PTEST_PATH}/tests/backtrace-child \ - ${PKGD}${PTEST_PATH}/tests/backtrace-data \ - ${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \ - ${PKGD}${PTEST_PATH}/tests/deleted \ - ${PKGD}${PTEST_PATH}/tests/dwfllines \ - ${PKGD}${PTEST_PATH}/src/strip \ - ${PKGD}${PTEST_PATH}/src/addr2line \ - ${PKGD}${PTEST_PATH}/src/elfcmp \ - ${PKGD}${PTEST_PATH}/src/objdump \ - ${PKGD}${PTEST_PATH}/src/readelf \ - ${PKGD}${PTEST_PATH}/src/nm \ - ${PKGD}${PTEST_PATH}/src/elflint \ - ${PKGD}${PTEST_PATH}/src/elfclassify \ - ${PKGD}${PTEST_PATH}/src/stack \ - ${PKGD}${PTEST_PATH}/src/unstrip \ - ${PKGD}${PTEST_PATH}/libelf/libelf.so \ - ${PKGD}${PTEST_PATH}/libdw/libdw.so \ - ${PKGD}${PTEST_PATH}/libasm/libasm.so \ - ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \ - ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \ -" - -PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1 libdebuginfod.so.1" diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb new file mode 100644 index 000000000..b1ffbc18b --- /dev/null +++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb @@ -0,0 +1,164 @@ +SUMMARY = "Utilities and libraries for handling compiled object files" +HOMEPAGE = "https://sourceware.org/elfutils" +DESCRIPTION = "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux." +SECTION = "base" +LICENSE = "GPLv2 & GPLv2+ & LGPLv3+ & GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://debuginfod/debuginfod-client.c;endline=27;md5=f8e9d171c401c493ec45a0b2992ea2ed \ + " +DEPENDS = "zlib virtual/libintl" +DEPENDS_append_libc-musl = " argp-standalone fts musl-obstack " +# The Debian patches below are from: +# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz +SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ + file://0001-dso-link-change.patch \ + file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \ + file://0003-fixheadercheck.patch \ + file://0006-Fix-build-on-aarch64-musl.patch \ + file://0001-libasm-may-link-with-libbz2-if-found.patch \ + file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \ + file://0001-skip-the-test-when-gcc-not-deployed.patch \ + file://run-ptest \ + file://ptest.patch \ + file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \ + file://0001-debuginfod-debuginfod-client.c-correct-string-format.patch \ + " +SRC_URI_append_libc-musl = " \ + file://0002-musl-libs.patch \ + file://0003-musl-utils.patch \ + file://0004-Fix-error-on-musl.patch \ + file://0015-config-eu.am-do-not-use-Werror.patch \ + " +SRC_URI[sha256sum] = "dc8d3e74ab209465e7f568e1b3bb9a5a142f8656e2b57d10049a73da2ae6b5a6" + +inherit autotools gettext ptest pkgconfig + +EXTRA_OECONF = "--program-prefix=eu-" + +DEPENDS_BZIP2 = "bzip2-replacement-native" +DEPENDS_BZIP2_class-target = "bzip2" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'debuginfod', 'debuginfod libdebuginfod', '', d)}" +PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}" +PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz" +PACKAGECONFIG[libdebuginfod] = "--enable-libdebuginfod,--disable-libdebuginfod,curl" +PACKAGECONFIG[debuginfod] = "--enable-debuginfod,--disable-debuginfod,libarchive sqlite3 libmicrohttpd" + +RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils iproute2-ss bsdtar" + +EXTRA_OECONF_append_class-target = " --disable-tests-rpath" + +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" + +do_compile_ptest() { + cd ${B}/tests + oe_runmake buildtest-TESTS oecheck +} + +do_install_ptest() { + if [ ${PTEST_ENABLED} = "1" ]; then + # copy the files which needed by the cases + TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip" + install -d -m 755 ${D}${PTEST_PATH}/src + install -d -m 755 ${D}${PTEST_PATH}/libelf + install -d -m 755 ${D}${PTEST_PATH}/libdw + install -d -m 755 ${D}${PTEST_PATH}/libdwfl + install -d -m 755 ${D}${PTEST_PATH}/libdwelf + install -d -m 755 ${D}${PTEST_PATH}/libasm + install -d -m 755 ${D}${PTEST_PATH}/libcpu + install -d -m 755 ${D}${PTEST_PATH}/libebl + for test_file in ${TEST_FILES}; do + if [ -f ${B}/src/${test_file} ]; then + cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src + fi + done + cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so + cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so + cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so + cp ${B}/libcpu/libcpu.a ${D}${PTEST_PATH}/libcpu/ + cp ${B}/libebl/libebl.a ${D}${PTEST_PATH}/libebl/ + cp ${S}/libelf/*.h ${D}${PTEST_PATH}/libelf/ + cp ${S}/libdw/*.h ${D}${PTEST_PATH}/libdw/ + cp ${S}/libdwfl/*.h ${D}${PTEST_PATH}/libdwfl/ + cp ${S}/libdwelf/*.h ${D}${PTEST_PATH}/libdwelf/ + cp ${S}/libasm/*.h ${D}${PTEST_PATH}/libasm/ + cp -r ${S}/tests/ ${D}${PTEST_PATH} + cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests + cp -r ${B}/config.h ${D}${PTEST_PATH} + cp -r ${B}/backends ${D}${PTEST_PATH} + cp -r ${B}/debuginfod ${D}${PTEST_PATH} + sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile + find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} + fi +} + +EXTRA_OEMAKE_class-native = "" +EXTRA_OEMAKE_class-nativesdk = "" + +BBCLASSEXTEND = "native nativesdk" + +# Package utilities separately +PACKAGES =+ "${PN}-binutils libelf libasm libdw libdebuginfod" + +# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+ +# according to NEWS file: +# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone +# programs. There is now also a formal CONTRIBUTING document describing how to +# submit patches." +LICENSE_${PN}-binutils = "GPLv3+" +LICENSE_${PN} = "GPLv3+" +LICENSE_libelf = "GPLv2 | LGPLv3+" +LICENSE_libasm = "GPLv2 | LGPLv3+" +LICENSE_libdw = "GPLv2 | LGPLv3+" +LICENSE_libdebuginfod = "GPLv2+ | LGPLv3+" + +FILES_${PN}-binutils = "\ + ${bindir}/eu-addr2line \ + ${bindir}/eu-ld \ + ${bindir}/eu-nm \ + ${bindir}/eu-readelf \ + ${bindir}/eu-size \ + ${bindir}/eu-strip" + +FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*" +FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*" +FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*" +FILES_libdebuginfod = "${libdir}/libdebuginfod-${PV}.so ${libdir}/libdebuginfod.so.*" +# Some packages have the version preceeding the .so instead properly +# versioned .so., so we need to reorder and repackage. +#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so" +#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so" + +# The package contains symlinks that trip up insane +INSANE_SKIP_${MLPREFIX}libdw = "dev-so" +# The nlist binary in the tests uses explicitly minimal compiler flags +INSANE_SKIP_${PN}-ptest += "ldflags" + +# avoid stripping some generated binaries otherwise some of the tests such as test-nlist, +# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail +INHIBIT_PACKAGE_STRIP_FILES = "\ + ${PKGD}${PTEST_PATH}/tests/test-nlist \ + ${PKGD}${PTEST_PATH}/tests/elfstrmerge \ + ${PKGD}${PTEST_PATH}/tests/backtrace-child \ + ${PKGD}${PTEST_PATH}/tests/backtrace-data \ + ${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \ + ${PKGD}${PTEST_PATH}/tests/deleted \ + ${PKGD}${PTEST_PATH}/tests/dwfllines \ + ${PKGD}${PTEST_PATH}/src/strip \ + ${PKGD}${PTEST_PATH}/src/addr2line \ + ${PKGD}${PTEST_PATH}/src/elfcmp \ + ${PKGD}${PTEST_PATH}/src/objdump \ + ${PKGD}${PTEST_PATH}/src/readelf \ + ${PKGD}${PTEST_PATH}/src/nm \ + ${PKGD}${PTEST_PATH}/src/elflint \ + ${PKGD}${PTEST_PATH}/src/elfclassify \ + ${PKGD}${PTEST_PATH}/src/stack \ + ${PKGD}${PTEST_PATH}/src/unstrip \ + ${PKGD}${PTEST_PATH}/libelf/libelf.so \ + ${PKGD}${PTEST_PATH}/libdw/libdw.so \ + ${PKGD}${PTEST_PATH}/libasm/libasm.so \ + ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \ + ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \ +" + +PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1 libdebuginfod.so.1" diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-add-support-for-ipkg-to-debuginfod.cxx.patch b/poky/meta/recipes-devtools/elfutils/files/0001-add-support-for-ipkg-to-debuginfod.cxx.patch deleted file mode 100644 index 5f82afef0..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/0001-add-support-for-ipkg-to-debuginfod.cxx.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 571416bf5b5ef319df6d9c79e46680920487e4a7 Mon Sep 17 00:00:00 2001 -From: dorindabassey -Date: Sat, 19 Dec 2020 01:11:46 +0100 -Subject: [PATCH] add support for ipkg to debuginfod.cxx - -added support for ipkg to the debuginfod scanner. 0.182 only supports RPM and scan .debs, with this patch, debuginfod scanner would be able to scan .ipk - -Upstream-status: Submitted [https://sourceware.org/pipermail/elfutils-devel/2020q4/003357.html] - -Signed-off-by: dorindabassey - ---- - debuginfod/debuginfod.cxx | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx -index b34eacc..a8915f2 100644 ---- a/debuginfod/debuginfod.cxx -+++ b/debuginfod/debuginfod.cxx -@@ -484,11 +484,13 @@ parse_opt (int key, char *arg, - { - scan_archives[".deb"]="dpkg-deb --fsys-tarfile"; - scan_archives[".ddeb"]="dpkg-deb --fsys-tarfile"; -+ scan_archives[".ipk"]="dpkg-deb --fsys-tarfile"; - } - else - { - scan_archives[".deb"]="(bsdtar -O -x -f - data.tar.xz)<"; - scan_archives[".ddeb"]="(bsdtar -O -x -f - data.tar.xz)<"; -+ scan_archives[".ipk"]="(bsdtar -O -x -f - data.tar.xz)<"; - } - // .udeb too? - break; diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch index 5bd6ba961..5b225c532 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-debuginfod-client.c-correct-string-format.patch @@ -1,4 +1,4 @@ -From 14dfe84943b8f9e6f504536d8735ef6356210b40 Mon Sep 17 00:00:00 2001 +From c3055ce9eb32d0d24abc5cea5e1d231c499312a7 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Mon, 19 Apr 2021 23:29:10 +0200 Subject: [PATCH] debuginfod/debuginfod-client.c: correct string format on @@ -16,15 +16,34 @@ Upstream-Status: Pending Signed-off-by: Alexander Kanavin Signed-off-by: Khem Raj + --- - debuginfod/debuginfod-client.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) + debuginfod/debuginfod-client.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c -index de26af5..39e28f2 100644 +index ee7eda2..083ec2c 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c -@@ -229,7 +229,7 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path) +@@ -226,7 +226,7 @@ debuginfod_config_cache(char *config_path, + if (fd < 0) + return -errno; + +- if (dprintf(fd, "%ld", cache_config_default_s) < 0) ++ if (dprintf(fd, "%jd", (intmax_t)cache_config_default_s) < 0) + return -errno; + } + +@@ -234,7 +234,7 @@ debuginfod_config_cache(char *config_path, + FILE *config_file = fopen(config_path, "r"); + if (config_file) + { +- if (fscanf(config_file, "%ld", &cache_config) != 1) ++ if (fscanf(config_file, "%jd", (intmax_t*)(&cache_config)) != 1) + cache_config = cache_config_default_s; + fclose(config_file); + } +@@ -267,7 +267,7 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path) if (fd < 0) return -errno; @@ -33,7 +52,7 @@ index de26af5..39e28f2 100644 return -errno; /* init max age config file. */ -@@ -237,7 +237,7 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path) +@@ -275,7 +275,7 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path) && (fd = open(maxage_path, O_CREAT | O_RDWR, DEFFILEMODE)) < 0) return -errno; @@ -42,33 +61,3 @@ index de26af5..39e28f2 100644 return -errno; return 0; -@@ -263,7 +263,7 @@ debuginfod_clean_cache(debuginfod_client *c, - if (interval_file == NULL) - return -errno; - -- int rc = fprintf(interval_file, "%ld", cache_clean_default_interval_s); -+ int rc = fprintf(interval_file, "%jd", (intmax_t)cache_clean_default_interval_s); - fclose(interval_file); - - if (rc < 0) -@@ -275,7 +275,7 @@ debuginfod_clean_cache(debuginfod_client *c, - interval_file = fopen(interval_path, "r"); - if (interval_file) - { -- if (fscanf(interval_file, "%ld", &clean_interval) != 1) -+ if (fscanf(interval_file, "%jd", (intmax_t*)(&clean_interval)) != 1) - clean_interval = cache_clean_default_interval_s; - fclose(interval_file); - } -@@ -291,7 +291,7 @@ debuginfod_clean_cache(debuginfod_client *c, - max_unused_file = fopen(max_unused_path, "r"); - if (max_unused_file) - { -- if (fscanf(max_unused_file, "%ld", &max_unused_age) != 1) -+ if (fscanf(max_unused_file, "%jd", (intmax_t*)(&max_unused_age)) != 1) - max_unused_age = cache_default_max_unused_age_s; - fclose(max_unused_file); - } --- -2.31.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch b/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch index b373940d3..c7360da7a 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch @@ -1,4 +1,4 @@ -From 18c527991deee93170a887b6da622560d5606913 Mon Sep 17 00:00:00 2001 +From 0f4667f0bb4b000d74ade07e90bd690b7217a19d Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 23 Aug 2019 10:18:47 +0800 Subject: [PATCH] musl-libs @@ -82,7 +82,7 @@ index ecb4d01..edc85e3 100644 #include diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c -index 6edb27f..f331e3c 100644 +index c0f8dfa..aa78033 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -50,6 +50,7 @@ diff --git a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch index 65593be32..2e379cdba 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch @@ -1,4 +1,4 @@ -From 2dab1a02a3cfd80629f3e0f380805a5e58dd0ac3 Mon Sep 17 00:00:00 2001 +From 2f94d488bf3daaa6a8548ee77120fc2506a9bbe3 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 23 Aug 2019 10:19:48 +0800 Subject: [PATCH] musl-utils @@ -39,7 +39,7 @@ index e117166..8326f6c 100644 /* State of -D/-U flags. */ extern bool arlib_deterministic_output; diff --git a/src/elfcompress.c b/src/elfcompress.c -index 1b5b1e3..21c9024 100644 +index 2c6d91b..608646e 100644 --- a/src/elfcompress.c +++ b/src/elfcompress.c @@ -37,6 +37,13 @@ @@ -57,7 +57,7 @@ index 1b5b1e3..21c9024 100644 ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; diff --git a/src/strip.c b/src/strip.c -index 7a5d4e4..81a0d57 100644 +index 70fc8c0..d035d9e 100644 --- a/src/strip.c +++ b/src/strip.c @@ -46,6 +46,13 @@ @@ -75,7 +75,7 @@ index 7a5d4e4..81a0d57 100644 /* Name and version of program. */ diff --git a/src/unstrip.c b/src/unstrip.c -index 8580329..d547487 100644 +index e488e81..0e44456 100644 --- a/src/unstrip.c +++ b/src/unstrip.c @@ -52,6 +52,15 @@ diff --git a/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch b/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch index 8e1e97041..2fa60c333 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch @@ -1,4 +1,4 @@ -From ce3b1403bd88261b5461a9dcb7d6d6be9185703e Mon Sep 17 00:00:00 2001 +From 72819106d0e5666d172d39c24c19e4e7a3b8be0e Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 1 May 2019 22:15:03 +0100 Subject: [PATCH] Fix error on musl: @@ -19,7 +19,7 @@ Signed-off-by: Richard Purdie 1 file changed, 5 insertions(+) diff --git a/tests/elfstrmerge.c b/tests/elfstrmerge.c -index abbdf3f..bd90f4d 100644 +index 197c6a5..3683672 100644 --- a/tests/elfstrmerge.c +++ b/tests/elfstrmerge.c @@ -33,6 +33,11 @@ diff --git a/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch index 205362626..5cd6fffc2 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch @@ -1,4 +1,4 @@ -From dfe11e043cd8ea0b0f0252bcff9f5a6b98c0ecd3 Mon Sep 17 00:00:00 2001 +From cfced441d4a6f2eca51d29c52240275bd6f54e49 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Mon, 22 Jun 2020 21:35:16 +0000 Subject: [PATCH] config/eu.am: do not use -Werror @@ -16,22 +16,22 @@ Signed-off-by: Alexander Kanavin 1 file changed, 2 deletions(-) diff --git a/config/eu.am b/config/eu.am -index 6c3c444..3bc0dc9 100644 +index 2c3e457..8fb0411 100644 --- a/config/eu.am +++ b/config/eu.am -@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ - -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ +@@ -89,7 +89,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ + -Wold-style-definition -Wstrict-prototypes $(TRAMPOLINES_WARNING) \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ - $(if $($(*F)_no_Werror),,-Werror) \ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ - $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ -@@ -83,7 +82,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \ - -Wtrampolines \ + $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \ +@@ -99,7 +98,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \ + $(TRAMPOLINES_WARNING) \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ - $(if $($(*F)_no_Werror),,-Werror) \ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ - $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ + $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \ diff --git a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.2.1.bb b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.2.1.bb deleted file mode 100644 index 6435fea68..000000000 --- a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.2.1.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Tools for erofs filesystems" -LICENSE = "GPLv2+" -SECTION = "base" -LIC_FILES_CHKSUM = "file://COPYING;md5=94fa01670a2a8f2d3ab2de15004e0848" -HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README" - -SRCREV = "d1f4953edfcf4f51c71ba91586e21fc6ce9f6db9" -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git" - -S = "${WORKDIR}/git" - -DEPENDS = "util-linux-libuuid" - -inherit pkgconfig autotools - -PACKAGECONFIG ??= "lz4" -PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" - -EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb new file mode 100644 index 000000000..d07d5c436 --- /dev/null +++ b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.3.bb @@ -0,0 +1,23 @@ +SUMMARY = "Tools for erofs filesystems" +LICENSE = "GPLv2+" +SECTION = "base" +LIC_FILES_CHKSUM = "file://COPYING;md5=94fa01670a2a8f2d3ab2de15004e0848" +HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README" + +SRCREV = "2cd522105ea771ec30b269cd4c57e2265a4d6349" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git" + +UPSTREAM_CHECK_GITTAGREGEX = "v(?P(\d+(\.\d+)+))" + +S = "${WORKDIR}/git" + +DEPENDS = "util-linux-libuuid" + +inherit pkgconfig autotools + +PACKAGECONFIG ??= "lz4" +PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" + +EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.7.bb b/poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.7.bb deleted file mode 100644 index a697b74f9..000000000 --- a/poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.7.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Utility for modifying GPT disk partitioning" -DESCRIPTION = "GPT fdisk is a disk partitioning tool loosely modeled on Linux fdisk, but used for modifying GUID Partition Table (GPT) disks. The related FixParts utility fixes some common problems on Master Boot Record (MBR) disks." -HOMEPAGE = "https://sourceforge.net/projects/gptfdisk/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -DEPENDS = "util-linux" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${PV}/${BP}.tar.gz \ - file://0001-gptcurses-correctly-include-curses.h.patch \ - " -SRC_URI[sha256sum] = "754004b7f85b279287c7ac3c0469b1d7e0eae043a97a2e587b0560ca5f3828c0" - -UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/gptfdisk/files/gptfdisk/" -UPSTREAM_CHECK_REGEX = "/gptfdisk/(?P(\d+[\.\-_]*)+)/" - -EXTRA_OEMAKE = "'CC=${CC}' 'CXX=${CXX}' gdisk fixparts ${PACKAGECONFIG_CONFARGS}" - -PACKAGECONFIG ??= "ncurses popt" -PACKAGECONFIG[ncurses] = "cgdisk,,ncurses" -PACKAGECONFIG[popt] = "sgdisk,,popt" - -do_install() { - install -d ${D}${sbindir} - for f in cgdisk sgdisk; do - if [ -x $f ]; then - install -m 0755 $f ${D}${sbindir} - fi - done - install -m 0755 gdisk ${D}${sbindir} - install -m 0755 fixparts ${D}${sbindir} -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.8.bb b/poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.8.bb new file mode 100644 index 000000000..16fe54096 --- /dev/null +++ b/poky/meta/recipes-devtools/fdisk/gptfdisk_1.0.8.bb @@ -0,0 +1,35 @@ +SUMMARY = "Utility for modifying GPT disk partitioning" +DESCRIPTION = "GPT fdisk is a disk partitioning tool loosely modeled on Linux fdisk, but used for modifying GUID Partition Table (GPT) disks. The related FixParts utility fixes some common problems on Master Boot Record (MBR) disks." +HOMEPAGE = "https://sourceforge.net/projects/gptfdisk/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +DEPENDS = "util-linux" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${PV}/${BP}.tar.gz \ + file://0001-gptcurses-correctly-include-curses.h.patch \ + " +SRC_URI[sha256sum] = "95d19856f004dabc4b8c342b2612e8d0a9eebdd52004297188369f152e9dc6df" + +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/gptfdisk/files/gptfdisk/" +UPSTREAM_CHECK_REGEX = "/gptfdisk/(?P(\d+[\.\-_]*)+)/" + +EXTRA_OEMAKE = "'CC=${CC}' 'CXX=${CXX}' gdisk fixparts ${PACKAGECONFIG_CONFARGS}" + +PACKAGECONFIG ??= "ncurses popt" +PACKAGECONFIG[ncurses] = "cgdisk,,ncurses" +PACKAGECONFIG[popt] = "sgdisk,,popt" + +do_install() { + install -d ${D}${sbindir} + for f in cgdisk sgdisk; do + if [ -x $f ]; then + install -m 0755 $f ${D}${sbindir} + fi + done + install -m 0755 gdisk ${D}${sbindir} + install -m 0755 fixparts ${D}${sbindir} +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/gcc/gcc-11.1.inc b/poky/meta/recipes-devtools/gcc/gcc-11.1.inc index bf29879de..c21242af5 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-11.1.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-11.1.inc @@ -68,7 +68,10 @@ SRC_URI = "\ file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \ file://0036-mingw32-Enable-operation_not_supported.patch \ file://0037-libatomic-Do-not-enforce-march-on-aarch64.patch \ - file://0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch \ + file://0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch \ + file://0038-arc-Update-64bit-move-split-patterns.patch \ + file://0039-arc-Fix-u-maddhisi-patterns.patch \ + file://0040-arc-Update-doloop_end-patterns.patch \ " SRC_URI[sha256sum] = "4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf" SRC_URI[backports.sha256sum] = "69274bebd6c069a13443d4af61070e854740a639ec4d66eedf3e80070363587b" diff --git a/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc b/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc index a64c4caf0..dc7f458b2 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -40,6 +40,7 @@ EXTRA_OECONF = "\ ${@get_gcc_mips_plt_setting(bb, d)} \ ${@get_gcc_ppc_plt_settings(bb, d)} \ ${@get_gcc_multiarch_setting(bb, d)} \ + --enable-standard-branch-protection \ " # glibc version is a minimum controlling whether features are enabled. diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch deleted file mode 100644 index a3e31e4f9..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch +++ /dev/null @@ -1,76 +0,0 @@ -This change breaks installation on baremetal targets, so whilst the cause is -investigated revert the commit. - -Upstream-Status: Inappropriate -Signed-off-by: Ross Burton - -From 8ec52bd0ba2141ef0bcc6f93e26a23d662b40f78 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Wed, 26 May 2021 19:54:29 +0100 -Subject: [PATCH] Revert "libstdc++: Install libstdc++*-gdb.py more robustly - [PR 99453]" - -This reverts commit dbb87d6a9c37c8eca80d77782717a8144515c16d. ---- - libstdc++-v3/python/Makefile.am | 20 ++++++++++++++++---- - libstdc++-v3/python/Makefile.in | 14 ++++++++++++-- - 2 files changed, 28 insertions(+), 6 deletions(-) - -diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am -index 0c2b207b86e..01517a2a522 100644 ---- a/libstdc++-v3/python/Makefile.am -+++ b/libstdc++-v3/python/Makefile.am -@@ -44,9 +44,21 @@ gdb.py: hook.in Makefile - install-data-local: gdb.py - @$(mkdir_p) $(DESTDIR)$(toolexeclibdir) - ## We want to install gdb.py as SOMETHING-gdb.py. SOMETHING is the --## full name of the final library. We use the libtool .la file to get --## the correct name. -- @libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ -- $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ -+## full name of the final library. We want to ignore symlinks, the -+## .la file, and any previous -gdb.py file. This is inherently -+## fragile, but there does not seem to be a better option, because -+## libtool hides the real names from us. -+ @here=`pwd`; cd $(DESTDIR)$(toolexeclibdir); \ -+ for file in libstdc++.*; do \ -+ case $$file in \ -+ *-gdb.py) ;; \ -+ *.la) ;; \ -+ *) if test -h $$file; then \ -+ continue; \ -+ fi; \ -+ libname=$$file;; \ -+ esac; \ -+ done; \ -+ cd $$here; \ - echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ - $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py -diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in -index 2efe0b96a19..c35dbe55961 100644 ---- a/libstdc++-v3/python/Makefile.in -+++ b/libstdc++-v3/python/Makefile.in -@@ -607,8 +607,18 @@ gdb.py: hook.in Makefile - - install-data-local: gdb.py - @$(mkdir_p) $(DESTDIR)$(toolexeclibdir) -- @libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ -- $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ -+ @here=`pwd`; cd $(DESTDIR)$(toolexeclibdir); \ -+ for file in libstdc++.*; do \ -+ case $$file in \ -+ *-gdb.py) ;; \ -+ *.la) ;; \ -+ *) if test -h $$file; then \ -+ continue; \ -+ fi; \ -+ libname=$$file;; \ -+ esac; \ -+ done; \ -+ cd $$here; \ - echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ - $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py - --- -2.25.1 - diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch new file mode 100644 index 000000000..d82f533cb --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch @@ -0,0 +1,57 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From ad4c21f0f59b52357019148ec94d767aa2acd8f2 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Tue, 1 Jun 2021 11:00:16 +0100 +Subject: [PATCH] libstdc++: Fix installation of python hooks [PR 99453] + +When no shared library is installed, the new code to determine the name +of the -gdb.py file yields an empty string. Use the name of the static +library in that case. + +libstdc++-v3/ChangeLog: + + PR libstdc++/99453 + * python/Makefile.am: Use archive name for printer hook if no + dynamic library name is available. + * python/Makefile.in: Regenerate. + +(cherry picked from commit 9f7bc160b4a0f27dce248d1226e3ae7104b0e67b) +--- + libstdc++-v3/python/Makefile.am | 4 ++++ + libstdc++-v3/python/Makefile.in | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am +index 0c2b207b86e..8efefa5725c 100644 +--- a/libstdc++-v3/python/Makefile.am ++++ b/libstdc++-v3/python/Makefile.am +@@ -48,5 +48,9 @@ install-data-local: gdb.py + ## the correct name. + @libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ + $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ ++ if [ -z "$$libname" ]; then \ ++ libname=`sed -ne "/^old_library=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ ++ $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ ++ fi; \ + echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ + $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py +diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in +index 2efe0b96a19..9904a9197de 100644 +--- a/libstdc++-v3/python/Makefile.in ++++ b/libstdc++-v3/python/Makefile.in +@@ -609,6 +609,10 @@ install-data-local: gdb.py + @$(mkdir_p) $(DESTDIR)$(toolexeclibdir) + @libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ + $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ ++ if [ -z "$$libname" ]; then \ ++ libname=`sed -ne "/^old_library=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ ++ $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ ++ fi; \ + echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ + $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py + +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch b/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch index 789f57343..8184e6874 100644 --- a/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch +++ b/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch @@ -1,4 +1,4 @@ -From 28e7c312b1292ca216d4b54ec9f6b7ac055907a8 Mon Sep 17 00:00:00 2001 +From 2fa5c93641b75a662839c1b6eee172b6c481c70e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 29 Mar 2013 09:10:06 +0400 Subject: [PATCH] 64-bit multilib hack. @@ -19,7 +19,7 @@ and be able to patch these entries with a complete set of correct paths but this don't have such code at this point. This is something the target gcc recipe should do and override these platform defaults in its build config. -Do same for riscv64 and aarch64 +Do same for riscv64, aarch64 & arc RP 15/8/11 @@ -30,11 +30,12 @@ Signed-off-by: Elvis Dowson Signed-off-by: Mark Hatle --- gcc/config/aarch64/t-aarch64-linux | 8 ++++---- + gcc/config/arc/t-multilib-linux | 4 ++-- gcc/config/i386/t-linux64 | 6 ++---- gcc/config/mips/t-linux64 | 10 +++------- gcc/config/riscv/t-linux | 6 ++++-- gcc/config/rs6000/t-linux64 | 5 ++--- - 5 files changed, 15 insertions(+), 20 deletions(-) + 6 files changed, 17 insertions(+), 22 deletions(-) diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux index 241b0ef20b6..a7dadb2d64f 100644 @@ -53,6 +54,22 @@ index 241b0ef20b6..a7dadb2d64f 100644 -MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) +#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) +diff --git a/gcc/config/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux +index fc3fff640a2..d58e28f6df8 100644 +--- a/gcc/config/arc/t-multilib-linux ++++ b/gcc/config/arc/t-multilib-linux +@@ -16,9 +16,9 @@ + # along with GCC; see the file COPYING3. If not see + # . + +-MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400 ++#MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400 + +-MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400 ++#MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400 + + # Aliases: + MULTILIB_MATCHES += mcpu?arc700=mA7 diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 index d288b093522..7b5980a9d21 100644 --- a/gcc/config/i386/t-linux64 diff --git a/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch new file mode 100644 index 000000000..37fe95d71 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch @@ -0,0 +1,290 @@ +From 0061fabeb9393c362601486105202cfe837a5a68 Mon Sep 17 00:00:00 2001 +From: Claudiu Zissulescu +Date: Wed, 9 Jun 2021 12:12:57 +0300 +Subject: [PATCH] arc: Update 64bit move split patterns. + +ARCv2HS can use a limited number of instructions to implement 64bit +moves. The VADD2 is used as a 64bit move, the LDD/STD are 64 bit loads +and stores. All those instructions are not baseline, hence we need to +provide alternatives when they are not available or cannot be generate +due to instruction restriction. + +This patch is cleaning up those move patterns, and updates splits +instruction lengths. + +This is a backport from mainline gcc. + +gcc/ +2021-06-09 Claudiu Zissulescu + + * config/arc/arc-protos.h (arc_split_move_p): New prototype. + * config/arc/arc.c (arc_split_move_p): New function. + (arc_split_move): Clean up. + * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p. + (movdf_insn): Likewise. + * config/arc/simdext.md (mov_insn): Likewise. + +Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=0061fabeb9393c362601486105202cfe837a5a68] + +Signed-off-by: Claudiu Zissulescu +(cherry picked from commit c0ba7a8af5366c37241f20e8be41e362f7260389) +Signed-off-by: Alexey Brodkin +--- + gcc/config/arc/arc-protos.h | 1 + + gcc/config/arc/arc.c | 44 ++++++++++++---------- + gcc/config/arc/arc.md | 91 +++++++++------------------------------------ + gcc/config/arc/simdext.md | 38 ++++--------------- + 4 files changed, 52 insertions(+), 122 deletions(-) + +diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h +index 1f56a0d82e4..62d7e45d29d 100644 +--- a/gcc/config/arc/arc-protos.h ++++ b/gcc/config/arc/arc-protos.h +@@ -50,6 +50,7 @@ extern void arc_split_ior (rtx *); + extern bool arc_check_mov_const (HOST_WIDE_INT ); + extern bool arc_split_mov_const (rtx *); + extern bool arc_can_use_return_insn (void); ++extern bool arc_split_move_p (rtx *); + #endif /* RTX_CODE */ + + extern bool arc_ccfsm_branch_deleted_p (void); +diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c +index 3201c3fefd7..db541bc11f5 100644 +--- a/gcc/config/arc/arc.c ++++ b/gcc/config/arc/arc.c +@@ -10129,6 +10129,31 @@ arc_process_double_reg_moves (rtx *operands) + return true; + } + ++ ++/* Check if we need to split a 64bit move. We do not need to split it if we can ++ use vadd2 or ldd/std instructions. */ ++ ++bool ++arc_split_move_p (rtx *operands) ++{ ++ machine_mode mode = GET_MODE (operands[0]); ++ ++ if (TARGET_LL64 ++ && ((memory_operand (operands[0], mode) ++ && (even_register_operand (operands[1], mode) ++ || satisfies_constraint_Cm3 (operands[1]))) ++ || (memory_operand (operands[1], mode) ++ && even_register_operand (operands[0], mode)))) ++ return false; ++ ++ if (TARGET_PLUS_QMACW ++ && even_register_operand (operands[0], mode) ++ && even_register_operand (operands[1], mode)) ++ return false; ++ ++ return true; ++} ++ + /* operands 0..1 are the operands of a 64 bit move instruction. + split it into two moves with operands 2/3 and 4/5. */ + +@@ -10146,25 +10171,6 @@ arc_split_move (rtx *operands) + return; + } + +- if (TARGET_LL64 +- && ((memory_operand (operands[0], mode) +- && (even_register_operand (operands[1], mode) +- || satisfies_constraint_Cm3 (operands[1]))) +- || (memory_operand (operands[1], mode) +- && even_register_operand (operands[0], mode)))) +- { +- emit_move_insn (operands[0], operands[1]); +- return; +- } +- +- if (TARGET_PLUS_QMACW +- && even_register_operand (operands[0], mode) +- && even_register_operand (operands[1], mode)) +- { +- emit_move_insn (operands[0], operands[1]); +- return; +- } +- + if (TARGET_PLUS_QMACW + && GET_CODE (operands[1]) == CONST_VECTOR) + { +diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md +index 7a52551eef5..91a838a38e4 100644 +--- a/gcc/config/arc/arc.md ++++ b/gcc/config/arc/arc.md +@@ -1329,47 +1329,20 @@ core_3, archs4x, archs4xd, archs4xd_slow" + "register_operand (operands[0], DImode) + || register_operand (operands[1], DImode) + || (satisfies_constraint_Cm3 (operands[1]) +- && memory_operand (operands[0], DImode))" +- "* +-{ +- switch (which_alternative) +- { +- default: +- return \"#\"; +- +- case 0: +- if (TARGET_PLUS_QMACW +- && even_register_operand (operands[0], DImode) +- && even_register_operand (operands[1], DImode)) +- return \"vadd2%?\\t%0,%1,0\"; +- return \"#\"; +- +- case 2: +- if (TARGET_LL64 +- && memory_operand (operands[1], DImode) +- && even_register_operand (operands[0], DImode)) +- return \"ldd%U1%V1 %0,%1%&\"; +- return \"#\"; +- +- case 3: +- if (TARGET_LL64 +- && memory_operand (operands[0], DImode) +- && (even_register_operand (operands[1], DImode) +- || satisfies_constraint_Cm3 (operands[1]))) +- return \"std%U0%V0 %1,%0\"; +- return \"#\"; +- } +-}" +- "&& reload_completed" ++ && memory_operand (operands[0], DImode))" ++ "@ ++ vadd2\\t%0,%1,0 ++ # ++ ldd%U1%V1\\t%0,%1 ++ std%U0%V0\\t%1,%0" ++ "&& reload_completed && arc_split_move_p (operands)" + [(const_int 0)] + { + arc_split_move (operands); + DONE; + } + [(set_attr "type" "move,move,load,store") +- ;; ??? The ld/st values could be 4 if it's [reg,bignum]. +- (set_attr "length" "8,16,*,*")]) +- ++ (set_attr "length" "8,16,16,16")]) + + ;; Floating point move insns. + +@@ -1408,50 +1381,22 @@ core_3, archs4x, archs4xd, archs4xd_slow" + (define_insn_and_split "*movdf_insn" + [(set (match_operand:DF 0 "move_dest_operand" "=D,r,r,r,r,m") + (match_operand:DF 1 "move_double_src_operand" "r,D,r,E,m,r"))] +- "register_operand (operands[0], DFmode) +- || register_operand (operands[1], DFmode)" +- "* +-{ +- switch (which_alternative) +- { +- default: +- return \"#\"; +- +- case 2: +- if (TARGET_PLUS_QMACW +- && even_register_operand (operands[0], DFmode) +- && even_register_operand (operands[1], DFmode)) +- return \"vadd2%?\\t%0,%1,0\"; +- return \"#\"; +- +- case 4: +- if (TARGET_LL64 +- && ((even_register_operand (operands[0], DFmode) +- && memory_operand (operands[1], DFmode)) +- || (memory_operand (operands[0], DFmode) +- && even_register_operand (operands[1], DFmode)))) +- return \"ldd%U1%V1 %0,%1%&\"; +- return \"#\"; +- +- case 5: +- if (TARGET_LL64 +- && ((even_register_operand (operands[0], DFmode) +- && memory_operand (operands[1], DFmode)) +- || (memory_operand (operands[0], DFmode) +- && even_register_operand (operands[1], DFmode)))) +- return \"std%U0%V0 %1,%0\"; +- return \"#\"; +- } +-}" +- "reload_completed" ++ "(register_operand (operands[0], DFmode) ++ || register_operand (operands[1], DFmode))" ++ "@ ++ # ++ # ++ vadd2\\t%0,%1,0 ++ # ++ ldd%U1%V1\\t%0,%1 ++ std%U0%V0\\t%1,%0" ++ "&& reload_completed && arc_split_move_p (operands)" + [(const_int 0)] + { + arc_split_move (operands); + DONE; + } + [(set_attr "type" "move,move,move,move,load,store") +- (set_attr "predicable" "no,no,no,yes,no,no") +- ;; ??? The ld/st values could be 16 if it's [reg,bignum]. + (set_attr "length" "4,16,8,16,16,16")]) + + (define_insn_and_split "*movdf_insn_nolrsr" +diff --git a/gcc/config/arc/simdext.md b/gcc/config/arc/simdext.md +index f0900757452..36f41a5c3d0 100644 +--- a/gcc/config/arc/simdext.md ++++ b/gcc/config/arc/simdext.md +@@ -1402,41 +1402,19 @@ + (match_operand:VWH 1 "general_operand" "i,r,m,r"))] + "(register_operand (operands[0], mode) + || register_operand (operands[1], mode))" +- "* +-{ +- switch (which_alternative) +- { +- default: +- return \"#\"; +- +- case 1: +- if (TARGET_PLUS_QMACW +- && even_register_operand (operands[0], mode) +- && even_register_operand (operands[1], mode)) +- return \"vadd2%?\\t%0,%1,0\"; +- return \"#\"; +- +- case 2: +- if (TARGET_LL64) +- return \"ldd%U1%V1 %0,%1\"; +- return \"#\"; +- +- case 3: +- if (TARGET_LL64) +- return \"std%U0%V0 %1,%0\"; +- return \"#\"; +- } +-}" +- "reload_completed" ++ "@ ++ # ++ vadd2\\t%0,%1,0 ++ ldd%U1%V1\\t%0,%1 ++ std%U0%V0\\t%1,%0" ++ "&& reload_completed && arc_split_move_p (operands)" + [(const_int 0)] + { + arc_split_move (operands); + DONE; + } +- [(set_attr "type" "move,multi,load,store") +- (set_attr "predicable" "no,no,no,no") +- (set_attr "iscompact" "false,false,false,false") +- ]) ++ [(set_attr "type" "move,move,load,store") ++ (set_attr "length" "16,8,16,16")]) + + (define_expand "movmisalign" + [(set (match_operand:VWH 0 "general_operand" "") +-- +2.16.2 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch new file mode 100644 index 000000000..9c5a2b8b3 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch @@ -0,0 +1,127 @@ +From 4186b7e93be73f8d68dc0fcc00a4cc8cc83e99a8 Mon Sep 17 00:00:00 2001 +From: Claudiu Zissulescu +Date: Wed, 9 Jun 2021 12:12:57 +0300 +Subject: [PATCH] arc: Fix (u)maddhisi patterns + +Rework the (u)maddhisi4 patterns and use VMAC2H(U) instruction instead +of the 64bit MAC(U) instruction. +This fixes the next execute.exp failures: + arith-rand-ll.c -O2 execution test + arith-rand-ll.c -O3 execution test + pr78726.c -O2 execution test + pr78726.c -O3 execution test + +gcc/ +2021-06-09 Claudiu Zissulescu + + * config/arc/arc.md (maddhisi4): Use VMAC2H instruction. + (machi): New pattern. + (umaddhisi4): Use VMAC2HU instruction. + (umachi): New pattern. + +Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=4186b7e93be73f8d68dc0fcc00a4cc8cc83e99a8] + +Signed-off-by: Claudiu Zissulescu +(cherry picked from commit dd4778a59b4693777c732075021375e19eee6a76) +Signed-off-by: Alexey Brodkin +--- + gcc/config/arc/arc.md | 66 ++++++++++++++++++++++++++++++++------------------- + 1 file changed, 41 insertions(+), 25 deletions(-) + +diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md +index 91a838a38e4..2a7e087ff72 100644 +--- a/gcc/config/arc/arc.md ++++ b/gcc/config/arc/arc.md +@@ -6053,48 +6053,64 @@ core_3, archs4x, archs4xd, archs4xd_slow" + + ;; MAC and DMPY instructions + +-; Use MAC instruction to emulate 16bit mac. ++; Use VMAC2H(U) instruction to emulate scalar 16bit mac. + (define_expand "maddhisi4" + [(match_operand:SI 0 "register_operand" "") + (match_operand:HI 1 "register_operand" "") + (match_operand:HI 2 "extend_operand" "") + (match_operand:SI 3 "register_operand" "")] +- "TARGET_PLUS_DMPY" ++ "TARGET_PLUS_MACD" + "{ +- rtx acc_reg = gen_rtx_REG (DImode, ACC_REG_FIRST); +- rtx tmp1 = gen_reg_rtx (SImode); +- rtx tmp2 = gen_reg_rtx (SImode); +- rtx accl = gen_lowpart (SImode, acc_reg); +- +- emit_move_insn (accl, operands[3]); +- emit_insn (gen_rtx_SET (tmp1, gen_rtx_SIGN_EXTEND (SImode, operands[1]))); +- emit_insn (gen_rtx_SET (tmp2, gen_rtx_SIGN_EXTEND (SImode, operands[2]))); +- emit_insn (gen_mac (tmp1, tmp2)); +- emit_move_insn (operands[0], accl); ++ rtx acc_reg = gen_rtx_REG (SImode, ACC_REG_FIRST); ++ ++ emit_move_insn (acc_reg, operands[3]); ++ emit_insn (gen_machi (operands[1], operands[2])); ++ emit_move_insn (operands[0], acc_reg); + DONE; + }") + +-; The same for the unsigned variant, but using MACU instruction. ++(define_insn "machi" ++ [(set (reg:SI ARCV2_ACC) ++ (plus:SI ++ (mult:SI (sign_extend:SI (match_operand:HI 0 "register_operand" "%r")) ++ (sign_extend:SI (match_operand:HI 1 "register_operand" "r"))) ++ (reg:SI ARCV2_ACC)))] ++ "TARGET_PLUS_MACD" ++ "vmac2h\\t0,%0,%1" ++ [(set_attr "length" "4") ++ (set_attr "type" "multi") ++ (set_attr "predicable" "no") ++ (set_attr "cond" "nocond")]) ++ ++; The same for the unsigned variant, but using VMAC2HU instruction. + (define_expand "umaddhisi4" + [(match_operand:SI 0 "register_operand" "") + (match_operand:HI 1 "register_operand" "") +- (match_operand:HI 2 "extend_operand" "") ++ (match_operand:HI 2 "register_operand" "") + (match_operand:SI 3 "register_operand" "")] +- "TARGET_PLUS_DMPY" ++ "TARGET_PLUS_MACD" + "{ +- rtx acc_reg = gen_rtx_REG (DImode, ACC_REG_FIRST); +- rtx tmp1 = gen_reg_rtx (SImode); +- rtx tmp2 = gen_reg_rtx (SImode); +- rtx accl = gen_lowpart (SImode, acc_reg); +- +- emit_move_insn (accl, operands[3]); +- emit_insn (gen_rtx_SET (tmp1, gen_rtx_ZERO_EXTEND (SImode, operands[1]))); +- emit_insn (gen_rtx_SET (tmp2, gen_rtx_ZERO_EXTEND (SImode, operands[2]))); +- emit_insn (gen_macu (tmp1, tmp2)); +- emit_move_insn (operands[0], accl); ++ rtx acc_reg = gen_rtx_REG (SImode, ACC_REG_FIRST); ++ ++ emit_move_insn (acc_reg, operands[3]); ++ emit_insn (gen_umachi (operands[1], operands[2])); ++ emit_move_insn (operands[0], acc_reg); + DONE; + }") + ++(define_insn "umachi" ++ [(set (reg:SI ARCV2_ACC) ++ (plus:SI ++ (mult:SI (zero_extend:SI (match_operand:HI 0 "register_operand" "%r")) ++ (zero_extend:SI (match_operand:HI 1 "register_operand" "r"))) ++ (reg:SI ARCV2_ACC)))] ++ "TARGET_PLUS_MACD" ++ "vmac2hu\\t0,%0,%1" ++ [(set_attr "length" "4") ++ (set_attr "type" "multi") ++ (set_attr "predicable" "no") ++ (set_attr "cond" "nocond")]) ++ + (define_expand "maddsidi4" + [(match_operand:DI 0 "register_operand" "") + (match_operand:SI 1 "register_operand" "") +-- +2.16.2 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch new file mode 100644 index 000000000..5f0bf8df8 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch @@ -0,0 +1,105 @@ +From 5a9b6a004f89fdd95b0470e1324dc4dee8c41d24 Mon Sep 17 00:00:00 2001 +From: Claudiu Zissulescu +Date: Wed, 9 Jun 2021 12:12:57 +0300 +Subject: [PATCH] arc: Update doloop_end patterns + +ARC processor can use LP instruction to implement zero overlay loops. +The current inplementation doesn't handle the unlikely situation when +the loop iterator is located in memory. Refurbish the loop_end insn +pattern into a define_insn_and_split pattern. + +gcc/ +2021-07-09 Claudiu Zissulescu + + * config/arc/arc.md (loop_end): Change it to + define_insn_and_split. + +Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5a9b6a004f89fdd95b0470e1324dc4dee8c41d24] + +Signed-off-by: Claudiu Zissulescu +(cherry picked from commit 174e75a210753b68de0f2c398a13ace0f512e35b) +Signed-off-by: Alexey Brodkin +--- + gcc/config/arc/arc.md | 46 ++++++++++++++++++++-------------------------- + 1 file changed, 20 insertions(+), 26 deletions(-) + +diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md +index 2a7e087ff72..d704044c13f 100644 +--- a/gcc/config/arc/arc.md ++++ b/gcc/config/arc/arc.md +@@ -4986,7 +4986,7 @@ core_3, archs4x, archs4xd, archs4xd_slow" + (define_expand "doloop_end" + [(parallel [(set (pc) + (if_then_else +- (ne (match_operand 0 "" "") ++ (ne (match_operand 0 "nonimmediate_operand") + (const_int 1)) + (label_ref (match_operand 1 "" "")) + (pc))) +@@ -5012,44 +5012,38 @@ core_3, archs4x, archs4xd, archs4xd_slow" + + ;; if by any chance the lp_count is not used, then use an 'r' + ;; register, instead of going to memory. +-(define_insn "loop_end" +- [(set (pc) +- (if_then_else (ne (match_operand:SI 2 "nonimmediate_operand" "0,m") +- (const_int 1)) +- (label_ref (match_operand 1 "" "")) +- (pc))) +- (set (match_operand:SI 0 "nonimmediate_operand" "=r,m") +- (plus (match_dup 2) (const_int -1))) +- (unspec [(const_int 0)] UNSPEC_ARC_LP) +- (clobber (match_scratch:SI 3 "=X,&r"))] +- "" +- "; ZOL_END, begins @%l1" +- [(set_attr "length" "0") +- (set_attr "predicable" "no") +- (set_attr "type" "loop_end")]) +- + ;; split pattern for the very slim chance when the loop register is + ;; memory. +-(define_split ++(define_insn_and_split "loop_end" + [(set (pc) +- (if_then_else (ne (match_operand:SI 0 "memory_operand") ++ (if_then_else (ne (match_operand:SI 0 "nonimmediate_operand" "+r,!m") + (const_int 1)) +- (label_ref (match_operand 1 "")) ++ (label_ref (match_operand 1 "" "")) + (pc))) + (set (match_dup 0) (plus (match_dup 0) (const_int -1))) + (unspec [(const_int 0)] UNSPEC_ARC_LP) +- (clobber (match_scratch:SI 2))] +- "memory_operand (operands[0], SImode)" ++ (clobber (match_scratch:SI 2 "=X,&r"))] ++ "" ++ "@ ++ ; ZOL_END, begins @%l1 ++ #" ++ "reload_completed && memory_operand (operands[0], Pmode)" + [(set (match_dup 2) (match_dup 0)) +- (set (match_dup 2) (plus:SI (match_dup 2) (const_int -1))) ++ (parallel ++ [(set (reg:CC_ZN CC_REG) ++ (compare:CC_ZN (plus:SI (match_dup 2) (const_int -1)) ++ (const_int 0))) ++ (set (match_dup 2) (plus:SI (match_dup 2) (const_int -1)))]) + (set (match_dup 0) (match_dup 2)) +- (set (reg:CC CC_REG) (compare:CC (match_dup 2) (const_int 0))) + (set (pc) +- (if_then_else (ne (reg:CC CC_REG) ++ (if_then_else (ne (reg:CC_ZN CC_REG) + (const_int 0)) + (label_ref (match_dup 1)) + (pc)))] +- "") ++ "" ++ [(set_attr "length" "0,24") ++ (set_attr "predicable" "no") ++ (set_attr "type" "loop_end")]) + + (define_insn "loop_fail" + [(set (reg:SI LP_COUNT) +-- +2.16.2 + diff --git a/poky/meta/recipes-devtools/gcc/libgcc-initial.inc b/poky/meta/recipes-devtools/gcc/libgcc-initial.inc index f7d804122..06bf224f7 100644 --- a/poky/meta/recipes-devtools/gcc/libgcc-initial.inc +++ b/poky/meta/recipes-devtools/gcc/libgcc-initial.inc @@ -51,8 +51,6 @@ do_configure_prepend () { do_configure_append () { sed -i -e 's#thread_header = .*#thread_header = gthr-single.h#' ${B}/${BPN}/Makefile - sed -i -e '/^libgcc_tm_defines = $/a fp128_dec_funcs =' ${B}/${BPN}/Makefile - sed -i -e '/^libgcc_tm_defines = $/a fp128_decstr_funcs =' ${B}/${BPN}/Makefile } do_install_append () { diff --git a/poky/meta/recipes-devtools/gdb/gdb-10.2.inc b/poky/meta/recipes-devtools/gdb/gdb-10.2.inc index 0a7df54e9..0d275075e 100644 --- a/poky/meta/recipes-devtools/gdb/gdb-10.2.inc +++ b/poky/meta/recipes-devtools/gdb/gdb-10.2.inc @@ -15,5 +15,9 @@ SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \ file://0009-resolve-restrict-keyword-conflict.patch \ file://0010-Fix-invalid-sigprocmask-call.patch \ file://0011-gdbserver-ctrl-c-handling.patch \ + file://0012-arc-Add-support-for-signal-handlers.patch \ + file://0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch \ + file://0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch \ + file://0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch \ " SRC_URI[sha256sum] = "aaa1223d534c9b700a8bec952d9748ee1977513f178727e1bee520ee000b4f29" diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc b/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc index c9daf25a4..edb05b6f1 100644 --- a/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc +++ b/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc @@ -11,12 +11,13 @@ DEPENDS = "nativesdk-ncurses nativesdk-expat nativesdk-gettext \ GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'" # Overrides PACKAGECONFIG variables in gdb-common.inc -PACKAGECONFIG ??= "python readline" +PACKAGECONFIG ??= "python readline ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}" PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,nativesdk-python3, \ nativesdk-python3-core \ nativesdk-python3-codecs nativesdk-python3-netclient \ " PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,nativesdk-readline" +PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, nativesdk-elfutils" SSTATE_DUPWHITELIST += "${STAGING_DATADIR}/gdb" diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross.inc b/poky/meta/recipes-devtools/gdb/gdb-cross.inc index ebe329f6d..f8a113da8 100644 --- a/poky/meta/recipes-devtools/gdb/gdb-cross.inc +++ b/poky/meta/recipes-devtools/gdb/gdb-cross.inc @@ -5,9 +5,10 @@ DEPENDS = "expat-native ncurses-native flex-native bison-native" inherit python3native # Overrides PACKAGECONFIG variables in gdb-common.inc -PACKAGECONFIG ??= "python readline" +PACKAGECONFIG ??= "python readline ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}" PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3-native" PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,readline-native" +PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, elfutils-native" do_compile_prepend() { export STAGING_LIBDIR="${STAGING_LIBDIR_NATIVE}" diff --git a/poky/meta/recipes-devtools/gdb/gdb/0012-arc-Add-support-for-signal-handlers.patch b/poky/meta/recipes-devtools/gdb/gdb/0012-arc-Add-support-for-signal-handlers.patch new file mode 100644 index 000000000..6a98b6576 --- /dev/null +++ b/poky/meta/recipes-devtools/gdb/gdb/0012-arc-Add-support-for-signal-handlers.patch @@ -0,0 +1,218 @@ +From bfee93403b46ae4f050282b7721ba39073905c69 Mon Sep 17 00:00:00 2001 +From: Anton Kolesov +Date: Mon, 22 Aug 2016 19:39:46 +0300 +Subject: [PATCH 1/4] arc: Add support for signal handlers + +This patch adds the necessary infrastructure to handle signal frames for +ARC architecture. It is fairly similar to what any other architecture +would have. Linux specific parts will be in a separate patch. + +v2 [1]: +- Make the logic of "arc_sigtramp_frame_sniffer ()" simpler. + +[1] Tom's remark for the first version +https://sourceware.org/pipermail/gdb-patches/2020-November/173221.html + +gdb/ChangeLog: + + * arc-tdep.c (arc_make_sigtramp_frame_cache): New function. + (arc_sigtramp_frame_this_id): Likewise. + (arc_sigtramp_frame_prev_register): Likewise. + (arc_sigtramp_frame_sniffer): Likewise. + (arc_siftramp_frame_unwind): New global variable. + (arc_gdbarch_init): Use sigtramp capabilities. + (arc_dump_tdep): Print sigtramp fields. + * arc-tdep.h (gdbarch_tdep): Add sigtramp fields. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=b4e3cd0440109d0a5552d3313ccbd35c8103335b] + +Signed-off-by: Anton Kolesov +Signed-off-by: Shahab Vahedi +Signed-off-by: Alexey Brodkin +--- + gdb/arc-tdep.c | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + gdb/arc-tdep.h | 13 ++++++ + 2 files changed, 136 insertions(+) + +diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c +index 93e2fd88a9a..3356252525d 100644 +--- a/gdb/arc-tdep.c ++++ b/gdb/arc-tdep.c +@@ -1843,6 +1843,104 @@ arc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, + reg->how = DWARF2_FRAME_REG_CFA; + } + ++/* Signal trampoline frame unwinder. Allows frame unwinding to happen ++ from within signal handlers. */ ++ ++static struct arc_frame_cache * ++arc_make_sigtramp_frame_cache (struct frame_info *this_frame) ++{ ++ if (arc_debug) ++ debug_printf ("arc: sigtramp_frame_cache\n"); ++ ++ struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame)); ++ ++ /* Allocate new frame cache instance and space for saved register info. */ ++ struct arc_frame_cache *cache = FRAME_OBSTACK_ZALLOC (struct arc_frame_cache); ++ cache->saved_regs = trad_frame_alloc_saved_regs (this_frame); ++ ++ /* Get the stack pointer and use it as the frame base. */ ++ cache->prev_sp = arc_frame_base_address (this_frame, NULL); ++ ++ /* If the ARC-private target-dependent info doesn't have a table of ++ offsets of saved register contents within an OS signal context ++ structure, then there is nothing to analyze. */ ++ if (tdep->sc_reg_offset == NULL) ++ return cache; ++ ++ /* Find the address of the sigcontext structure. */ ++ CORE_ADDR addr = tdep->sigcontext_addr (this_frame); ++ ++ /* For each register, if its contents have been saved within the ++ sigcontext structure, determine the address of those contents. */ ++ gdb_assert (tdep->sc_num_regs <= (ARC_LAST_REGNUM + 1)); ++ for (int i = 0; i < tdep->sc_num_regs; i++) ++ { ++ if (tdep->sc_reg_offset[i] != ARC_OFFSET_NO_REGISTER) ++ cache->saved_regs[i].addr = addr + tdep->sc_reg_offset[i]; ++ } ++ ++ return cache; ++} ++ ++/* Implement the "this_id" frame_unwind method for signal trampoline ++ frames. */ ++ ++static void ++arc_sigtramp_frame_this_id (struct frame_info *this_frame, ++ void **this_cache, struct frame_id *this_id) ++{ ++ if (arc_debug) ++ debug_printf ("arc: sigtramp_frame_this_id\n"); ++ ++ if (*this_cache == NULL) ++ *this_cache = arc_make_sigtramp_frame_cache (this_frame); ++ ++ struct gdbarch *gdbarch = get_frame_arch (this_frame); ++ struct arc_frame_cache *cache = (struct arc_frame_cache *) *this_cache; ++ CORE_ADDR stack_addr = cache->prev_sp; ++ CORE_ADDR code_addr ++ = get_frame_register_unsigned (this_frame, gdbarch_pc_regnum (gdbarch)); ++ *this_id = frame_id_build (stack_addr, code_addr); ++} ++ ++/* Get a register from a signal handler frame. */ ++ ++static struct value * ++arc_sigtramp_frame_prev_register (struct frame_info *this_frame, ++ void **this_cache, int regnum) ++{ ++ if (arc_debug) ++ debug_printf ("arc: sigtramp_frame_prev_register (regnum = %d)\n", regnum); ++ ++ /* Make sure we've initialized the cache. */ ++ if (*this_cache == NULL) ++ *this_cache = arc_make_sigtramp_frame_cache (this_frame); ++ ++ struct arc_frame_cache *cache = (struct arc_frame_cache *) *this_cache; ++ return trad_frame_get_prev_register (this_frame, cache->saved_regs, regnum); ++} ++ ++/* Frame sniffer for signal handler frame. Only recognize a frame if we ++ have a sigcontext_addr handler in the target dependency. */ ++ ++static int ++arc_sigtramp_frame_sniffer (const struct frame_unwind *self, ++ struct frame_info *this_frame, ++ void **this_cache) ++{ ++ struct gdbarch_tdep *tdep; ++ ++ if (arc_debug) ++ debug_printf ("arc: sigtramp_frame_sniffer\n"); ++ ++ tdep = gdbarch_tdep (get_frame_arch (this_frame)); ++ ++ /* If we have a sigcontext_addr handler, then just return 1 (same as the ++ "default_frame_sniffer ()"). */ ++ return (tdep->sigcontext_addr != NULL && tdep->is_sigtramp != NULL ++ && tdep->is_sigtramp (this_frame)); ++} ++ + /* Structure defining the ARC ordinary frame unwind functions. Since we are + the fallback unwinder, we use the default frame sniffer, which always + accepts the frame. */ +@@ -1858,6 +1956,21 @@ static const struct frame_unwind arc_frame_unwind = { + NULL + }; + ++/* Structure defining the ARC signal frame unwind functions. Custom ++ sniffer is used, because this frame must be accepted only in the right ++ context. */ ++ ++static const struct frame_unwind arc_sigtramp_frame_unwind = { ++ SIGTRAMP_FRAME, ++ default_frame_unwind_stop_reason, ++ arc_sigtramp_frame_this_id, ++ arc_sigtramp_frame_prev_register, ++ NULL, ++ arc_sigtramp_frame_sniffer, ++ NULL, ++ NULL ++}; ++ + + static const struct frame_base arc_normal_base = { + &arc_frame_unwind, +@@ -2272,6 +2385,7 @@ arc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) + /* Frame unwinders and sniffers. */ + dwarf2_frame_set_init_reg (gdbarch, arc_dwarf2_frame_init_reg); + dwarf2_append_unwinders (gdbarch); ++ frame_unwind_append_unwinder (gdbarch, &arc_sigtramp_frame_unwind); + frame_unwind_append_unwinder (gdbarch, &arc_frame_unwind); + frame_base_set_default (gdbarch, &arc_normal_base); + +@@ -2350,6 +2464,15 @@ arc_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + + fprintf_unfiltered (file, "arc_dump_tdep: jb_pc = %i\n", tdep->jb_pc); ++ ++ fprintf_unfiltered (file, "arc_dump_tdep: is_sigtramp = <%s>\n", ++ host_address_to_string (tdep->is_sigtramp)); ++ fprintf_unfiltered (file, "arc_dump_tdep: sigcontext_addr = <%s>\n", ++ host_address_to_string (tdep->sigcontext_addr)); ++ fprintf_unfiltered (file, "arc_dump_tdep: sc_reg_offset = <%s>\n", ++ host_address_to_string (tdep->sc_reg_offset)); ++ fprintf_unfiltered (file, "arc_dump_tdep: sc_num_regs = %d\n", ++ tdep->sc_num_regs); + } + + /* This command accepts single argument - address of instruction to +diff --git a/gdb/arc-tdep.h b/gdb/arc-tdep.h +index 50b14905134..70fc3d95c48 100644 +--- a/gdb/arc-tdep.h ++++ b/gdb/arc-tdep.h +@@ -124,6 +124,19 @@ struct gdbarch_tdep + + /* Whether target has hardware (aka zero-delay) loops. */ + bool has_hw_loops; ++ ++ /* Detect sigtramp. */ ++ bool (*is_sigtramp) (struct frame_info *); ++ ++ /* Get address of sigcontext for sigtramp. */ ++ CORE_ADDR (*sigcontext_addr) (struct frame_info *); ++ ++ /* Offset of registers in `struct sigcontext'. */ ++ const int *sc_reg_offset; ++ ++ /* Number of registers in sc_reg_offsets. Most likely a ARC_LAST_REGNUM, ++ but in theory it could be less, so it is kept separate. */ ++ int sc_num_regs; + }; + + /* Utility functions used by other ARC-specific modules. */ +-- +2.16.2 + diff --git a/poky/meta/recipes-devtools/gdb/gdb/0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch b/poky/meta/recipes-devtools/gdb/gdb/0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch new file mode 100644 index 000000000..f699a5888 --- /dev/null +++ b/poky/meta/recipes-devtools/gdb/gdb/0013-arc-Add-support-for-signal-frames-for-Linux-targets.patch @@ -0,0 +1,232 @@ +From 16ddc17b4f403a38701e0108b02aff967900cc66 Mon Sep 17 00:00:00 2001 +From: Anton Kolesov +Date: Thu, 22 Dec 2016 21:52:16 +0300 +Subject: [PATCH 2/4] arc: Add support for signal frames for Linux targets + +Implement functions needed to unwind signal frames on ARC Linux targets. + +gdb/ChangeLog + + * arc-linux-tdep.c (arc_linux_sc_reg_offsets): New static variable. + (arc_linux_is_sigtramp): New function. + (arc_linux_sigcontext_addr): Likewise. + (arc_linux_init_osabi): Use them. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=d4af727286e3a9f177ba11677fbd3a012d36558a] + +Signed-off-by: Anton Kolesov +Signed-off-by: Shahab Vahedi +Signed-off-by: Alexey Brodkin +--- + gdb/arc-linux-tdep.c | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 181 insertions(+) + +diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c +index a7bace12623..17bb3e7b276 100644 +--- a/gdb/arc-linux-tdep.c ++++ b/gdb/arc-linux-tdep.c +@@ -33,6 +33,60 @@ + + #define REGOFF(offset) (offset * ARC_REGISTER_SIZE) + ++/* arc_linux_sc_reg_offsets[i] is the offset of register i in the `struct ++ sigcontext'. Array index is an internal GDB register number, as defined in ++ arc-tdep.h:arc_regnum. ++ ++ From and . ++ ++ The layout of this struct is tightly bound to "arc_regnum" enum ++ in arc-tdep.h. Any change of order in there, must be reflected ++ here as well. */ ++static const int arc_linux_sc_reg_offsets[] = { ++ /* R0 - R12. */ ++ REGOFF (22), REGOFF (21), REGOFF (20), REGOFF (19), ++ REGOFF (18), REGOFF (17), REGOFF (16), REGOFF (15), ++ REGOFF (14), REGOFF (13), REGOFF (12), REGOFF (11), ++ REGOFF (10), ++ ++ /* R13 - R25. */ ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ++ ++ REGOFF (9), /* R26 (GP) */ ++ REGOFF (8), /* FP */ ++ REGOFF (23), /* SP */ ++ ARC_OFFSET_NO_REGISTER, /* ILINK */ ++ ARC_OFFSET_NO_REGISTER, /* R30 */ ++ REGOFF (7), /* BLINK */ ++ ++ /* R32 - R59. */ ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ARC_OFFSET_NO_REGISTER, ++ ARC_OFFSET_NO_REGISTER, ++ ++ REGOFF (4), /* LP_COUNT */ ++ ARC_OFFSET_NO_REGISTER, /* RESERVED */ ++ ARC_OFFSET_NO_REGISTER, /* LIMM */ ++ ARC_OFFSET_NO_REGISTER, /* PCL */ ++ ++ REGOFF (6), /* PC */ ++ REGOFF (5), /* STATUS32 */ ++ REGOFF (2), /* LP_START */ ++ REGOFF (3), /* LP_END */ ++ REGOFF (1), /* BTA */ ++}; ++ + /* arc_linux_core_reg_offsets[i] is the offset in the .reg section of GDB + regnum i. Array index is an internal GDB register number, as defined in + arc-tdep.h:arc_regnum. +@@ -87,6 +141,127 @@ static const int arc_linux_core_reg_offsets[] = { + REGOFF (6) /* ERET */ + }; + ++/* Is THIS_FRAME a sigtramp function - the function that returns from ++ signal handler into normal execution flow? This is the case if the PC is ++ either at the start of, or in the middle of the two instructions: ++ ++ mov r8, __NR_rt_sigreturn ; __NR_rt_sigreturn == 139 ++ trap_s 0 ; `swi' for ARC700 ++ ++ On ARC uClibc Linux this function is called __default_rt_sa_restorer. ++ ++ Returns TRUE if this is a sigtramp frame. */ ++ ++static bool ++arc_linux_is_sigtramp (struct frame_info *this_frame) ++{ ++ struct gdbarch *gdbarch = get_frame_arch (this_frame); ++ CORE_ADDR pc = get_frame_pc (this_frame); ++ ++ if (arc_debug) ++ { ++ debug_printf ("arc-linux: arc_linux_is_sigtramp, pc=%s\n", ++ paddress(gdbarch, pc)); ++ } ++ ++ static const gdb_byte insns_be_hs[] = { ++ 0x20, 0x8a, 0x12, 0xc2, /* mov r8,nr_rt_sigreturn */ ++ 0x78, 0x1e /* trap_s 0 */ ++ }; ++ static const gdb_byte insns_be_700[] = { ++ 0x20, 0x8a, 0x12, 0xc2, /* mov r8,nr_rt_sigreturn */ ++ 0x22, 0x6f, 0x00, 0x3f /* swi */ ++ }; ++ ++ gdb_byte arc_sigtramp_insns[sizeof (insns_be_700)]; ++ size_t insns_sz; ++ if (arc_mach_is_arcv2 (gdbarch)) ++ { ++ insns_sz = sizeof (insns_be_hs); ++ memcpy (arc_sigtramp_insns, insns_be_hs, insns_sz); ++ } ++ else ++ { ++ insns_sz = sizeof (insns_be_700); ++ memcpy (arc_sigtramp_insns, insns_be_700, insns_sz); ++ } ++ if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_LITTLE) ++ { ++ /* On little endian targets, ARC code section is in what is called ++ "middle endian", where half-words are in the big-endian order, ++ only bytes inside the halfwords are in the little endian order. ++ As a result it is very easy to convert big endian instruction to ++ little endian, since it is needed to swap bytes in the halfwords, ++ so there is no need to have information on whether that is a ++ 4-byte instruction or 2-byte. */ ++ gdb_assert ((insns_sz % 2) == 0); ++ for (int i = 0; i < insns_sz; i += 2) ++ std::swap (arc_sigtramp_insns[i], arc_sigtramp_insns[i+1]); ++ } ++ ++ gdb_byte buf[insns_sz]; ++ ++ /* Read the memory at the PC. Since we are stopped, any breakpoint must ++ have been removed. */ ++ if (!safe_frame_unwind_memory (this_frame, pc, buf, insns_sz)) ++ { ++ /* Failed to unwind frame. */ ++ return FALSE; ++ } ++ ++ /* Is that code the sigtramp instruction sequence? */ ++ if (memcmp (buf, arc_sigtramp_insns, insns_sz) == 0) ++ return TRUE; ++ ++ /* No - look one instruction earlier in the code... */ ++ if (!safe_frame_unwind_memory (this_frame, pc - 4, buf, insns_sz)) ++ { ++ /* Failed to unwind frame. */ ++ return FALSE; ++ } ++ ++ return (memcmp (buf, arc_sigtramp_insns, insns_sz) == 0); ++} ++ ++/* Get sigcontext structure of sigtramp frame - it contains saved ++ registers of interrupted frame. ++ ++ Stack pointer points to the rt_sigframe structure, and sigcontext can ++ be found as in: ++ ++ struct rt_sigframe { ++ struct siginfo info; ++ struct ucontext uc; ++ ... ++ }; ++ ++ struct ucontext { ++ unsigned long uc_flags; ++ struct ucontext *uc_link; ++ stack_t uc_stack; ++ struct sigcontext uc_mcontext; ++ sigset_t uc_sigmask; ++ }; ++ ++ sizeof (struct siginfo) == 0x80 ++ offsetof (struct ucontext, uc_mcontext) == 0x14 ++ ++ GDB cannot include linux headers and use offsetof () because those are ++ target headers and GDB might be built for a different run host. There ++ doesn't seem to be an established mechanism to figure out those offsets ++ via gdbserver, so the only way is to hardcode values in the GDB, ++ meaning that GDB will be broken if values will change. That seems to ++ be a very unlikely scenario and other arches (aarch64, alpha, amd64, ++ etc) in GDB hardcode values. */ ++ ++static CORE_ADDR ++arc_linux_sigcontext_addr (struct frame_info *this_frame) ++{ ++ const int ucontext_offset = 0x80; ++ const int sigcontext_offset = 0x14; ++ return get_frame_sp (this_frame) + ucontext_offset + sigcontext_offset; ++} ++ + /* Implement the "cannot_fetch_register" gdbarch method. */ + + static int +@@ -504,6 +679,12 @@ arc_linux_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) + if (arc_debug) + debug_printf ("arc-linux: GNU/Linux OS/ABI initialization.\n"); + ++ /* Fill in target-dependent info in ARC-private structure. */ ++ tdep->is_sigtramp = arc_linux_is_sigtramp; ++ tdep->sigcontext_addr = arc_linux_sigcontext_addr; ++ tdep->sc_reg_offset = arc_linux_sc_reg_offsets; ++ tdep->sc_num_regs = ARRAY_SIZE (arc_linux_sc_reg_offsets); ++ + /* If we are using Linux, we have in uClibc + (libc/sysdeps/linux/arc/bits/setjmp.h): + +-- +2.16.2 + diff --git a/poky/meta/recipes-devtools/gdb/gdb/0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch b/poky/meta/recipes-devtools/gdb/gdb/0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch new file mode 100644 index 000000000..a7256065c --- /dev/null +++ b/poky/meta/recipes-devtools/gdb/gdb/0014-arc-Take-into-account-the-REGNUM-in-supply-collect-g.patch @@ -0,0 +1,104 @@ +From 5eb97d5e92ad23ee81cebc1ebd5eafe0aa55fc17 Mon Sep 17 00:00:00 2001 +From: Shahab Vahedi +Date: Tue, 10 Nov 2020 19:34:57 +0100 +Subject: [PATCH 3/4] arc: Take into account the REGNUM in supply/collect gdb + hooks + +All the arc_linux_supply_*() target operations and the +arc_linux_collect_v2_regset() in arc-linux-tdep.c were +supplying/collecting all the registers in regcache as if the +REGNUM was set to -1. + +The more efficient behavior is to examine the REGNUM and act +accordingly. That is what this patch does. + +gdb/ChangeLog: + + * arc-linux-tdep.c (supply_register): New. + (arc_linux_supply_gregset, arc_linux_supply_v2_regset, + arc_linux_collect_v2_regset): Consider REGNUM. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=46023bbe81355230b4e7b76d3084337823d02362] + +Signed-off-by: Shahab Vahedi +Signed-off-by: Alexey Brodkin +--- + gdb/arc-linux-tdep.c | 41 ++++++++++++++++++++++++++++++++--------- + 1 file changed, 32 insertions(+), 9 deletions(-) + +diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c +index 17bb3e7b276..e83d82b6f5c 100644 +--- a/gdb/arc-linux-tdep.c ++++ b/gdb/arc-linux-tdep.c +@@ -535,6 +535,18 @@ arc_linux_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc) + } + } + ++/* Populate REGCACHE with register REGNUM from BUF. */ ++ ++static void ++supply_register (struct regcache *regcache, int regnum, const gdb_byte *buf) ++{ ++ /* Skip non-existing registers. */ ++ if ((arc_linux_core_reg_offsets[regnum] == ARC_OFFSET_NO_REGISTER)) ++ return; ++ ++ regcache->raw_supply (regnum, buf + arc_linux_core_reg_offsets[regnum]); ++} ++ + void + arc_linux_supply_gregset (const struct regset *regset, + struct regcache *regcache, +@@ -545,9 +557,14 @@ arc_linux_supply_gregset (const struct regset *regset, + + const bfd_byte *buf = (const bfd_byte *) gregs; + +- for (int reg = 0; reg <= ARC_LAST_REGNUM; reg++) +- if (arc_linux_core_reg_offsets[reg] != ARC_OFFSET_NO_REGISTER) +- regcache->raw_supply (reg, buf + arc_linux_core_reg_offsets[reg]); ++ /* regnum == -1 means writing all the registers. */ ++ if (regnum == -1) ++ for (int reg = 0; reg <= ARC_LAST_REGNUM; reg++) ++ supply_register (regcache, reg, buf); ++ else if (regnum <= ARC_LAST_REGNUM) ++ supply_register (regcache, regnum, buf); ++ else ++ gdb_assert_not_reached ("Invalid regnum in arc_linux_supply_gregset."); + } + + void +@@ -558,9 +575,12 @@ arc_linux_supply_v2_regset (const struct regset *regset, + const bfd_byte *buf = (const bfd_byte *) v2_regs; + + /* user_regs_arcv2 is defined in linux arch/arc/include/uapi/asm/ptrace.h. */ +- regcache->raw_supply (ARC_R30_REGNUM, buf); +- regcache->raw_supply (ARC_R58_REGNUM, buf + REGOFF (1)); +- regcache->raw_supply (ARC_R59_REGNUM, buf + REGOFF (2)); ++ if (regnum == -1 || regnum == ARC_R30_REGNUM) ++ regcache->raw_supply (ARC_R30_REGNUM, buf); ++ if (regnum == -1 || regnum == ARC_R58_REGNUM) ++ regcache->raw_supply (ARC_R58_REGNUM, buf + REGOFF (1)); ++ if (regnum == -1 || regnum == ARC_R59_REGNUM) ++ regcache->raw_supply (ARC_R59_REGNUM, buf + REGOFF (2)); + } + + /* Populate BUF with register REGNUM from the REGCACHE. */ +@@ -618,9 +638,12 @@ arc_linux_collect_v2_regset (const struct regset *regset, + { + bfd_byte *buf = (bfd_byte *) v2_regs; + +- regcache->raw_collect (ARC_R30_REGNUM, buf); +- regcache->raw_collect (ARC_R58_REGNUM, buf + REGOFF (1)); +- regcache->raw_collect (ARC_R59_REGNUM, buf + REGOFF (2)); ++ if (regnum == -1 || regnum == ARC_R30_REGNUM) ++ regcache->raw_collect (ARC_R30_REGNUM, buf); ++ if (regnum == -1 || regnum == ARC_R58_REGNUM) ++ regcache->raw_collect (ARC_R58_REGNUM, buf + REGOFF (1)); ++ if (regnum == -1 || regnum == ARC_R59_REGNUM) ++ regcache->raw_collect (ARC_R59_REGNUM, buf + REGOFF (2)); + } + + /* Linux regset definitions. */ +-- +2.16.2 + diff --git a/poky/meta/recipes-devtools/gdb/gdb/0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch b/poky/meta/recipes-devtools/gdb/gdb/0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch new file mode 100644 index 000000000..31cf0b0be --- /dev/null +++ b/poky/meta/recipes-devtools/gdb/gdb/0015-gdb-Add-native-support-for-ARC-in-GNU-Linux.patch @@ -0,0 +1,414 @@ +From 32b366249fd42d74cbc4a91039431554ebadcfd0 Mon Sep 17 00:00:00 2001 +From: Anton Kolesov +Date: Fri, 14 Feb 2014 11:56:23 +0400 +Subject: [PATCH 4/4] gdb: Add native support for ARC in GNU/Linux + +With this patch in place it is possible to build a GDB that +can run on ARC (GNU/Linux) hosts for debugging ARC targets. + +The "arc-linux-nat.c" is a rather small one that mostly deals +with registers and a few thread related hooks. + +v2 [1]: +- Remove "void" from the input of "_initialize_arc_linux_nat ()" + +[1] Tom's remark after the first patch +https://sourceware.org/pipermail/gdb-patches/2020-November/173223.html + +gdb/ChangeLog: + + * Makefile.in (ALLDEPFILES): Add arc-linux-nat.c. + * configure.host (host to gdb names): Add arc*-*-linux*. + * configure.nat (gdb_host_cpu): Add arc. + * arc-linux-nat.c: New. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=04c9f85efcd8df5fc482ce97c0104cc7dd5d19e6] + +Signed-off-by: Anton Kolesov +Signed-off-by: Shahab Vahedi +Signed-off-by: Alexey Brodkin +--- + gdb/Makefile.in | 1 + + gdb/arc-linux-nat.c | 320 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + gdb/configure.host | 3 + + gdb/configure.nat | 4 + + 4 files changed, 328 insertions(+) + create mode 100644 gdb/arc-linux-nat.c + +diff --git a/gdb/Makefile.in b/gdb/Makefile.in +index ec371fc7e52..c76136907ae 100644 +--- a/gdb/Makefile.in ++++ b/gdb/Makefile.in +@@ -2136,6 +2136,7 @@ ALLDEPFILES = \ + amd64-obsd-tdep.c \ + amd64-sol2-tdep.c \ + amd64-tdep.c \ ++ arc-linux-nat.c \ + arc-tdep.c \ + arm.c \ + arm-bsd-tdep.c \ +diff --git a/gdb/arc-linux-nat.c b/gdb/arc-linux-nat.c +new file mode 100644 +index 00000000000..41301fd4fed +--- /dev/null ++++ b/gdb/arc-linux-nat.c +@@ -0,0 +1,320 @@ ++/* Native-dependent code for GNU/Linux ARC. ++ ++ Copyright 2020 Free Software Foundation, Inc. ++ ++ This file is part of GDB. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 3 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see . */ ++ ++#include "defs.h" ++#include "frame.h" ++#include "inferior.h" ++#include "gdbcore.h" ++#include "regcache.h" ++#include "gdbsupport/gdb_assert.h" ++#include "target.h" ++#include "linux-nat.h" ++#include "nat/gdb_ptrace.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include "gdbsupport/gdb_wait.h" ++#include ++#include ++#include ++ ++#include "gregset.h" ++#include "arc-tdep.h" ++#include "arc-linux-tdep.h" ++#include "arch/arc.h" ++ ++/* Defines ps_err_e, struct ps_prochandle. */ ++#include "gdb_proc_service.h" ++ ++/* Linux starting with 4.12 supports NT_ARC_V2 note type, which adds R30, ++ R58 and R59 registers, which are specific to ARC HS and aren't ++ available in ARC 700. */ ++#if defined (NT_ARC_V2) && defined (__ARCHS__) ++#define ARC_HAS_V2_REGSET ++#endif ++ ++class arc_linux_nat_target final : public linux_nat_target ++{ ++public: ++ /* Add ARC register access methods. */ ++ void fetch_registers (struct regcache *, int) override; ++ void store_registers (struct regcache *, int) override; ++ ++ const struct target_desc *read_description () override; ++ ++ /* Handle threads */ ++ void low_prepare_to_resume (struct lwp_info *lp) override; ++}; ++ ++static arc_linux_nat_target the_arc_linux_nat_target; ++ ++/* Read general registers from target process/thread (via ptrace) ++ into REGCACHE. */ ++ ++static void ++fetch_gregs (struct regcache *regcache, int regnum) ++{ ++ const int tid = get_ptrace_pid (regcache->ptid ()); ++ struct iovec iov; ++ gdb_gregset_t regs; ++ ++ iov.iov_base = ®s; ++ iov.iov_len = sizeof (gdb_gregset_t); ++ ++ if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, (void *) &iov) < 0) ++ perror_with_name (_("Couldn't get general registers")); ++ else ++ arc_linux_supply_gregset (NULL, regcache, regnum, ®s, 0); ++} ++ ++#ifdef ARC_HAS_V2_REGSET ++/* Read ARC v2 registers from target process/thread (via ptrace) ++ into REGCACHE. */ ++ ++static void ++fetch_v2_regs (struct regcache *regcache, int regnum) ++{ ++ const int tid = get_ptrace_pid (regcache->ptid ()); ++ struct iovec iov; ++ bfd_byte v2_buffer[ARC_LINUX_SIZEOF_V2_REGSET]; ++ ++ iov.iov_base = &v2_buffer; ++ iov.iov_len = ARC_LINUX_SIZEOF_V2_REGSET; ++ ++ if (ptrace (PTRACE_GETREGSET, tid, NT_ARC_V2, (void *) &iov) < 0) ++ perror_with_name (_("Couldn't get ARC HS registers")); ++ else ++ arc_linux_supply_v2_regset (NULL, regcache, regnum, v2_buffer, 0); ++} ++#endif ++ ++/* Store general registers from REGCACHE into the target process/thread. */ ++ ++static void ++store_gregs (const struct regcache *regcache, int regnum) ++{ ++ const int tid = get_ptrace_pid (regcache->ptid ()); ++ struct iovec iov; ++ gdb_gregset_t regs; ++ ++ iov.iov_base = ®s; ++ iov.iov_len = sizeof (gdb_gregset_t); ++ ++ if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, (void *) &iov) < 0) ++ perror_with_name (_("Couldn't get general registers")); ++ else ++ { ++ arc_linux_collect_gregset (NULL, regcache, regnum, regs, 0); ++ ++ if (ptrace (PTRACE_SETREGSET, tid, NT_PRSTATUS, (void *) &iov) < 0) ++ perror_with_name (_("Couldn't write general registers")); ++ } ++} ++ ++#ifdef ARC_HAS_V2_REGSET ++/* Store ARC v2 registers from REGCACHE into the target process/thread. */ ++ ++static void ++store_v2_regs (const struct regcache *regcache, int regnum) ++{ ++ const int tid = get_ptrace_pid (regcache->ptid ()); ++ struct iovec iov; ++ bfd_byte v2_buffer[ARC_LINUX_SIZEOF_V2_REGSET]; ++ ++ iov.iov_base = &v2_buffer; ++ iov.iov_len = ARC_LINUX_SIZEOF_V2_REGSET; ++ ++ if (ptrace (PTRACE_GETREGSET, tid, NT_ARC_V2, (void *) &iov) < 0) ++ perror_with_name (_("Couldn't get ARC HS registers")); ++ else ++ { ++ arc_linux_collect_v2_regset (NULL, regcache, regnum, v2_buffer, 0); ++ ++ if (ptrace (PTRACE_SETREGSET, tid, NT_ARC_V2, (void *) &iov) < 0) ++ perror_with_name (_("Couldn't write ARC HS registers")); ++ } ++} ++#endif ++ ++/* Target operation: Read REGNUM register (all registers if REGNUM == -1) ++ from target process into REGCACHE. */ ++ ++void ++arc_linux_nat_target::fetch_registers (struct regcache *regcache, int regnum) ++{ ++ ++ if (regnum == -1 || regnum <= ARC_LAST_REGNUM) ++ fetch_gregs (regcache, regnum); ++ ++#ifdef ARC_HAS_V2_REGSET ++ if (regnum == -1 ++ || regnum == ARC_R30_REGNUM ++ || regnum == ARC_R58_REGNUM ++ || regnum == ARC_R59_REGNUM) ++ fetch_v2_regs (regcache, regnum); ++#endif ++} ++ ++/* Target operation: Store REGNUM register (all registers if REGNUM == -1) ++ to the target process from REGCACHE. */ ++ ++void ++arc_linux_nat_target::store_registers (struct regcache *regcache, int regnum) ++{ ++ if (regnum == -1 || regnum <= ARC_LAST_REGNUM) ++ store_gregs (regcache, regnum); ++ ++#ifdef ARC_HAS_V2_REGSET ++ if (regnum == -1 ++ || regnum == ARC_R30_REGNUM ++ || regnum == ARC_R58_REGNUM ++ || regnum == ARC_R59_REGNUM) ++ store_v2_regs (regcache, regnum); ++#endif ++} ++ ++/* Copy general purpose register(s) from REGCACHE into regset GREGS. ++ This function is exported to proc-service.c */ ++ ++void ++fill_gregset (const struct regcache *regcache, ++ gdb_gregset_t *gregs, int regnum) ++{ ++ arc_linux_collect_gregset (NULL, regcache, regnum, gregs, 0); ++} ++ ++/* Copy all the general purpose registers from regset GREGS into REGCACHE. ++ This function is exported to proc-service.c. */ ++ ++void ++supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregs) ++{ ++ arc_linux_supply_gregset (NULL, regcache, -1, gregs, 0); ++} ++ ++/* ARC doesn't have separate FP registers. This function is exported ++ to proc-service.c. */ ++ ++void ++fill_fpregset (const struct regcache *regcache, ++ gdb_fpregset_t *fpregsetp, int regnum) ++{ ++ if (arc_debug) ++ debug_printf ("arc-linux-nat: fill_fpregset called."); ++ return; ++} ++ ++/* ARC doesn't have separate FP registers. This function is exported ++ to proc-service.c. */ ++ ++void ++supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp) ++{ ++ if (arc_debug) ++ debug_printf ("arc-linux-nat: supply_fpregset called."); ++ return; ++} ++ ++/* Implement the "read_description" method of linux_nat_target. */ ++ ++const struct target_desc * ++arc_linux_nat_target::read_description () ++{ ++ /* This is a native target, hence description is hardcoded. */ ++#ifdef __ARCHS__ ++ arc_arch_features features (4, ARC_ISA_ARCV2); ++#else ++ arc_arch_features features (4, ARC_ISA_ARCV1); ++#endif ++ return arc_lookup_target_description (features); ++} ++ ++/* As described in arc_linux_collect_gregset(), we need to write resume-PC ++ to ERET. However by default GDB for native targets doesn't write ++ registers if they haven't been changed. This is a callback called by ++ generic GDB, and in this callback we have to rewrite PC value so it ++ would force rewrite of register on target. It seems that the only ++ other arch that utilizes this hook is x86/x86-64 for HW breakpoint ++ support. But then, AFAIK no other arch has this stop_pc/eret ++ complexity. ++ ++ No better way was found, other than this fake write of register value, ++ to force GDB into writing register to target. Is there any? */ ++ ++void ++arc_linux_nat_target::low_prepare_to_resume (struct lwp_info *lwp) ++{ ++ /* When new processes and threads are created we do not have the address ++ space for them and calling get_thread_regcache will cause an internal ++ error in GDB. It looks like that checking for last_resume_kind is the ++ sensible way to determine processes for which we cannot get regcache. ++ Ultimately, a better way would be removing the need for ++ low_prepare_to_resume in the first place. */ ++ if (lwp->last_resume_kind == resume_stop) ++ return; ++ ++ struct regcache *regcache = get_thread_regcache (this, lwp->ptid); ++ struct gdbarch *gdbarch = regcache->arch (); ++ ++ /* Read current PC value, then write it back. It is required to call ++ invalidate(), otherwise GDB will note that new value is equal to old ++ value and will skip write. */ ++ ULONGEST new_pc; ++ regcache_cooked_read_unsigned (regcache, gdbarch_pc_regnum (gdbarch), ++ &new_pc); ++ regcache->invalidate (gdbarch_pc_regnum (gdbarch)); ++ regcache_cooked_write_unsigned (regcache, gdbarch_pc_regnum (gdbarch), ++ new_pc); ++} ++ ++/* Fetch the thread-local storage pointer for libthread_db. Note that ++ this function is not called from GDB, but is called from libthread_db. ++ This is required to debug multithreaded applications with NPTL. */ ++ ++ps_err_e ++ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, ++ void **base) ++{ ++ if (arc_debug >= 2) ++ debug_printf ("arc-linux-nat: ps_get_thread_area called"); ++ ++ if (ptrace (PTRACE_GET_THREAD_AREA, lwpid, NULL, base) != 0) ++ return PS_ERR; ++ ++ /* IDX is the bias from the thread pointer to the beginning of the ++ thread descriptor. It has to be subtracted due to implementation ++ quirks in libthread_db. */ ++ *base = (void *) ((char *) *base - idx); ++ ++ return PS_OK; ++} ++ ++/* Suppress warning from -Wmissing-prototypes. */ ++void _initialize_arc_linux_nat (); ++void ++_initialize_arc_linux_nat () ++{ ++ /* Register the target. */ ++ linux_target = &the_arc_linux_nat_target; ++ add_inf_child_target (&the_arc_linux_nat_target); ++} +diff --git a/gdb/configure.host b/gdb/configure.host +index ce528237291..e94a19b0332 100644 +--- a/gdb/configure.host ++++ b/gdb/configure.host +@@ -60,6 +60,7 @@ case "${host_cpu}" in + + aarch64*) gdb_host_cpu=aarch64 ;; + alpha*) gdb_host_cpu=alpha ;; ++arc*) gdb_host_cpu=arc ;; + arm*) gdb_host_cpu=arm ;; + hppa*) gdb_host_cpu=pa ;; + i[34567]86*) gdb_host_cpu=i386 ;; +@@ -91,6 +92,8 @@ alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) + gdb_host=nbsd ;; + alpha*-*-openbsd*) gdb_host=nbsd ;; + ++arc*-*-linux*) gdb_host=linux ;; ++ + arm*-*-freebsd*) gdb_host=fbsd ;; + arm*-*-linux*) gdb_host=linux ;; + arm*-*-netbsdelf* | arm*-*-knetbsd*-gnu) +diff --git a/gdb/configure.nat b/gdb/configure.nat +index bb70e303384..cd11bc86dca 100644 +--- a/gdb/configure.nat ++++ b/gdb/configure.nat +@@ -238,6 +238,10 @@ case ${gdb_host} in + nat/aarch64-linux.o \ + nat/aarch64-sve-linux-ptrace.o" + ;; ++ arc) ++ # Host: ARC based machine running GNU/Linux ++ NATDEPFILES="${NATDEPFILES} arc-linux-nat.o" ++ ;; + arm) + # Host: ARM based machine running GNU/Linux + NATDEPFILES="${NATDEPFILES} arm-linux-nat.o \ +-- +2.16.2 + diff --git a/poky/meta/recipes-devtools/git/git_2.31.1.bb b/poky/meta/recipes-devtools/git/git_2.31.1.bb deleted file mode 100644 index 6bfa1f7a1..000000000 --- a/poky/meta/recipes-devtools/git/git_2.31.1.bb +++ /dev/null @@ -1,9 +0,0 @@ -require git.inc - -EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \ - ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \ - " -EXTRA_OEMAKE += "NO_GETTEXT=1" - -SRC_URI[tarball.sha256sum] = "46d37c229e9d786510e0c53b60065704ce92d5aedc16f2c5111e3ed35093bfa7" -SRC_URI[manpages.sha256sum] = "d330498aaaea6928b0abbbbb896f6f605efd8d35f23cbbb2de38c87a737d4543" diff --git a/poky/meta/recipes-devtools/git/git_2.32.0.bb b/poky/meta/recipes-devtools/git/git_2.32.0.bb new file mode 100644 index 000000000..f45737b09 --- /dev/null +++ b/poky/meta/recipes-devtools/git/git_2.32.0.bb @@ -0,0 +1,9 @@ +require git.inc + +EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \ + ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \ + " +EXTRA_OEMAKE += "NO_GETTEXT=1" + +SRC_URI[tarball.sha256sum] = "6038f06d396ba9dab2eee541c7db6e7f9f847f181ec62f3d8441893f8c469398" +SRC_URI[manpages.sha256sum] = "b5533c40ea1688231c0e2df51cc0d1c0272e17fe78a45ba6e60cb8f61fa4a53c" diff --git a/poky/meta/recipes-devtools/go/go-1.16.4.inc b/poky/meta/recipes-devtools/go/go-1.16.4.inc deleted file mode 100644 index 71c17de31..000000000 --- a/poky/meta/recipes-devtools/go/go-1.16.4.inc +++ /dev/null @@ -1,20 +0,0 @@ -require go-common.inc - -GO_BASEVERSION = "1.16" -PV = "1.16.4" -FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -SRC_URI += "\ - file://0001-allow-CC-and-CXX-to-have-multiple-words.patch \ - file://0002-cmd-go-make-content-based-hash-generation-less-pedan.patch \ - file://0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch \ - file://0004-ld-add-soname-to-shareable-objects.patch \ - file://0005-make.bash-override-CC-when-building-dist-and-go_boot.patch \ - file://0006-cmd-dist-separate-host-and-target-builds.patch \ - file://0007-cmd-go-make-GOROOT-precious-by-default.patch \ - file://0008-use-GOBUILDMODE-to-set-buildmode.patch \ - file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \ -" -SRC_URI[main.sha256sum] = "ae4f6b6e2a1677d31817984655a762074b5356da50fb58722b99104870d43503" diff --git a/poky/meta/recipes-devtools/go/go-1.16.5.inc b/poky/meta/recipes-devtools/go/go-1.16.5.inc new file mode 100644 index 000000000..bd928e44f --- /dev/null +++ b/poky/meta/recipes-devtools/go/go-1.16.5.inc @@ -0,0 +1,20 @@ +require go-common.inc + +GO_BASEVERSION = "1.16" +PV = "1.16.5" +FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" + +SRC_URI += "\ + file://0001-allow-CC-and-CXX-to-have-multiple-words.patch \ + file://0002-cmd-go-make-content-based-hash-generation-less-pedan.patch \ + file://0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch \ + file://0004-ld-add-soname-to-shareable-objects.patch \ + file://0005-make.bash-override-CC-when-building-dist-and-go_boot.patch \ + file://0006-cmd-dist-separate-host-and-target-builds.patch \ + file://0007-cmd-go-make-GOROOT-precious-by-default.patch \ + file://0008-use-GOBUILDMODE-to-set-buildmode.patch \ + file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \ +" +SRC_URI[main.sha256sum] = "7bfa7e5908c7cc9e75da5ddf3066d7cbcf3fd9fa51945851325eebc17f50ba80" diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.16.4.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.16.4.bb deleted file mode 100644 index 8c046e8e5..000000000 --- a/poky/meta/recipes-devtools/go/go-binary-native_1.16.4.bb +++ /dev/null @@ -1,46 +0,0 @@ -# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org. - -SUMMARY = "Go programming language compiler (upstream binary for bootstrap)" -HOMEPAGE = " http://golang.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -PROVIDES = "go-native" - -SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" -SRC_URI[go_linux_amd64.sha256sum] = "7154e88f5a8047aad4b80ebace58a059e36e7e2e4eb3b383127a28c711b4ff59" -SRC_URI[go_linux_arm64.sha256sum] = "8b18eb05ddda2652d69ab1b1dd1f40dd731799f43c6a58b512ad01ae5b5bba21" - -UPSTREAM_CHECK_URI = "https://golang.org/dl/" -UPSTREAM_CHECK_REGEX = "go(?P\d+(\.\d+)+)\.linux" - -S = "${WORKDIR}/go" - -inherit goarch native - -do_compile() { - : -} - -make_wrapper() { - rm -f ${D}${bindir}/$1 - cat <${D}${bindir}/$1 -#!/bin/bash -here=\`dirname \$0\` -export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" -\$here/../lib/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$1 -} - -do_install() { - find ${S} -depth -type d -name testdata -exec rm -rf {} + - - install -d ${D}${bindir} ${D}${libdir}/go - cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/ - - for f in ${S}/bin/* - do - make_wrapper `basename $f` - done -} diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.16.5.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.16.5.bb new file mode 100644 index 000000000..b3e2b6a60 --- /dev/null +++ b/poky/meta/recipes-devtools/go/go-binary-native_1.16.5.bb @@ -0,0 +1,46 @@ +# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org. + +SUMMARY = "Go programming language compiler (upstream binary for bootstrap)" +HOMEPAGE = " http://golang.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" + +PROVIDES = "go-native" + +SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" +SRC_URI[go_linux_amd64.sha256sum] = "b12c23023b68de22f74c0524f10b753e7b08b1504cb7e417eccebdd3fae49061" +SRC_URI[go_linux_arm64.sha256sum] = "d5446b46ef6f36fdffa852f73dfbbe78c1ddf010b99fa4964944b9ae8b4d6799" + +UPSTREAM_CHECK_URI = "https://golang.org/dl/" +UPSTREAM_CHECK_REGEX = "go(?P\d+(\.\d+)+)\.linux" + +S = "${WORKDIR}/go" + +inherit goarch native + +do_compile() { + : +} + +make_wrapper() { + rm -f ${D}${bindir}/$1 + cat <${D}${bindir}/$1 +#!/bin/bash +here=\`dirname \$0\` +export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" +\$here/../lib/go/bin/$1 "\$@" +END + chmod +x ${D}${bindir}/$1 +} + +do_install() { + find ${S} -depth -type d -name testdata -exec rm -rf {} + + + install -d ${D}${bindir} ${D}${libdir}/go + cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/ + + for f in ${S}/bin/* + do + make_wrapper `basename $f` + done +} diff --git a/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.4.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.4.bb deleted file mode 100644 index 7ac9449e4..000000000 --- a/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.4.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-cross-canadian.inc -require go-${PV}.inc diff --git a/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.5.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.5.bb new file mode 100644 index 000000000..7ac9449e4 --- /dev/null +++ b/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.5.bb @@ -0,0 +1,2 @@ +require go-cross-canadian.inc +require go-${PV}.inc diff --git a/poky/meta/recipes-devtools/go/go-cross_1.16.4.bb b/poky/meta/recipes-devtools/go/go-cross_1.16.4.bb deleted file mode 100644 index 80b5a03f6..000000000 --- a/poky/meta/recipes-devtools/go/go-cross_1.16.4.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-cross.inc -require go-${PV}.inc diff --git a/poky/meta/recipes-devtools/go/go-cross_1.16.5.bb b/poky/meta/recipes-devtools/go/go-cross_1.16.5.bb new file mode 100644 index 000000000..80b5a03f6 --- /dev/null +++ b/poky/meta/recipes-devtools/go/go-cross_1.16.5.bb @@ -0,0 +1,2 @@ +require go-cross.inc +require go-${PV}.inc diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.16.4.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.16.4.bb deleted file mode 100644 index 1857c8a57..000000000 --- a/poky/meta/recipes-devtools/go/go-crosssdk_1.16.4.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-crosssdk.inc -require go-${PV}.inc diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.16.5.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.16.5.bb new file mode 100644 index 000000000..1857c8a57 --- /dev/null +++ b/poky/meta/recipes-devtools/go/go-crosssdk_1.16.5.bb @@ -0,0 +1,2 @@ +require go-crosssdk.inc +require go-${PV}.inc diff --git a/poky/meta/recipes-devtools/go/go-native_1.16.4.bb b/poky/meta/recipes-devtools/go/go-native_1.16.4.bb deleted file mode 100644 index f14892cdb..000000000 --- a/poky/meta/recipes-devtools/go/go-native_1.16.4.bb +++ /dev/null @@ -1,59 +0,0 @@ -# This recipe builds a native Go (written in Go) by first building an old Go 1.4 -# (written in C). However this old Go does not support all hosts platforms. - -require go-${PV}.inc - -inherit native - -SRC_URI_append = " https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4" -SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52" - -export GOOS = "${BUILD_GOOS}" -export GOARCH = "${BUILD_GOARCH}" -CC = "${@d.getVar('BUILD_CC').strip()}" - -GOMAKEARGS ?= "--no-banner" - -do_configure() { - cd ${WORKDIR}/go1.4/go/src - CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash -} - -do_compile() { - export GOROOT_FINAL="${libdir_native}/go" - export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go" - - cd src - ./make.bash ${GOMAKEARGS} - cd ${B} -} -do_compile[dirs] =+ "${GOTMPDIR} ${B}/bin" -do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin" - -make_wrapper() { - rm -f ${D}${bindir}/$2$3 - cat <${D}${bindir}/$2$3 -#!/bin/bash -here=\`dirname \$0\` -export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" -\$here/../lib/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$2 -} - -do_install() { - install -d ${D}${libdir}/go - cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/ - install -d ${D}${libdir}/go/src - (cd ${S}/src; for d in *; do \ - [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \ - done) - find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; - install -d ${D}${bindir} ${D}${libdir}/go/bin - for f in ${B}/bin/* - do - base=`basename $f` - install -m755 $f ${D}${libdir}/go/bin - make_wrapper $base $base - done -} diff --git a/poky/meta/recipes-devtools/go/go-native_1.16.5.bb b/poky/meta/recipes-devtools/go/go-native_1.16.5.bb new file mode 100644 index 000000000..f14892cdb --- /dev/null +++ b/poky/meta/recipes-devtools/go/go-native_1.16.5.bb @@ -0,0 +1,59 @@ +# This recipe builds a native Go (written in Go) by first building an old Go 1.4 +# (written in C). However this old Go does not support all hosts platforms. + +require go-${PV}.inc + +inherit native + +SRC_URI_append = " https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4" +SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52" + +export GOOS = "${BUILD_GOOS}" +export GOARCH = "${BUILD_GOARCH}" +CC = "${@d.getVar('BUILD_CC').strip()}" + +GOMAKEARGS ?= "--no-banner" + +do_configure() { + cd ${WORKDIR}/go1.4/go/src + CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash +} + +do_compile() { + export GOROOT_FINAL="${libdir_native}/go" + export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go" + + cd src + ./make.bash ${GOMAKEARGS} + cd ${B} +} +do_compile[dirs] =+ "${GOTMPDIR} ${B}/bin" +do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin" + +make_wrapper() { + rm -f ${D}${bindir}/$2$3 + cat <${D}${bindir}/$2$3 +#!/bin/bash +here=\`dirname \$0\` +export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" +\$here/../lib/go/bin/$1 "\$@" +END + chmod +x ${D}${bindir}/$2 +} + +do_install() { + install -d ${D}${libdir}/go + cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/ + install -d ${D}${libdir}/go/src + (cd ${S}/src; for d in *; do \ + [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \ + done) + find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; + install -d ${D}${bindir} ${D}${libdir}/go/bin + for f in ${B}/bin/* + do + base=`basename $f` + install -m755 $f ${D}${libdir}/go/bin + make_wrapper $base $base + done +} diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.16.4.bb b/poky/meta/recipes-devtools/go/go-runtime_1.16.4.bb deleted file mode 100644 index 63464a150..000000000 --- a/poky/meta/recipes-devtools/go/go-runtime_1.16.4.bb +++ /dev/null @@ -1,3 +0,0 @@ -require go-${PV}.inc -require go-runtime.inc - diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.16.5.bb b/poky/meta/recipes-devtools/go/go-runtime_1.16.5.bb new file mode 100644 index 000000000..63464a150 --- /dev/null +++ b/poky/meta/recipes-devtools/go/go-runtime_1.16.5.bb @@ -0,0 +1,3 @@ +require go-${PV}.inc +require go-runtime.inc + diff --git a/poky/meta/recipes-devtools/go/go_1.16.4.bb b/poky/meta/recipes-devtools/go/go_1.16.4.bb deleted file mode 100644 index 4e9e0ebec..000000000 --- a/poky/meta/recipes-devtools/go/go_1.16.4.bb +++ /dev/null @@ -1,17 +0,0 @@ -require go-${PV}.inc -require go-target.inc - -inherit linuxloader - -export GOBUILDMODE="" -export GO_LDSO = "${@get_linuxloader(d)}" -export CC_FOR_TARGET = "gcc" -export CXX_FOR_TARGET = "g++" - -# mips/rv64 doesn't support -buildmode=pie, so skip the QA checking for mips/riscv32 and its -# variants. -python() { - if 'mips' in d.getVar('TARGET_ARCH',True) or 'riscv32' in d.getVar('TARGET_ARCH',True): - d.appendVar('INSANE_SKIP_%s' % d.getVar('PN',True), " textrel") -} - diff --git a/poky/meta/recipes-devtools/go/go_1.16.5.bb b/poky/meta/recipes-devtools/go/go_1.16.5.bb new file mode 100644 index 000000000..4e9e0ebec --- /dev/null +++ b/poky/meta/recipes-devtools/go/go_1.16.5.bb @@ -0,0 +1,17 @@ +require go-${PV}.inc +require go-target.inc + +inherit linuxloader + +export GOBUILDMODE="" +export GO_LDSO = "${@get_linuxloader(d)}" +export CC_FOR_TARGET = "gcc" +export CXX_FOR_TARGET = "g++" + +# mips/rv64 doesn't support -buildmode=pie, so skip the QA checking for mips/riscv32 and its +# variants. +python() { + if 'mips' in d.getVar('TARGET_ARCH',True) or 'riscv32' in d.getVar('TARGET_ARCH',True): + d.appendVar('INSANE_SKIP_%s' % d.getVar('PN',True), " textrel") +} + diff --git a/poky/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/poky/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch index 3e9102605..6cd052889 100644 --- a/poky/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch +++ b/poky/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch @@ -10,18 +10,18 @@ Signed-off-by: Alexander Kanavin 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcomps/src/python/src/CMakeLists.txt b/libcomps/src/python/src/CMakeLists.txt -index b9b96ab..6d44567 100644 +index f813af4..9eebb6c 100644 --- a/libcomps/src/python/src/CMakeLists.txt +++ b/libcomps/src/python/src/CMakeLists.txt -@@ -115,7 +115,7 @@ IF (SKBUILD) +@@ -85,7 +85,7 @@ IF (SKBUILD) INSTALL(FILES libcomps/__init__.py DESTINATION libcomps/src/python/src/libcomps) INSTALL(TARGETS pycomps LIBRARY DESTINATION libcomps/src/python/src/libcomps) ELSE () -- EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) -+ #EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) +- EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from sysconfig import get_path; stdout.write(get_path('platlib'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) ++ #EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from sysconfig import get_path; stdout.write(get_path('platlib'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) INSTALL(FILES ${pycomps_SRCDIR}/libcomps/__init__.py DESTINATION ${PYTHON_INSTALL_DIR}/libcomps) #INSTALL(FILES ${pycomps_SRCDIR}/tests/__test.py DESTINATION -- -2.26.2 +2.25.1 diff --git a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.16.bb b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.16.bb deleted file mode 100644 index 851ec5b81..000000000 --- a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.16.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Libcomps is alternative for yum.comps library (which is for managing rpm package groups)." -HOMEPAGE = "https://github.com/rpm-software-management/libcomps" -DESCRIPTION = "Libcomps is alternative for yum.comps library. It's written in pure C as library and there's bindings for python2 and python3." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "git://github.com/rpm-software-management/libcomps.git \ - file://0001-Add-crc32.c-to-sources-list.patch \ - file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ - " - -SRCREV = "f3289ed1d812648558ab48ade4fae850b375fa65" - -S = "${WORKDIR}/git" - -inherit cmake distutils3-base - -DEPENDS += "libxml2 expat libcheck" - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" -OECMAKE_SOURCEPATH = "${S}/libcomps" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.17.bb b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.17.bb new file mode 100644 index 000000000..502bc4688 --- /dev/null +++ b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.17.bb @@ -0,0 +1,24 @@ +SUMMARY = "Libcomps is alternative for yum.comps library (which is for managing rpm package groups)." +HOMEPAGE = "https://github.com/rpm-software-management/libcomps" +DESCRIPTION = "Libcomps is alternative for yum.comps library. It's written in pure C as library and there's bindings for python2 and python3." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/rpm-software-management/libcomps.git \ + file://0001-Add-crc32.c-to-sources-list.patch \ + file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + " + +SRCREV = "dfaffdce1969042bda4a184865861573bb07a5a3" + +S = "${WORKDIR}/git" + +inherit cmake distutils3-base + +DEPENDS += "libxml2 expat libcheck" + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" +OECMAKE_SOURCEPATH = "${S}/libcomps" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch new file mode 100644 index 000000000..d483dd410 --- /dev/null +++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch @@ -0,0 +1,42 @@ +From c0a465ccae395871ab10932975e37894220bc6a1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Tue, 1 Jun 2021 10:23:59 +0800 +Subject: [PATCH] drop FindPythonInstDir.cmake + +Since commit [1] applied, PYTHON_INSTALL_DIR is not right +on nativesdk build +... +|Building for python3 +|-- Python install dir is +|tmp-glibc/work/x86_64-nativesdk-wrlinuxsdk-linux/nativesdk-libdnf/0.63.0-r0/ +recipe-sysroot-native/usr/lib/python3.9/site-packages +... + +Yocto manually set PYTHON_INSTALL_DIR from recipe, it is not +necessary to call FindPythonInstDir.cmake which will override +Yocto setting + +[1] https://github.com/rpm-software-management/libdnf/commit/f1cffbfb9f338da827e233c2d8ac3a25a6a59a69 + +Upstream-Status: Inappropriate [Yocto specific] + +Signed-off-by: Hongxu Jia +--- + cmake/modules/FindPythonInstDir.cmake | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/cmake/modules/FindPythonInstDir.cmake b/cmake/modules/FindPythonInstDir.cmake +index ed098ded..8b137891 100644 +--- a/cmake/modules/FindPythonInstDir.cmake ++++ b/cmake/modules/FindPythonInstDir.cmake +@@ -1,6 +1 @@ +-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c " +-from sys import stdout +-from sysconfig import get_path +-path=get_path(name='platlib', vars={'platbase':'${CMAKE_INSTALL_PREFIX}'}) +-stdout.write(path)" +-OUTPUT_VARIABLE PYTHON_INSTALL_DIR) ++ +-- +2.18.1 + diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.63.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.63.0.bb index 79e886545..a26ee55cb 100644 --- a/poky/meta/recipes-devtools/libdnf/libdnf_0.63.0.bb +++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.63.0.bb @@ -12,6 +12,7 @@ SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master \ file://0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch \ file://enable_test_data_dir_set.patch \ file://0001-libdnf-config.h-avoid-the-use-of-non-portable-__WORD.patch \ + file://0001-drop-FindPythonInstDir.cmake.patch \ " SRCREV = "669a5c691acba91693d238d6262ac99a440aa9b3" diff --git a/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch b/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch index 46ab9a113..2ea50f00f 100644 --- a/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch +++ b/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Do not try to obtain PYTHON_INSTALL_DIR by running python. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin - +Signed-off-by: Wang Mingyu --- librepo/python/CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/librepo/python/CMakeLists.txt b/librepo/python/CMakeLists.txt -index 52fc39e..2024407 100644 +index 8523ca7..06e5f7b 100644 --- a/librepo/python/CMakeLists.txt +++ b/librepo/python/CMakeLists.txt @@ -16,12 +16,12 @@ SET (librepomodule_SRCS @@ -20,16 +20,19 @@ index 52fc39e..2024407 100644 -EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c " -from sys import stdout --from distutils import sysconfig --path=sysconfig.get_python_lib(True, prefix='${CMAKE_INSTALL_PREFIX}') +-from sysconfig import get_path +-path=get_path(name='platlib', vars={'platbase':'${CMAKE_INSTALL_PREFIX}'}) -stdout.write(path)" -OUTPUT_VARIABLE PYTHON_INSTALL_DIR) +#EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c " +#from sys import stdout -+#from distutils import sysconfig -+#path=sysconfig.get_python_lib(True, prefix='${CMAKE_INSTALL_PREFIX}') ++#from sysconfig import get_path ++#path=get_path(name='platlib', vars={'platbase':'${CMAKE_INSTALL_PREFIX}'}) +#stdout.write(path)" +#OUTPUT_VARIABLE PYTHON_INSTALL_DIR) INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH}) MESSAGE(STATUS "Python3 install dir is ${PYTHON_INSTALL_DIR}") +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.14.0.bb b/poky/meta/recipes-devtools/librepo/librepo_1.14.0.bb deleted file mode 100644 index 109b40ce3..000000000 --- a/poky/meta/recipes-devtools/librepo/librepo_1.14.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "A library providing C and Python (libcURL like) API \ - for downloading linux repository metadata and packages." -HOMEPAGE = "https://github.com/rpm-software-management/librepo" -DESCRIPTION = "${SUMMARY}" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "git://github.com/rpm-software-management/librepo.git \ - file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ - file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ - " - -SRCREV = "88b769eceefc1b151937e6b54d108b48f2177d87" - -S = "${WORKDIR}/git" - -DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" - -inherit cmake distutils3-base pkgconfig - -EXTRA_OECMAKE = " \ - -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} \ - -DPYTHON_DESIRED=3 \ - -DENABLE_TESTS=OFF \ - -DENABLE_DOCS=OFF \ - -DWITH_ZCHUNK=OFF \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.14.1.bb b/poky/meta/recipes-devtools/librepo/librepo_1.14.1.bb new file mode 100644 index 000000000..867645258 --- /dev/null +++ b/poky/meta/recipes-devtools/librepo/librepo_1.14.1.bb @@ -0,0 +1,29 @@ +SUMMARY = "A library providing C and Python (libcURL like) API \ + for downloading linux repository metadata and packages." +HOMEPAGE = "https://github.com/rpm-software-management/librepo" +DESCRIPTION = "${SUMMARY}" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/rpm-software-management/librepo.git \ + file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ + file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ + " + +SRCREV = "c5fe6b85b47f2e4f7a37cff3f3214205d1b54db5" + +S = "${WORKDIR}/git" + +DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" + +inherit cmake distutils3-base pkgconfig + +EXTRA_OECMAKE = " \ + -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} \ + -DPYTHON_DESIRED=3 \ + -DENABLE_TESTS=OFF \ + -DENABLE_DOCS=OFF \ + -DWITH_ZCHUNK=OFF \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/m4/m4-1.4.18.inc b/poky/meta/recipes-devtools/m4/m4-1.4.18.inc deleted file mode 100644 index 6475b02f8..000000000 --- a/poky/meta/recipes-devtools/m4/m4-1.4.18.inc +++ /dev/null @@ -1,63 +0,0 @@ -SUMMARY = "Traditional Unix macro processor" -HOMEPAGE = "https://www.gnu.org/software/m4/m4.html" -DESCRIPTION = "GNU m4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 \ -compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). \ -GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc." - -inherit autotools texinfo ptest - -SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \ - file://ac_config_links.patch \ - file://m4-1.4.18-glibc-change-work-around.patch \ - file://0001-c-stack-stop-using-SIGSTKSZ.patch \ - " -SRC_URI_append_class-target = " file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ - file://run-ptest \ - file://serial-tests-config.patch \ - file://0001-test-getopt-posix-fix.patch \ - " - -SRC_URI[md5sum] = "a077779db287adf4e12a035029002d28" -SRC_URI[sha256sum] = "ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab" - -LICENSE = "GPLv3" - -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\ - file://examples/COPYING;md5=4031593b2166d6c47cae282d944a7ede" - -# Fix "Argument list too long" error when len(TMPDIR) = 410 -acpaths = "-I ./m4" - -EXTRA_OECONF += "--without-libsigsegv-prefix" - -EXTRA_OEMAKE += "'infodir=${infodir}'" - -do_compile_ptest() { - cd ${B}/tests - sed -i '/^buildtest-TESTS: /c buildtest-TESTS: $(TESTS) $(check_LIBRARIES) $(check_PROGRAMS)' Makefile - oe_runmake buildtest-TESTS -} - -do_install_ptest() { - cp -r ${B}/tests ${D}${PTEST_PATH} - cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests/ - sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile - sed -i -e "s;LOCALE_FR='fr_FR';LOCALE_FR='fr_FR.iso88591';g" \ - -e "s;LOCALE_FR_UTF8='none';LOCALE_FR_UTF8='fr_FR.utf8';g" ${D}${PTEST_PATH}/tests/Makefile - find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} - cp ${S}/build-aux/update-copyright ${D}${PTEST_PATH}/tests/ - sed -i 's;update-copyright;./update-copyright;g' ${D}${PTEST_PATH}/tests/test-update-copyright.sh - chmod 0755 ${D}${PTEST_PATH}/tests/test-mbrtowc-w32-1.sh ${D}${PTEST_PATH}/tests/test-spawn-pipe-main \ - ${D}${PTEST_PATH}/tests/test-spawn-pipe-child ${D}${PTEST_PATH}/tests/test-version-etc \ - ${D}${PTEST_PATH}/tests/test-xalloc-die -} - - -RDEPENDS_${PN}-ptest += "make coreutils diffutils" -RDEPENDS_${PN}-ptest_append_libc-glibc = "\ - locale-base-fr-fr.iso-8859-1 \ -" - -INSANE_SKIP_${PN}-ptest += "ldflags" -INSANE_SKIP_${PN}-ptest += "rpaths" - diff --git a/poky/meta/recipes-devtools/m4/m4-1.4.19.inc b/poky/meta/recipes-devtools/m4/m4-1.4.19.inc new file mode 100644 index 000000000..5f3d59226 --- /dev/null +++ b/poky/meta/recipes-devtools/m4/m4-1.4.19.inc @@ -0,0 +1,61 @@ +SUMMARY = "Traditional Unix macro processor" +HOMEPAGE = "https://www.gnu.org/software/m4/m4.html" +DESCRIPTION = "GNU m4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 \ +compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). \ +GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc." + +inherit autotools texinfo ptest gettext + +SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \ + file://ac_config_links.patch \ + " +SRC_URI_append_class-target = " file://run-ptest \ + file://serial-tests-config.patch \ + " + +SRC_URI[md5sum] = "f4a2b0284d80353b995f8ef2385ed73c" +SRC_URI[sha256sum] = "3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70" + +LICENSE = "GPLv3" + +LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464\ + file://examples/COPYING;md5=4031593b2166d6c47cae282d944a7ede" + +# Fix "Argument list too long" error when len(TMPDIR) = 410 +acpaths = "-I ./m4" + +EXTRA_OECONF += "--without-libsigsegv-prefix" + +EXTRA_OEMAKE += "'infodir=${infodir}'" + +do_compile_ptest() { + cd ${B}/tests + sed -i '/^buildtest-TESTS: /c buildtest-TESTS: $(TESTS) $(check_LIBRARIES) $(check_PROGRAMS)' Makefile + oe_runmake buildtest-TESTS +} + +do_install_ptest() { + cp -r ${B}/tests ${D}${PTEST_PATH} + cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests/ + sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile + sed -i -e "s;LOCALE_FR='fr_FR';LOCALE_FR='fr_FR.iso88591';g" \ + -e "s;LOCALE_FR_UTF8='none';LOCALE_FR_UTF8='fr_FR.utf8';g" ${D}${PTEST_PATH}/tests/Makefile + find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} + cp ${S}/build-aux/update-copyright ${D}${PTEST_PATH}/tests/ + sed -i 's;update-copyright;./update-copyright;g' ${D}${PTEST_PATH}/tests/test-update-copyright.sh + chmod 0755 ${D}${PTEST_PATH}/tests/test-mbrtowc-w32-1.sh ${D}${PTEST_PATH}/tests/test-spawn-pipe-main \ + ${D}${PTEST_PATH}/tests/test-spawn-pipe-child ${D}${PTEST_PATH}/tests/test-version-etc \ + ${D}${PTEST_PATH}/tests/test-xalloc-die + + ln -s ptest ${D}${libdir}/${BPN}/${BP} +} + + +RDEPENDS_${PN}-ptest += "make coreutils diffutils" +RDEPENDS_${PN}-ptest_append_libc-glibc = "\ + locale-base-fr-fr.iso-8859-1 \ +" + +INSANE_SKIP_${PN}-ptest += "ldflags" +INSANE_SKIP_${PN}-ptest += "rpaths" + diff --git a/poky/meta/recipes-devtools/m4/m4-native_1.4.18.bb b/poky/meta/recipes-devtools/m4/m4-native_1.4.18.bb deleted file mode 100644 index 407ad8933..000000000 --- a/poky/meta/recipes-devtools/m4/m4-native_1.4.18.bb +++ /dev/null @@ -1,14 +0,0 @@ -require m4-${PV}.inc - -inherit native - -INHIBIT_AUTOTOOLS_DEPS = "1" -DEPENDS += "gnu-config-native" - -do_configure() { - install -m 0644 ${STAGING_DATADIR}/gnu-config/config.sub . - install -m 0644 ${STAGING_DATADIR}/gnu-config/config.guess . - oe_runconf -} - -UPSTREAM_CHECK_URI = "${GNU_MIRROR}/m4/" diff --git a/poky/meta/recipes-devtools/m4/m4-native_1.4.19.bb b/poky/meta/recipes-devtools/m4/m4-native_1.4.19.bb new file mode 100644 index 000000000..407ad8933 --- /dev/null +++ b/poky/meta/recipes-devtools/m4/m4-native_1.4.19.bb @@ -0,0 +1,14 @@ +require m4-${PV}.inc + +inherit native + +INHIBIT_AUTOTOOLS_DEPS = "1" +DEPENDS += "gnu-config-native" + +do_configure() { + install -m 0644 ${STAGING_DATADIR}/gnu-config/config.sub . + install -m 0644 ${STAGING_DATADIR}/gnu-config/config.guess . + oe_runconf +} + +UPSTREAM_CHECK_URI = "${GNU_MIRROR}/m4/" diff --git a/poky/meta/recipes-devtools/m4/m4/0001-Unset-need_charset_alias-when-building-for-musl.patch b/poky/meta/recipes-devtools/m4/m4/0001-Unset-need_charset_alias-when-building-for-musl.patch deleted file mode 100644 index ba1a4bab4..000000000 --- a/poky/meta/recipes-devtools/m4/m4/0001-Unset-need_charset_alias-when-building-for-musl.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 13 Apr 2015 17:02:13 -0700 -Subject: [PATCH] Unset need_charset_alias when building for musl - -localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4 -which actually shoudl be fixed in gnulib and then all downstream -projects will get it eventually. For now we apply the fix to -coreutils - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - lib/gnulib.mk | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/gnulib.mk b/lib/gnulib.mk -index e1d74db..c0e92dd 100644 ---- a/lib/gnulib.mk -+++ b/lib/gnulib.mk -@@ -1882,7 +1882,7 @@ install-exec-localcharset: all-local - case '$(host_os)' in \ - darwin[56]*) \ - need_charset_alias=true ;; \ -- darwin* | cygwin* | mingw* | pw32* | cegcc*) \ -+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \ - need_charset_alias=false ;; \ - *) \ - need_charset_alias=true ;; \ --- -2.1.4 - diff --git a/poky/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch b/poky/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch deleted file mode 100644 index 883b8a207..000000000 --- a/poky/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 69238f15129f35eb4756ad8e2004e0d7907cb175 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 30 Apr 2021 17:40:36 -0700 -Subject: [PATCH] c-stack: stop using SIGSTKSZ - -This patch is required with glibc 2.34+ -based on gnulib [1] - -[1] https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=f9e2b20a12a230efa30f1d479563ae07d276a94b - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - lib/c-stack.c | 22 +++++++++++++--------- - 1 file changed, 13 insertions(+), 9 deletions(-) - -diff --git a/lib/c-stack.c b/lib/c-stack.c -index 5353c08..863f764 100644 ---- a/lib/c-stack.c -+++ b/lib/c-stack.c -@@ -51,13 +51,14 @@ - typedef struct sigaltstack stack_t; - #endif - #ifndef SIGSTKSZ --# define SIGSTKSZ 16384 --#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384 -+#define get_sigstksz() (16384) -+#elif HAVE_LIBSIGSEGV - /* libsigsegv 2.6 through 2.8 have a bug where some architectures use - more than the Linux default of an 8k alternate stack when deciding - if a fault was caused by stack overflow. */ --# undef SIGSTKSZ --# define SIGSTKSZ 16384 -+#define get_sigstksz() ((SIGSTKSZ) < 16384 ? 16384 : (SIGSTKSZ)) -+#else -+#define get_sigstksz() ((SIGSTKSZ)) - #endif - - #include -@@ -131,7 +132,8 @@ die (int signo) - /* Storage for the alternate signal stack. */ - static union - { -- char buffer[SIGSTKSZ]; -+ /* allocate buffer with size from get_sigstksz() */ -+ char *buffer; - - /* These other members are for proper alignment. There's no - standard way to guarantee stack alignment, but this seems enough -@@ -203,10 +205,11 @@ c_stack_action (void (*action) (int)) - program_error_message = _("program error"); - stack_overflow_message = _("stack overflow"); - -+ alternate_signal_stack.buffer = malloc(get_sigstksz()); - /* Always install the overflow handler. */ - if (stackoverflow_install_handler (overflow_handler, - alternate_signal_stack.buffer, -- sizeof alternate_signal_stack.buffer)) -+ get_sigstksz())) - { - errno = ENOTSUP; - return -1; -@@ -279,14 +282,15 @@ c_stack_action (void (*action) (int)) - stack_t st; - struct sigaction act; - st.ss_flags = 0; -+ alternate_signal_stack.buffer = malloc(get_sigstksz()); - # if SIGALTSTACK_SS_REVERSED - /* Irix mistakenly treats ss_sp as the upper bound, rather than - lower bound, of the alternate stack. */ -- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *); -- st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *); -+ st.ss_sp = alternate_signal_stack.buffer + get_sigstksz() - sizeof (void *); -+ st.ss_size = get_sigstksz() - sizeof (void *); - # else - st.ss_sp = alternate_signal_stack.buffer; -- st.ss_size = sizeof alternate_signal_stack.buffer; -+ st.ss_size = get_sigstksz(); - # endif - r = sigaltstack (&st, NULL); - if (r != 0) --- -2.31.1 - diff --git a/poky/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch b/poky/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch deleted file mode 100644 index 11508ee0e..000000000 --- a/poky/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 75bea7c72a919859674f493548653de88f96c798 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Mon, 22 Apr 2019 10:36:13 +0800 -Subject: [PATCH] test-getopt-posix fix - -fix below problem: -test-getopt.h:754: assertion 'strcmp (argv[1], "donald") == 0' failed - -get this patch from -https://github.com/habitat-sh/core-plans/blob/master/m4/fix-test-getopt-posix-with-glibc-2.26.patch - -Upstream-Status: Pending - -have report this bug to m4-discuss@gnu.org - -Signed-off-by: Changqing Li ---- - tests/test-getopt-posix.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/tests/test-getopt-posix.c b/tests/test-getopt-posix.c -index 5532271..2a3d511 100644 ---- a/tests/test-getopt-posix.c -+++ b/tests/test-getopt-posix.c -@@ -22,6 +22,13 @@ - ftell link warning if we are not using the gnulib ftell module. */ - #define _GL_NO_LARGE_FILES - -+/* -+ * Glibc 2.26 does hard include bits/getopt_posix.h which causes the system -+ * to use glibc's getopt but the tests expect gnulib behavior. Until a better -+ * fix is available this avoids that mis-resolution. -+ */ -+#include -+ - /* POSIX and glibc provide the getopt() function in , see - http://pubs.opengroup.org/onlinepubs/9699919799/functions/getopt.html - https://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/m4/m4/ac_config_links.patch b/poky/meta/recipes-devtools/m4/m4/ac_config_links.patch index 71edf5951..39fcd9189 100644 --- a/poky/meta/recipes-devtools/m4/m4/ac_config_links.patch +++ b/poky/meta/recipes-devtools/m4/m4/ac_config_links.patch @@ -12,20 +12,26 @@ source, and what we want is to is to not touch it. Tested on x86_64_linux (Ubuntu 8.04 and 9.10). -2009-11-10 Esben Haabendal +2009-11-10 Esben Haabendal +--- + configure | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) -Index: m4-1.4.18/configure -=================================================================== ---- m4-1.4.18.orig/configure -+++ m4-1.4.18/configure -@@ -24415,8 +24415,8 @@ $as_echo "#define GNULIB_TEST_GETTIMEOFD +diff --git a/configure b/configure +index 883336a..6343a34 100755 +--- a/configure ++++ b/configure +@@ -37061,8 +37061,8 @@ printf "%s\n" "#define GNULIB_TEST_GETRANDOM 1" >>confdefs.h # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. - GNUmakefile=GNUmakefile - ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" -+ # GNUmakefile=GNUmakefile -+ # ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" ++# GNUmakefile=GNUmakefile ++# ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" - : + LIB_HARD_LOCALE="$LIB_SETLOCALE_NULL" +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch b/poky/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch deleted file mode 100644 index c10bcbf69..000000000 --- a/poky/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch +++ /dev/null @@ -1,130 +0,0 @@ -update for glibc libio.h removal in 2.28+ - -see -https://src.fedoraproject.org/rpms/m4/c/814d592134fad36df757f9a61422d164ea2c6c9b?branch=master - -Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4af4a4a718] -Signed-off-by: Khem Raj - -Index: m4-1.4.18/lib/fflush.c -=================================================================== ---- m4-1.4.18.orig/lib/fflush.c -+++ m4-1.4.18/lib/fflush.c -@@ -33,7 +33,7 @@ - #undef fflush - - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ - static void -@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp) - - #endif - --#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) -+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) - - # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */ -@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream) - if (stream == NULL || ! freading (stream)) - return fflush (stream); - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - clear_ungetc_buffer_preserving_position (stream); - -Index: m4-1.4.18/lib/fpending.c -=================================================================== ---- m4-1.4.18.orig/lib/fpending.c -+++ m4-1.4.18/lib/fpending.c -@@ -32,7 +32,7 @@ __fpending (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - , because they need it for implementing getc() and putc() as - fast macros. */ --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - return fp->_IO_write_ptr - fp->_IO_write_base; - #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */ -Index: m4-1.4.18/lib/fpurge.c -=================================================================== ---- m4-1.4.18.orig/lib/fpurge.c -+++ m4-1.4.18/lib/fpurge.c -@@ -62,7 +62,7 @@ fpurge (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - , because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_IO_read_end = fp->_IO_read_ptr; - fp->_IO_write_ptr = fp->_IO_write_base; - /* Avoid memory leak when there is an active ungetc buffer. */ -Index: m4-1.4.18/lib/freadahead.c -=================================================================== ---- m4-1.4.18.orig/lib/freadahead.c -+++ m4-1.4.18/lib/freadahead.c -@@ -25,7 +25,7 @@ - size_t - freadahead (FILE *fp) - { --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_write_ptr > fp->_IO_write_base) - return 0; - return (fp->_IO_read_end - fp->_IO_read_ptr) -Index: m4-1.4.18/lib/freading.c -=================================================================== ---- m4-1.4.18.orig/lib/freading.c -+++ m4-1.4.18/lib/freading.c -@@ -31,7 +31,7 @@ freading (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - , because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - return ((fp->_flags & _IO_NO_WRITES) != 0 - || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 - && fp->_IO_read_base != NULL)); -Index: m4-1.4.18/lib/fseeko.c -=================================================================== ---- m4-1.4.18.orig/lib/fseeko.c -+++ m4-1.4.18/lib/fseeko.c -@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int when - #endif - - /* These tests are based on fpurge.c. */ --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_read_end == fp->_IO_read_ptr - && fp->_IO_write_ptr == fp->_IO_write_base - && fp->_IO_save_base == NULL) -@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int when - return -1; - } - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_flags &= ~_IO_EOF_SEEN; - fp->_offset = pos; - #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ -Index: m4-1.4.18/lib/stdio-impl.h -=================================================================== ---- m4-1.4.18.orig/lib/stdio-impl.h -+++ m4-1.4.18/lib/stdio-impl.h -@@ -18,6 +18,12 @@ - the same implementation of stdio extension API, except that some fields - have different naming conventions, or their access requires some casts. */ - -+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this -+ problem by defining it ourselves. FIXME: Do not rely on glibc -+ internals. */ -+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN -+# define _IO_IN_BACKUP 0x100 -+#endif - - /* BSD stdio derived implementations. */ - diff --git a/poky/meta/recipes-devtools/m4/m4_1.4.18.bb b/poky/meta/recipes-devtools/m4/m4_1.4.18.bb deleted file mode 100644 index b12c0adf3..000000000 --- a/poky/meta/recipes-devtools/m4/m4_1.4.18.bb +++ /dev/null @@ -1,3 +0,0 @@ -require m4-${PV}.inc - -BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-devtools/m4/m4_1.4.19.bb b/poky/meta/recipes-devtools/m4/m4_1.4.19.bb new file mode 100644 index 000000000..b12c0adf3 --- /dev/null +++ b/poky/meta/recipes-devtools/m4/m4_1.4.19.bb @@ -0,0 +1,3 @@ +require m4-${PV}.inc + +BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-devtools/meson/meson.inc b/poky/meta/recipes-devtools/meson/meson.inc index f60381453..7ddfccf2d 100644 --- a/poky/meta/recipes-devtools/meson/meson.inc +++ b/poky/meta/recipes-devtools/meson/meson.inc @@ -16,9 +16,8 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P file://gi-target-dep.patch \ file://0001-Make-CPU-family-warnings-fatal.patch \ file://0002-Support-building-allarch-recipes-again.patch \ - file://4e312c19e693a69b0650ce6c8a8903163c959996.patch \ " -SRC_URI[sha256sum] = "f4820df0bc969c99019fd4af8ca5f136ee94c63d8a5ad67e7eb73bdbc9182fdd" +SRC_URI[sha256sum] = "3144a3da662fcf79f1e5602fa929f2821cba4eba28c2c923fe0a7d3e3db04d5d" UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases" UPSTREAM_CHECK_REGEX = "meson-(?P\d+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch b/poky/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch deleted file mode 100644 index 76daf019b..000000000 --- a/poky/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch +++ /dev/null @@ -1,412 +0,0 @@ -From 4e312c19e693a69b0650ce6c8a8903163c959996 Mon Sep 17 00:00:00 2001 -From: Xavier Claessens -Date: Tue, 11 May 2021 09:18:47 -0400 -Subject: [PATCH] gnome: Fix gtkdoc generation - -install_scripts used to replace @BUILD_ROOT@ and @SOURCE_ROOT@ but it -was not documented and got removed in Meson 0.58.0. gnome.gtkdoc() was -relying on that behaviour, but it has always been broken in the case the -source or build directory contains spaces. - -Fix this by changing get_include_args() to substitue paths directly -which will then get escaped correctly. - -Add a unit test that builds GObject documentation which is where this -issue has been spotted. - -Fixes: #8744 -Upstream-Status: Backport -Signed-off-by: Alexander Kanavin ---- - mesonbuild/modules/__init__.py | 54 +++++++++---------- - mesonbuild/modules/gnome.py | 15 +++--- - mesonbuild/modules/hotdoc.py | 3 +- - mesonbuild/modules/qt.py | 4 +- - mesonbuild/modules/windows.py | 5 +- - .../10 gtk-doc/doc/foobar1/foobar-docs.sgml | 2 +- - .../doc/foobar1/foobar-sections.txt | 16 ++++++ - .../10 gtk-doc/doc/foobar1/foobar.types | 4 ++ - .../10 gtk-doc/doc/foobar1/meson.build | 6 ++- - test cases/frameworks/10 gtk-doc/foo.c | 30 +++++++++++ - .../frameworks/10 gtk-doc/include/foo.h | 18 +++++++ - test cases/frameworks/10 gtk-doc/meson.build | 12 +++++ - test cases/frameworks/10 gtk-doc/test.json | 4 +- - 13 files changed, 127 insertions(+), 46 deletions(-) - create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt - create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types - create mode 100644 test cases/frameworks/10 gtk-doc/foo.c - -diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py -index ddb5e3e6cf3..c0970294c34 100644 ---- a/mesonbuild/modules/__init__.py -+++ b/mesonbuild/modules/__init__.py -@@ -56,6 +56,33 @@ def __init__(self, interpreter: 'Interpreter') -> None: - self.target_machine = interpreter.builtin['target_machine'].held_object - self.current_node = interpreter.current_node - -+ def get_include_args(self, include_dirs, prefix='-I'): -+ if not include_dirs: -+ return [] -+ -+ srcdir = self.environment.get_source_dir() -+ builddir = self.environment.get_build_dir() -+ -+ dirs_str = [] -+ for dirs in unholder(include_dirs): -+ if isinstance(dirs, str): -+ dirs_str += [f'{prefix}{dirs}'] -+ continue -+ -+ # Should be build.IncludeDirs object. -+ basedir = dirs.get_curdir() -+ for d in dirs.get_incdirs(): -+ expdir = os.path.join(basedir, d) -+ srctreedir = os.path.join(srcdir, expdir) -+ buildtreedir = os.path.join(builddir, expdir) -+ dirs_str += [f'{prefix}{buildtreedir}', -+ f'{prefix}{srctreedir}'] -+ for d in dirs.get_extra_build_dirs(): -+ dirs_str += [f'{prefix}{d}'] -+ -+ return dirs_str -+ -+ - class ModuleObject: - """Base class for all objects returned by modules - """ -@@ -71,33 +98,6 @@ def __init__(self, interpreter: T.Optional['Interpreter'] = None) -> None: - class ExtensionModule(ModuleObject): - pass - --def get_include_args(include_dirs, prefix='-I'): -- ''' -- Expand include arguments to refer to the source and build dirs -- by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution -- ''' -- if not include_dirs: -- return [] -- -- dirs_str = [] -- for dirs in unholder(include_dirs): -- if isinstance(dirs, str): -- dirs_str += [f'{prefix}{dirs}'] -- continue -- -- # Should be build.IncludeDirs object. -- basedir = dirs.get_curdir() -- for d in dirs.get_incdirs(): -- expdir = os.path.join(basedir, d) -- srctreedir = os.path.join('@SOURCE_ROOT@', expdir) -- buildtreedir = os.path.join('@BUILD_ROOT@', expdir) -- dirs_str += [f'{prefix}{buildtreedir}', -- f'{prefix}{srctreedir}'] -- for d in dirs.get_extra_build_dirs(): -- dirs_str += [f'{prefix}{d}'] -- -- return dirs_str -- - def is_module_library(fname): - ''' - Check if the file is a library-like file generated by a module-specific -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index d0b053d4f76..c91cda66f8b 100644 ---- a/mesonbuild/modules/gnome.py -+++ b/mesonbuild/modules/gnome.py -@@ -26,7 +26,6 @@ - from .. import mesonlib - from .. import interpreter - from . import GResourceTarget, GResourceHeaderTarget, GirTarget, TypelibTarget, VapiTarget --from . import get_include_args - from . import ExtensionModule - from . import ModuleReturnValue - from ..mesonlib import ( -@@ -394,7 +393,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False, - gi_includes.update([girdir]) - if isinstance(dep, InternalDependency): - cflags.update(dep.get_compile_args()) -- cflags.update(get_include_args(dep.include_directories)) -+ cflags.update(state.get_include_args(dep.include_directories)) - for lib in unholder(dep.libraries): - if isinstance(lib, build.SharedLibrary): - internal_ldflags.update(self._get_link_args(state, lib, depends, include_rpath)) -@@ -443,7 +442,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False, - else: - external_ldflags.update([lib]) - elif isinstance(dep, (build.StaticLibrary, build.SharedLibrary)): -- cflags.update(get_include_args(dep.get_include_dirs())) -+ cflags.update(state.get_include_args(dep.get_include_dirs())) - depends.append(dep) - else: - mlog.log(f'dependency {dep!r} not handled to build gir files') -@@ -853,7 +852,7 @@ def generate_gir(self, state, args, kwargs): - scan_command += self._scan_header(kwargs) - scan_command += self._scan_extra_args(kwargs) - scan_command += ['-I' + srcdir, '-I' + builddir] -- scan_command += get_include_args(girtargets_inc_dirs) -+ scan_command += state.get_include_args(girtargets_inc_dirs) - scan_command += ['--filelist=' + self._make_gir_filelist(state, srcdir, ns, nsversion, girtargets, libsources)] - scan_command += self._scan_link_withs(state, depends, kwargs) - scan_command += self._scan_include(state, depends, gir_inc_dirs, kwargs) -@@ -863,8 +862,8 @@ def generate_gir(self, state, args, kwargs): - scan_command += ['--cflags-begin'] - scan_command += cflags - scan_command += ['--cflags-end'] -- scan_command += get_include_args(inc_dirs) -- scan_command += get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=') -+ scan_command += state.get_include_args(inc_dirs) -+ scan_command += state.get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=') - scan_command += list(internal_ldflags) - scan_command += self._scan_gir_targets(state, girtargets) - scan_command += self._scan_langs(state, [lc[0] for lc in langs_compilers]) -@@ -886,7 +885,7 @@ def generate_gir(self, state, args, kwargs): - - typelib_output = f'{ns}-{nsversion}.typelib' - typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@'] -- typelib_cmd += get_include_args(gir_inc_dirs, prefix='--includedir=') -+ typelib_cmd += state.get_include_args(gir_inc_dirs, prefix='--includedir=') - - for incdir in typelib_includes: - typelib_cmd += ["--includedir=" + incdir] -@@ -1127,7 +1126,7 @@ def _get_build_args(self, kwargs, state, depends): - 'Gir include dirs should be include_directories().') - - cflags.extend(deps_cflags) -- cflags.extend(get_include_args(inc_dirs)) -+ cflags.extend(state.get_include_args(inc_dirs)) - ldflags = [] - ldflags.extend(internal_ldflags) - ldflags.extend(external_ldflags) -diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py -index bf8cd229c0d..89a5d938ea7 100644 ---- a/mesonbuild/modules/hotdoc.py -+++ b/mesonbuild/modules/hotdoc.py -@@ -22,7 +22,6 @@ - from mesonbuild.coredata import MesonException - from . import ModuleReturnValue - from . import ExtensionModule --from . import get_include_args - from ..dependencies import Dependency, InternalDependency - from ..interpreterbase import FeatureNew, InvalidArguments, noPosargs, noKwargs - from ..interpreter import CustomTargetHolder -@@ -191,7 +190,7 @@ def process_dependencies(self, deps): - for dep in mesonlib.listify(ensure_list(deps)): - dep = getattr(dep, "held_object", dep) - if isinstance(dep, InternalDependency): -- inc_args = get_include_args(dep.include_directories) -+ inc_args = self.state.get_include_args(dep.include_directories) - cflags.update([self.replace_dirs_in_string(x) - for x in inc_args]) - cflags.update(self.process_dependencies(dep.libraries)) -diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py -index b7389bd59af..1bf0099d1df 100644 ---- a/mesonbuild/modules/qt.py -+++ b/mesonbuild/modules/qt.py -@@ -23,7 +23,7 @@ - from ..mesonlib import MesonException, extract_as_list, File, unholder, version_compare - from ..dependencies import Dependency - import xml.etree.ElementTree as ET --from . import ModuleReturnValue, get_include_args, ExtensionModule -+from . import ModuleReturnValue, ExtensionModule - from ..interpreterbase import noPosargs, permittedKwargs, FeatureNew, FeatureNewKwargs - from ..interpreter import extract_required_kwarg - from ..programs import NonExistingExternalProgram -@@ -239,7 +239,7 @@ def preprocess(self, state, args, kwargs): - ui_gen = build.Generator([self.uic], ui_kwargs) - ui_output = ui_gen.process_files(f'Qt{self.qt_version} ui', ui_files, state) - sources.append(ui_output) -- inc = get_include_args(include_dirs=include_directories) -+ inc = state.get_include_args(include_dirs=include_directories) - compile_args = [] - for dep in unholder(dependencies): - if isinstance(dep, Dependency): -diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py -index d7a86380885..c4fdc196681 100644 ---- a/mesonbuild/modules/windows.py -+++ b/mesonbuild/modules/windows.py -@@ -19,7 +19,6 @@ - from .. import mlog - from .. import mesonlib, build - from ..mesonlib import MachineChoice, MesonException, extract_as_list, unholder --from . import get_include_args - from . import ModuleReturnValue - from . import ExtensionModule - from ..interpreter import CustomTargetHolder -@@ -83,12 +82,12 @@ def compile_resources(self, state, args, kwargs): - wrc_depends = extract_as_list(kwargs, 'depends', pop = True) - for d in wrc_depends: - if isinstance(d, CustomTargetHolder): -- extra_args += get_include_args([d.outdir_include()]) -+ extra_args += state.get_include_args([d.outdir_include()]) - inc_dirs = extract_as_list(kwargs, 'include_directories', pop = True) - for incd in inc_dirs: - if not isinstance(incd.held_object, (str, build.IncludeDirs)): - raise MesonException('Resource include dirs should be include_directories().') -- extra_args += get_include_args(inc_dirs) -+ extra_args += state.get_include_args(inc_dirs) - - rescomp, rescomp_type = self._find_resource_compiler(state) - if rescomp_type == ResourceCompilerType.rc: -diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml -index 95f73efdf45..6ccd087dc18 100644 ---- a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml -+++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml -@@ -35,7 +35,7 @@ - - - -- -+ - - - -diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt -new file mode 100644 -index 00000000000..d14c8dab010 ---- /dev/null -+++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt -@@ -0,0 +1,16 @@ -+
-+foo -+FooObj -+FooObj -+FooObjClass -+foo_do_something -+
-+ -+
-+version -+version -+FOO_MAJOR_VERSION -+FOO_MINOR_VERSION -+FOO_MICRO_VERSION -+
-+ -diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types -new file mode 100644 -index 00000000000..0a9c046f3ed ---- /dev/null -+++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types -@@ -0,0 +1,4 @@ -+% This include is useless it's a regression test for https://github.com/mesonbuild/meson/issues/8744 -+#include -+ -+foo_obj_get_type -diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build -index 149c6e956aa..f4b3724dbae 100644 ---- a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build -+++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build -@@ -1,5 +1,9 @@ - gnome.gtkdoc('foobar', -- src_dir : inc, -+ src_dir : [inc, '.'], - main_sgml : 'foobar-docs.sgml', - content_files : [docbook, version_xml], -+ dependencies: foo_dep, -+ # Manually written types file for regression test: -+ # https://github.com/mesonbuild/meson/issues/8744 -+ gobject_typesfile: 'foobar.types', - install : true) -diff --git a/test cases/frameworks/10 gtk-doc/foo.c b/test cases/frameworks/10 gtk-doc/foo.c -new file mode 100644 -index 00000000000..36c0639ec08 ---- /dev/null -+++ b/test cases/frameworks/10 gtk-doc/foo.c -@@ -0,0 +1,30 @@ -+#include -+ -+ -+struct _FooObj { -+ GObject parent; -+ int dummy; -+}; -+ -+G_DEFINE_TYPE(FooObj, foo_obj, G_TYPE_OBJECT) -+ -+static void foo_obj_init (FooObj *self) -+{ -+} -+ -+static void foo_obj_class_init (FooObjClass *klass) -+{ -+} -+ -+/** -+ * foo_do_something: -+ * @self: self -+ * -+ * Useless function. -+ * -+ * Returns: 0. -+ */ -+int foo_do_something(FooObj *self) -+{ -+ return 0; -+} -diff --git a/test cases/frameworks/10 gtk-doc/include/foo.h b/test cases/frameworks/10 gtk-doc/include/foo.h -index 7b8946b6a86..510f3d1ecb5 100644 ---- a/test cases/frameworks/10 gtk-doc/include/foo.h -+++ b/test cases/frameworks/10 gtk-doc/include/foo.h -@@ -1,5 +1,7 @@ - #pragma once - -+#include -+ - /** - * FooIndecision: - * @FOO_MAYBE: Something maybe -@@ -13,3 +15,19 @@ typedef enum { - FOO_POSSIBLY, - } FooIndecision; - -+/** -+ * FooObjClass: -+ * -+ * The class -+ */ -+ -+/** -+ * FooObj: -+ * -+ * The instance -+ */ -+ -+#define FOO_TYPE_OBJ foo_obj_get_type() -+G_DECLARE_FINAL_TYPE(FooObj, foo_obj, FOO, OBJ, GObject) -+ -+int foo_do_something(FooObj *self); -diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test cases/frameworks/10 gtk-doc/meson.build -index 5c22ad0afa4..292980fafa7 100644 ---- a/test cases/frameworks/10 gtk-doc/meson.build -+++ b/test cases/frameworks/10 gtk-doc/meson.build -@@ -24,4 +24,16 @@ if gtkdoc_ver.version_compare('<1.26') - error('MESON_SKIP_TEST gtk-doc test requires gtkdoc >= 1.26.') - endif - -+gobject = dependency('gobject-2.0') -+ -+libfoo = library('foo', 'foo.c', -+ include_directories: inc, -+ dependencies: gobject, -+) -+ -+foo_dep = declare_dependency( -+ link_with: libfoo, -+ include_directories: inc, -+) -+ - subdir('doc') -diff --git a/test cases/frameworks/10 gtk-doc/test.json b/test cases/frameworks/10 gtk-doc/test.json -index c44126cc741..03ad0595817 100644 ---- a/test cases/frameworks/10 gtk-doc/test.json -+++ b/test cases/frameworks/10 gtk-doc/test.json -@@ -4,8 +4,8 @@ - {"type": "file", "file": "usr/share/gtk-doc/html/foobar/BAR.html"}, - {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.devhelp2"}, - {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.html"}, -- {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo.html"}, -- {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo-version.html"}, -+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/FooObj.html"}, -+ {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foo-version.html"}, - {"type": "file", "file": "usr/share/gtk-doc/html/foobar/home.png"}, - {"type": "file", "file": "usr/share/gtk-doc/html/foobar/index.html"}, - {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left.png"}, diff --git a/poky/meta/recipes-devtools/meson/meson_0.58.0.bb b/poky/meta/recipes-devtools/meson/meson_0.58.0.bb deleted file mode 100644 index de9b905c1..000000000 --- a/poky/meta/recipes-devtools/meson/meson_0.58.0.bb +++ /dev/null @@ -1,4 +0,0 @@ -include meson.inc - -BBCLASSEXTEND = "native" - diff --git a/poky/meta/recipes-devtools/meson/meson_0.58.1.bb b/poky/meta/recipes-devtools/meson/meson_0.58.1.bb new file mode 100644 index 000000000..de9b905c1 --- /dev/null +++ b/poky/meta/recipes-devtools/meson/meson_0.58.1.bb @@ -0,0 +1,4 @@ +include meson.inc + +BBCLASSEXTEND = "native" + diff --git a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb deleted file mode 100644 index 74e1a7104..000000000 --- a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb +++ /dev/null @@ -1,56 +0,0 @@ -include meson.inc - -inherit meson-routines -inherit nativesdk - -SRC_URI += "file://meson-setup.py \ - file://meson-wrapper" - -# The cross file logic is similar but not identical to that in meson.bbclass, -# since it's generating for an SDK rather than a cross-compile. Important -# differences are: -# - We can't set vars like CC, CXX, etc. yet because they will be filled in with -# real paths by meson-setup.sh when the SDK is extracted. -# - Some overrides aren't needed, since the SDK injects paths that take care of -# them. -do_install_append() { - install -d ${D}${datadir}/meson - cat >${D}${datadir}/meson/meson.cross.template <${D}${datadir}/meson/meson.cross.template < -Date: Tue, 15 Dec 2020 15:17:54 -0600 -Subject: [opkg][opkg-0.4.4 PATCH] tests: let the OS negotiate relative package - dirs - -In cases where a regression test requires that a package be installed to -a subdirectory in the test feed, the opk.py module will attempt to -resolve the subdirectory and rebase it to the root of the test feed. - -This is unnecessary, since all operations which make use of the -subdirectory path do so from the perspective of the test feed already. -Further, the rebase implementation breaks in cases where the test feed -is beyond a symlink. - -Remove the resolve-and-rebase logic, and allow the OS to negotiate the -relative path. - -Upstream-Status: Submitted [https://groups.google.com/g/opkg-devel/c/dE1o7_OVQSY] - -Signed-off-by: Alex Stewart ---- - tests/opk.py | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/tests/opk.py b/tests/opk.py -index 692339567f72441766c8e658edc5bdf6a339f77d..711abacaeb328283e31524f6a49305fc7d39696a 100644 ---- a/tests/opk.py -+++ b/tests/opk.py -@@ -58,9 +58,7 @@ class Opk: - if 'Version' not in control.keys(): - control['Version'] = '1.0' - if subdirectory is not None: -- subdir = Path(subdirectory).resolve() -- opkdir = Path(cfg.opkdir) -- self._relative_dir = subdir.relative_to(opkdir) -+ self._relative_dir = Path(subdirectory) - else: - self._relative_dir = None - self.control = control --- -2.29.2 - diff --git a/poky/meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch b/poky/meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch deleted file mode 100644 index 4578fa33b..000000000 --- a/poky/meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch +++ /dev/null @@ -1,24 +0,0 @@ -Having CLEAN_DATE come from the current date doesn't allow for build -reproducibility. Add the option of using SOURCE_DATE_EPOCH if set -which for OE, it will be. - -Upstream-Status: Pending -RP 2021/2/2 - -Index: opkg-0.4.4/configure.ac -=================================================================== ---- opkg-0.4.4.orig/configure.ac -+++ opkg-0.4.4/configure.ac -@@ -281,7 +281,11 @@ AC_FUNC_UTIME_NULL - AC_FUNC_VPRINTF - AC_CHECK_FUNCS([memmove memset mkdir regcomp strchr strcspn strdup strerror strndup strrchr strstr strtol strtoul sysinfo utime]) - --CLEAN_DATE=`date +"%B %Y" | tr -d '\n'` -+if ! test -z "$SOURCE_DATE_EPOCH" ; then -+ CLEAN_DATE=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH +"%B %Y" | tr -d '\n'` -+else -+ CLEAN_DATE=`date +"%B %Y" | tr -d '\n'` -+fi - - AC_SUBST([CLEAN_DATE]) - diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.4.4.bb b/poky/meta/recipes-devtools/opkg/opkg_0.4.4.bb deleted file mode 100644 index 9eca61be2..000000000 --- a/poky/meta/recipes-devtools/opkg/opkg_0.4.4.bb +++ /dev/null @@ -1,77 +0,0 @@ -SUMMARY = "Open Package Manager" -SUMMARY_libopkg = "Open Package Manager library" -SECTION = "base" -HOMEPAGE = "http://code.google.com/p/opkg/" -DESCRIPTION = "Opkg is a lightweight package management system based on Ipkg." -BUGTRACKER = "http://code.google.com/p/opkg/issues/list" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae" - -DEPENDS = "libarchive" - -PE = "1" - -SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ - file://opkg.conf \ - file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ - file://0001-tests-let-the-OS-negotiate-relative-package-dirs.patch \ - file://sourcedateepoch.patch \ - file://run-ptest \ -" - -SRC_URI[md5sum] = "345900c1d4747d58455867f9fe88ca43" -SRC_URI[sha256sum] = "2217acc58b8eb31300631ebae75e222ebc700c9c1cf6408088705d19a472c839" - -# This needs to be before ptest inherit, otherwise all ptest files end packaged -# in libopkg package if OPKGLIBDIR == libdir, because default -# PTEST_PATH ?= "${libdir}/${BPN}/ptest" -PACKAGES =+ "libopkg" - -inherit autotools pkgconfig ptest - -target_localstatedir := "${localstatedir}" -OPKGLIBDIR ??= "${target_localstatedir}/lib" - -PACKAGECONFIG ??= "libsolv" - -PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\ - gnupg gpgme libgpg-error,\ - ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\ - " -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" -PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" -PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" - -EXTRA_OECONF += " --disable-pathfinder" -EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" - -do_install_append () { - install -d ${D}${sysconfdir}/opkg - install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf - echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf - - # We need to create the lock directory - install -d ${D}${OPKGLIBDIR}/opkg -} - -do_install_ptest () { - sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile - sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile -} - -RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" -RDEPENDS_${PN}_class-native = "" -RDEPENDS_${PN}_class-nativesdk = "" -RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" -RREPLACES_${PN} = "opkg-nogpg opkg-collateral" -RCONFLICTS_${PN} = "opkg-collateral" -RPROVIDES_${PN} = "opkg-collateral" - -FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" - -BBCLASSEXTEND = "native nativesdk" - -CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.4.5.bb b/poky/meta/recipes-devtools/opkg/opkg_0.4.5.bb new file mode 100644 index 000000000..56d6211ae --- /dev/null +++ b/poky/meta/recipes-devtools/opkg/opkg_0.4.5.bb @@ -0,0 +1,88 @@ +SUMMARY = "Open Package Manager" +SUMMARY_libopkg = "Open Package Manager library" +SECTION = "base" +HOMEPAGE = "http://code.google.com/p/opkg/" +DESCRIPTION = "Opkg is a lightweight package management system based on Ipkg." +BUGTRACKER = "http://code.google.com/p/opkg/issues/list" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae" + +DEPENDS = "libarchive" + +PE = "1" + +SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ + file://opkg.conf \ + file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "5dc41ad37d88803b5e0f456a9c5a0811" +SRC_URI[sha256sum] = "a1214a75fa34fb9228db8da47308e0e711b1c93fd8938cf164c10fd28eb50f1e" + +# This needs to be before ptest inherit, otherwise all ptest files end packaged +# in libopkg package if OPKGLIBDIR == libdir, because default +# PTEST_PATH ?= "${libdir}/${BPN}/ptest" +PACKAGES =+ "libopkg" + +inherit autotools pkgconfig ptest + +target_localstatedir := "${localstatedir}" +OPKGLIBDIR ??= "${target_localstatedir}/lib" + +PACKAGECONFIG ??= "libsolv" + +PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\ + gnupg gpgme libgpg-error,\ + ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\ + " +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" +PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" + +EXTRA_OECONF += " --disable-pathfinder" +EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" + +do_install_append () { + install -d ${D}${sysconfdir}/opkg + install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf + echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf + + # We need to create the lock directory + install -d ${D}${OPKGLIBDIR}/opkg +} + +do_install_ptest () { + sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile + sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile +} + +WARN_QA_append += "openssl-deprecation" +QAPKGTEST[openssl-deprecation] = "package_qa_check_openssl_deprecation" +def package_qa_check_openssl_deprecation (package, d, messages): + sane = True + + pkgconfig = (d.getVar("PACKAGECONFIG") or "").split() + if pkgconfig and 'openssl' in pkgconfig: + package_qa_add_message(messages, 'openssl-deprecation', '"openssl" in opkg.bb PACKAGECONFIG. Feed signature checking with OpenSSL will be deprecated in the next opkg release. Consider using GPG checking instead.') + sane = False + + return sane + + +RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" +RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}_class-nativesdk = "" +RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" +RREPLACES_${PN} = "opkg-nogpg opkg-collateral" +RCONFLICTS_${PN} = "opkg-collateral" +RPROVIDES_${PN} = "opkg-collateral" + +FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" + +BBCLASSEXTEND = "native nativesdk" + +CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch new file mode 100644 index 000000000..744e4e09c --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch @@ -0,0 +1,27 @@ +From d22f2bb5afcd278b68999f5ce0362328fc8c7723 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 3 Jun 2021 18:50:56 +0200 +Subject: [PATCH] cnf/configure_func_sel.sh: disable thread_safe_nl_langinfo_l + +Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/115] +Signed-off-by: Alexander Kanavin +--- + cnf/configure_func_sel.sh | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/cnf/configure_func_sel.sh b/cnf/configure_func_sel.sh +index f48294f..90d350d 100644 +--- a/cnf/configure_func_sel.sh ++++ b/cnf/configure_func_sel.sh +@@ -97,5 +97,9 @@ else + result "irrelevant" + fi + +-# Assume nl_langinfo_l is threadsafe if available +-define d_thread_safe_nl_langinfo_l "$d_nl_langinfo_l" ++# thread_safe_nl_langinfo_l is not enabled by default ++# by upstream, and causes t/Langinfo.t to fail when it is ++# (starting from 5.34.0). This means the configuration is ++# either not well tested, or not at all tested, so we should ++# pick a safer option. ++define d_thread_safe_nl_langinfo_l "undef" diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch new file mode 100644 index 000000000..3b0fc453e --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch @@ -0,0 +1,69 @@ +From 19c1987b455998d2959a5fdf3d1ed911d35e70f2 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 2 Jan 2019 17:55:35 +0100 +Subject: [PATCH] configure_path.sh: do not hardcode $prefix/lib as library + path + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin + +--- + cnf/configure_args.sh | 2 +- + cnf/configure_path.sh | 11 ++++++----- + 2 files changed, 7 insertions(+), 6 deletions(-) + +diff --git a/cnf/configure_args.sh b/cnf/configure_args.sh +index 29ca4f5..3297fb3 100644 +--- a/cnf/configure_args.sh ++++ b/cnf/configure_args.sh +@@ -155,7 +155,7 @@ while [ $i -le $# -o -n "$n" ]; do + help) mode="help" ;; + regen|regenerate) mode="regen" ;; + keeplog) defuser "$a" 1 ;; +- prefix|html[13]dir|libsdir) defuser $a "$v" ;; ++ prefix|html[13]dir|libsdir|libdir) defuser $a "$v" ;; + man[13]dir|otherlibsdir) defuser $a "$v" ;; + siteprefix|sitehtml[13]dir) defuser $a "$v" ;; + siteman[13]dir|vendorman[13]dir)defuser $a "$v" ;; +diff --git a/cnf/configure_path.sh b/cnf/configure_path.sh +index fe7eac7..bcba8b8 100644 +--- a/cnf/configure_path.sh ++++ b/cnf/configure_path.sh +@@ -30,6 +30,7 @@ definst() { + define "$1" "$installpath$v" + } + ++define libdir "$prefix/lib" + define sharedir "$prefix/share" + define html1dir "$sharedir/doc/$perlname/html" + define html3dir "$sharedir/doc/$perlname/html" +@@ -38,16 +39,16 @@ define man1ext "1" + define man3dir "$sharedir/man/man3" + define man3ext "3" + define bin "$prefix/bin" +-define lib "$prefix/lib" ++define lib "$libdir" + define scriptdir "$prefix/bin" + define libsdirs ' ' +-defrel privlib "$prefix/lib/$package/$version" +-defrel archlib "$prefix/lib/$package/$version/$archname" ++defrel privlib "$libdir/$package/$version" ++defrel archlib "$libdir/$package/$version/$archname" + define perlpath "$prefix/bin/$perlname" + define d_archlib 'define' + + define sitebin "$prefix/bin" +-defrel sitelib_stem "$prefix/lib/$package/site_perl" ++defrel sitelib_stem "$libdir/$package/site_perl" + define sitelib "$sitelib_stem/$version" + define sitearch "$sitelib_stem/$version/$archname" + define siteprefix "$prefix" +@@ -145,7 +146,7 @@ vendortest() { + } + + vendorpath vendorbin "$vendorprefix/bin" +-vendorpath vendorlib_stem "$vendorprefix/lib/$package/vendor_perl" ++vendorpath vendorlib_stem "$libdir/$package/vendor_perl" + vendorpath vendorlib "$vendorlib_stem/$version" + vendorpath vendorarch "$vendorlib_stem/$version/$archname" + vendorpath vendorscript "$vendorprefix/bin" diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch new file mode 100644 index 000000000..0aaeaa29e --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch @@ -0,0 +1,29 @@ +From a66811c487ecf8ba8724879c253bb10dfa82aeb5 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 1 Jun 2018 19:57:32 +0300 +Subject: [PATCH] configure_tool.sh: do not quote the argument to 'command' + +As it seems to break things if the argument has spaces and arguments in it. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + cnf/configure_tool.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cnf/configure_tool.sh b/cnf/configure_tool.sh +index 32201c0..461bc68 100644 +--- a/cnf/configure_tool.sh ++++ b/cnf/configure_tool.sh +@@ -2,7 +2,7 @@ + + tryprog() { + log "trying $1=$2" +- if command -v "$2" 1>/dev/null 2>/dev/null; then ++ if command -v $2 1>/dev/null 2>/dev/null; then + define "$1" "$2" + result "$2" + return 0 +-- +2.17.0 + diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch new file mode 100644 index 000000000..e7985036a --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch @@ -0,0 +1,27 @@ +From f824cbec9ac8f113a4ae35d57bd18625d415a71b Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 27 Nov 2018 15:37:40 +0100 +Subject: [PATCH] perl-cross: add LDFLAGS when linking libperl + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 01644cd..be811a7 100644 +--- a/Makefile ++++ b/Makefile +@@ -180,7 +180,7 @@ endif + + ifeq ($(useshrplib),true) + $(LIBPERL): +- $(CC) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) ++ $(CC) $(LDFLAGS) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) + else + $(LIBPERL): + $(AR) cru $@ $(filter %$o,$^) +-- +2.17.1 + diff --git a/poky/meta/recipes-devtools/perl-cross/files/README.md b/poky/meta/recipes-devtools/perl-cross/files/README.md new file mode 100644 index 000000000..93217245c --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/README.md @@ -0,0 +1,29 @@ +**perl-cross** provides configure script, top-level Makefile +and some auxiliary files for [perl](http://www.perl.org), +with the primary emphasis on cross-compiling the source. + + # Get perl and perl-cross sources + curl -L -O http://www.cpan.org/src/5.0/perl-5.24.1.tar.gz + curl -L -O https://github.com/arsv/perl-cross/releases/download/1.1.3/perl-cross-1.1.3.tar.gz + + # Unpack perl-cross over perl, overwriting Makefile + tar -zxf perl-5.24.1.tar.gz + cd perl-5.24.1 + tar --strip-components=1 -zxf ../perl-cross-1.1.3.tar.gz + + # Proceed as usual with most autoconfed packages + ./configure --target=arm-linux-gnueabi --prefix=/usr -Duseshrplib + make -j4 + make DESTDIR=/path/to/staging/dir install + +Unlike mainline Perl, this configure never runs any target executables, +relying solely on compile/link tests and pre-defined hints. +On the flip side, it is only meant to run on resonably sane modern unix systems. + +Check [project pages](http://arsv.github.io/perl-cross/) for more info. +In particular, [configure usage](http://arsv.github.io/perl-cross/usage.html) +lists available configure options. + +Perl-cross is a free software licensed under the same terms +as the original perl source. +See LICENSE, Copying and Artistic files. diff --git a/poky/meta/recipes-devtools/perl-cross/files/determinism.patch b/poky/meta/recipes-devtools/perl-cross/files/determinism.patch new file mode 100644 index 000000000..e9bf752bc --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/determinism.patch @@ -0,0 +1,46 @@ +Fixes to make the perl build reproducible: + +a) Remove the \n from configure_attr.sh since it gets quoted differently depending on + whether the shell is bash or dash which can cause the test result to be incorrect. + Reported upstream: https://github.com/arsv/perl-cross/issues/87 + +b) Sort the order of the module lists from configure_mods.sh since otherwise + the result isn't the same leading to makefile differences. + Reported upstream: https://github.com/arsv/perl-cross/issues/88 + +c) Sort the Encode::Byte byte_t.fnm file output (and the makefile depends whilst + there for good measure) + This needs to go to upstream perl (not done) + +d) Use bash for perl-cross configure since otherwise trnl gets set to "\n" with bash + and "" with dash + Reported upstream: https://github.com/arsv/perl-cross/issues/87 + +RP 2020/2/7 + +Upstream-Status: Pending [75% submitted] +Signed-off-by: Richard Purdie -Date: Wed, 2 Jan 2019 17:55:35 +0100 -Subject: [PATCH] configure_path.sh: do not hardcode $prefix/lib as library - path - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin - ---- - cnf/configure_args.sh | 2 +- - cnf/configure_path.sh | 11 ++++++----- - 2 files changed, 7 insertions(+), 6 deletions(-) - -diff --git a/cnf/configure_args.sh b/cnf/configure_args.sh -index 29ca4f5..3297fb3 100644 ---- a/cnf/configure_args.sh -+++ b/cnf/configure_args.sh -@@ -155,7 +155,7 @@ while [ $i -le $# -o -n "$n" ]; do - help) mode="help" ;; - regen|regenerate) mode="regen" ;; - keeplog) defuser "$a" 1 ;; -- prefix|html[13]dir|libsdir) defuser $a "$v" ;; -+ prefix|html[13]dir|libsdir|libdir) defuser $a "$v" ;; - man[13]dir|otherlibsdir) defuser $a "$v" ;; - siteprefix|sitehtml[13]dir) defuser $a "$v" ;; - siteman[13]dir|vendorman[13]dir)defuser $a "$v" ;; -diff --git a/cnf/configure_path.sh b/cnf/configure_path.sh -index fe7eac7..bcba8b8 100644 ---- a/cnf/configure_path.sh -+++ b/cnf/configure_path.sh -@@ -30,6 +30,7 @@ definst() { - define "$1" "$installpath$v" - } - -+define libdir "$prefix/lib" - define sharedir "$prefix/share" - define html1dir "$sharedir/doc/$perlname/html" - define html3dir "$sharedir/doc/$perlname/html" -@@ -38,16 +39,16 @@ define man1ext "1" - define man3dir "$sharedir/man/man3" - define man3ext "3" - define bin "$prefix/bin" --define lib "$prefix/lib" -+define lib "$libdir" - define scriptdir "$prefix/bin" - define libsdirs ' ' --defrel privlib "$prefix/lib/$package/$version" --defrel archlib "$prefix/lib/$package/$version/$archname" -+defrel privlib "$libdir/$package/$version" -+defrel archlib "$libdir/$package/$version/$archname" - define perlpath "$prefix/bin/$perlname" - define d_archlib 'define' - - define sitebin "$prefix/bin" --defrel sitelib_stem "$prefix/lib/$package/site_perl" -+defrel sitelib_stem "$libdir/$package/site_perl" - define sitelib "$sitelib_stem/$version" - define sitearch "$sitelib_stem/$version/$archname" - define siteprefix "$prefix" -@@ -145,7 +146,7 @@ vendortest() { - } - - vendorpath vendorbin "$vendorprefix/bin" --vendorpath vendorlib_stem "$vendorprefix/lib/$package/vendor_perl" -+vendorpath vendorlib_stem "$libdir/$package/vendor_perl" - vendorpath vendorlib "$vendorlib_stem/$version" - vendorpath vendorarch "$vendorlib_stem/$version/$archname" - vendorpath vendorscript "$vendorprefix/bin" diff --git a/poky/meta/recipes-devtools/perl/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch b/poky/meta/recipes-devtools/perl/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch deleted file mode 100644 index 0aaeaa29e..000000000 --- a/poky/meta/recipes-devtools/perl/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch +++ /dev/null @@ -1,29 +0,0 @@ -From a66811c487ecf8ba8724879c253bb10dfa82aeb5 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 1 Jun 2018 19:57:32 +0300 -Subject: [PATCH] configure_tool.sh: do not quote the argument to 'command' - -As it seems to break things if the argument has spaces and arguments in it. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - cnf/configure_tool.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cnf/configure_tool.sh b/cnf/configure_tool.sh -index 32201c0..461bc68 100644 ---- a/cnf/configure_tool.sh -+++ b/cnf/configure_tool.sh -@@ -2,7 +2,7 @@ - - tryprog() { - log "trying $1=$2" -- if command -v "$2" 1>/dev/null 2>/dev/null; then -+ if command -v $2 1>/dev/null 2>/dev/null; then - define "$1" "$2" - result "$2" - return 0 --- -2.17.0 - diff --git a/poky/meta/recipes-devtools/perl/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch b/poky/meta/recipes-devtools/perl/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch deleted file mode 100644 index e7985036a..000000000 --- a/poky/meta/recipes-devtools/perl/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f824cbec9ac8f113a4ae35d57bd18625d415a71b Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 27 Nov 2018 15:37:40 +0100 -Subject: [PATCH] perl-cross: add LDFLAGS when linking libperl - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 01644cd..be811a7 100644 ---- a/Makefile -+++ b/Makefile -@@ -180,7 +180,7 @@ endif - - ifeq ($(useshrplib),true) - $(LIBPERL): -- $(CC) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) -+ $(CC) $(LDFLAGS) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) - else - $(LIBPERL): - $(AR) cru $@ $(filter %$o,$^) --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/perl/files/determinism.patch b/poky/meta/recipes-devtools/perl/files/determinism.patch index ccdd52a0d..aa85ccef1 100644 --- a/poky/meta/recipes-devtools/perl/files/determinism.patch +++ b/poky/meta/recipes-devtools/perl/files/determinism.patch @@ -21,19 +21,6 @@ RP 2020/2/7 Upstream-Status: Pending [75% submitted] Signed-off-by: Richard Purdie catfile($dir,$file) . "\n"; } -Index: perl-5.30.1/cnf/configure -=================================================================== ---- perl-5.30.1.orig/cnf/configure -+++ perl-5.30.1/cnf/configure -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!/bin/bash - - base=${0%/*}; test -z "$base" && base=. - diff --git a/poky/meta/recipes-devtools/perl/perl_5.32.1.bb b/poky/meta/recipes-devtools/perl/perl_5.32.1.bb deleted file mode 100644 index b28040c7f..000000000 --- a/poky/meta/recipes-devtools/perl/perl_5.32.1.bb +++ /dev/null @@ -1,393 +0,0 @@ -SUMMARY = "Perl scripting language" -HOMEPAGE = "http://www.perl.org/" -DESCRIPTION = "Perl is a highly capable, feature-rich programming language" -SECTION = "devel" -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \ - file://Artistic;md5=71a4d5d9acc18c0952a6df2218bb68da \ - " - - -SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ - https://github.com/arsv/perl-cross/releases/download/1.3.5/perl-cross-1.3.5.tar.gz;name=perl-cross \ - file://perl-rdepends.txt \ - file://0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch \ - file://0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch \ - file://0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch \ - file://errno_ver.diff \ - file://native-perlinc.patch \ - file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \ - file://perl-dynloader.patch \ - file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \ - file://0002-Constant-Fix-up-shebang.patch \ - file://determinism.patch \ - " -SRC_URI_append_class-native = " \ - file://perl-configpm-switch.patch \ -" -SRC_URI_append_class-target = " \ - file://encodefix.patch \ -" - -SRC_URI[perl.sha256sum] = "03b693901cd8ae807231b1787798cf1f2e0b8a56218d07b7da44f784a7caeb2c" -SRC_URI[perl-cross.sha256sum] = "91c66f6b2b99fccfd4fee14660b677380b0c98f9456359e91449798c2ad2ef25" - -S = "${WORKDIR}/perl-${PV}" - -inherit upstream-version-is-even update-alternatives - -DEPENDS += "zlib virtual/crypt" - -PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0" - -PACKAGECONFIG ??= "bdb gdbm" -PACKAGECONFIG[bdb] = ",-Ui_db,db" -PACKAGECONFIG[gdbm] = ",-Ui_gdbm,gdbm" - -# Don't generate comments in enc2xs output files. They are not reproducible -export ENC2XS_NO_COMMENTS = "1" - -do_unpack_append() { - bb.build.exec_func('do_copy_perlcross', d) -} - -do_copy_perlcross() { - cp -rfp ${WORKDIR}/perl-cross*/* ${S} -} - -do_configure_class-target() { - ./configure --prefix=${prefix} --libdir=${libdir} \ - --target=${TARGET_SYS} \ - -Duseshrplib \ - -Dsoname=libperl.so.5 \ - -Dvendorprefix=${prefix} \ - -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ - ${PACKAGECONFIG_CONFARGS} - - #perl.c uses an ARCHLIB_EXP define to generate compile-time code that - #adds the archlibexp path to @INC during run-time initialization of a - #new perl interpreter. - - #Because we've changed this value in a temporary way to make it - #possible to use ExtUtils::Embed in the target build (the temporary - #value in config.sh gets re-stripped out during packaging), the - #ARCHLIB_EXP value that gets generated still uses the temporary version - #instead of the original expected version (i.e. becauses it's in the - #generated config.h, it doesn't get stripped out during packaging like - #the others in config.sh). - - sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h -} - -do_configure_class-nativesdk() { - ./configure --prefix=${prefix} \ - --target=${TARGET_SYS} \ - -Duseshrplib \ - -Dsoname=libperl.so.5 \ - -Dvendorprefix=${prefix} \ - -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ - ${PACKAGECONFIG_CONFARGS} - - # See the comment above - sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h -} - -do_configure_class-native() { - ./configure --prefix=${prefix} \ - -Dbin=${bindir}/perl-native \ - -Duseshrplib \ - -Dsoname=libperl.so.5 \ - -Dvendorprefix=${prefix} \ - -Ui_xlocale \ - ${PACKAGECONFIG_CONFARGS} -} - -do_configure_append() { - if [ -n "$SOURCE_DATE_EPOCH" ]; then - PERL_BUILD_DATE="$(${PYTHON} -c "\ -from datetime import datetime, timezone; \ -print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %d %H:%M:%S %Y')) \ - ")" - echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h - fi -} - -do_compile() { - oe_runmake - # This isn't generated reliably so delete and re-generate. - # https://github.com/arsv/perl-cross/issues/86 - - if [ -e pod/perltoc.pod ]; then - bbnote Rebuilding perltoc.pod - rm -f pod/perltoc.pod - oe_runmake pod/perltoc.pod - fi -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install - - install -d ${D}${libdir}/perl5 - install -d ${D}${libdir}/perl5/${PV}/ - install -d ${D}${libdir}/perl5/${PV}/ExtUtils/ - - # Save native config - install config.sh ${D}${libdir}/perl5 - install lib/Config.pm ${D}${libdir}/perl5/${PV}/ - install lib/ExtUtils/typemap ${D}${libdir}/perl5/${PV}/ExtUtils/ - - # Fix up shared library - dir=$(echo ${D}/${libdir}/perl5/${PV}/*/CORE) - rm $dir/libperl.so - ln -sf ../../../../libperl.so.${PERL_LIB_VER} $dir/libperl.so - - # Try to catch Bug #13946 - if [ -e ${D}/${libdir}/perl5/${PV}/Storable.pm ]; then - bbfatal 'non-arch specific Storable.pm found! See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13946' - fi -} - -do_install_append_class-target() { - # This is used to substitute target configuration when running native perl via perl-configpm-switch.patch - ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl - - # This contains host-specific information used for building miniperl (a helper executable built with host compiler) - # and therefore isn't reproducible. I believe the file isn't actually needed on target. - rm ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/xconfig.h -} - -do_install_append_class-nativesdk() { - # This is used to substitute target configuration when running native perl via perl-configpm-switch.patch - ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl - - create_wrapper ${D}${bindir}/perl \ - PERL5LIB='$PERL5LIB:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/site_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/vendor_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/${PV}' -} - -do_install_append_class-native () { - # Those wrappers mean that perl installed from sstate (which may change - # path location) works and that in the nativesdk case, the SDK can be - # installed to a different location from the one it was built for. - create_wrapper ${D}${bindir}/perl-native/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl5/site_perl/${PV}:${STAGING_LIBDIR}/perl5/vendor_perl/${PV}:${STAGING_LIBDIR}/perl5/${PV}' - - # Use /usr/bin/env nativeperl for the perl script. - for f in `grep -Il '#! *${bindir}/perl' ${D}/${bindir}/*`; do - sed -i -e 's|${bindir}/perl|/usr/bin/env nativeperl|' $f - done -} - -PACKAGE_PREPROCESS_FUNCS += "perl_package_preprocess" - -perl_package_preprocess () { - # Fix up installed configuration - sed -i -e "s,${D},,g" \ - -e "s,${DEBUG_PREFIX_MAP},,g" \ - -e "s,--sysroot=${STAGING_DIR_HOST},,g" \ - -e "s,-isystem${STAGING_INCDIR} ,,g" \ - -e "s,${STAGING_LIBDIR},${libdir},g" \ - -e "s,${STAGING_BINDIR},${bindir},g" \ - -e "s,${STAGING_INCDIR},${includedir},g" \ - -e "s,${STAGING_BINDIR_NATIVE}/perl-native/,${bindir}/,g" \ - -e "s,${STAGING_BINDIR_NATIVE}/,,g" \ - -e "s,${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX},${bindir},g" \ - -e 's:${RECIPE_SYSROOT}::g' \ - ${PKGD}${bindir}/h2xs.perl \ - ${PKGD}${bindir}/h2ph.perl \ - ${PKGD}${bindir}/pod2man.perl \ - ${PKGD}${bindir}/pod2text.perl \ - ${PKGD}${bindir}/pod2usage.perl \ - ${PKGD}${bindir}/podchecker.perl \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/config.h \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/perl.h \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/pp.h \ - ${PKGD}${libdir}/perl5/${PV}/Config.pm \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pod \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_git.pl \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy.pl \ - ${PKGD}${libdir}/perl5/${PV}/ExtUtils/Liblist/Kid.pm \ - ${PKGD}${libdir}/perl5/${PV}/FileCache.pm \ - ${PKGD}${libdir}/perl5/${PV}/pod/*.pod \ - ${PKGD}${libdir}/perl5/config.sh -} - -inherit update-alternatives - -ALTERNATIVE_PRIORITY = "100" - -ALTERNATIVE_${PN}-misc = "corelist cpan enc2xs encguess h2ph h2xs instmodsh json_pp libnetcfg \ - piconv pl2pm pod2html pod2man pod2text pod2usage podchecker \ - prove ptar ptardiff ptargrep shasum splain xsubpp zipdetails" -ALTERNATIVE_LINK_NAME[corelist] = "${bindir}/corelist" -ALTERNATIVE_LINK_NAME[cpan] = "${bindir}/cpan" -ALTERNATIVE_LINK_NAME[enc2xs] = "${bindir}/enc2xs" -ALTERNATIVE_LINK_NAME[encguess] = "${bindir}/encguess" -ALTERNATIVE_LINK_NAME[h2ph] = "${bindir}/h2ph" -ALTERNATIVE_LINK_NAME[h2xs] = "${bindir}/h2xs" -ALTERNATIVE_LINK_NAME[instmodsh] = "${bindir}/instmodsh" -ALTERNATIVE_LINK_NAME[json_pp] = "${bindir}/json_pp" -ALTERNATIVE_LINK_NAME[libnetcfg] = "${bindir}/libnetcfg" -ALTERNATIVE_LINK_NAME[piconv] = "${bindir}/piconv" -ALTERNATIVE_LINK_NAME[pl2pm] = "${bindir}/pl2pm" -ALTERNATIVE_LINK_NAME[pod2html] = "${bindir}/pod2html" -ALTERNATIVE_LINK_NAME[pod2man] = "${bindir}/pod2man" -ALTERNATIVE_LINK_NAME[pod2text] = "${bindir}/pod2text" -ALTERNATIVE_LINK_NAME[pod2usage] = "${bindir}/pod2usage" -ALTERNATIVE_LINK_NAME[podchecker] = "${bindir}/podchecker" -ALTERNATIVE_LINK_NAME[prove] = "${bindir}/prove" -ALTERNATIVE_LINK_NAME[ptar] = "${bindir}/ptar" -ALTERNATIVE_LINK_NAME[ptardiff] = "${bindir}/ptardiff" -ALTERNATIVE_LINK_NAME[ptargrep] = "${bindir}/ptargrep" -ALTERNATIVE_LINK_NAME[shasum] = "${bindir}/shasum" -ALTERNATIVE_LINK_NAME[splain] = "${bindir}/splain" -ALTERNATIVE_LINK_NAME[xsubpp] = "${bindir}/xsubpp" -ALTERNATIVE_LINK_NAME[zipdetails] = "${bindir}/zipdetails" - -require perl-ptest.inc - -FILES_${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/libperl.so* \ - ${libdir}/perl5/site_perl \ - ${libdir}/perl5/${PV}/Config.pm \ - ${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ - ${libdir}/perl5/${PV}/*/Config_git.pl \ - ${libdir}/perl5/${PV}/*/Config_heavy-target.pl \ - ${libdir}/perl5/config.sh \ - ${libdir}/perl5/${PV}/strict.pm \ - ${libdir}/perl5/${PV}/warnings.pm \ - ${libdir}/perl5/${PV}/warnings \ - ${libdir}/perl5/${PV}/vars.pm \ - ${libdir}/perl5/site_perl \ - ${libdir}/perl5/${PV}/ExtUtils/MANIFEST.SKIP \ - ${libdir}/perl5/${PV}/ExtUtils/xsubpp \ - ${libdir}/perl5/${PV}/ExtUtils/typemap \ - " -RPROVIDES_${PN} += "perl-module-strict perl-module-vars perl-module-config perl-module-warnings \ - perl-module-warnings-register" - -FILES_${PN}-staticdev_append = " ${libdir}/perl5/${PV}/*/CORE/libperl.a" - -FILES_${PN}-dev_append = " ${libdir}/perl5/${PV}/*/CORE" - -FILES_${PN}-doc_append = " ${libdir}/perl5/${PV}/Unicode/Collate/*.txt \ - ${libdir}/perl5/${PV}/*/.packlist \ - ${libdir}/perl5/${PV}/Encode/encode.h \ - " -PACKAGES += "${PN}-misc" - -FILES_${PN}-misc = "${bindir}/*" - -PACKAGES += "${PN}-pod" - -FILES_${PN}-pod = "${libdir}/perl5/${PV}/pod \ - ${libdir}/perl5/${PV}/*.pod \ - ${libdir}/perl5/${PV}/*/*.pod \ - ${libdir}/perl5/${PV}/*/*/*.pod \ - ${libdir}/perl5/${PV}/*/*/*/*.pod \ - " - -PACKAGES += "${PN}-module-cpan ${PN}-module-unicore" - -FILES_${PN}-module-cpan += "${libdir}/perl5/${PV}/CPAN \ - " -FILES_${PN}-module-unicore += "${libdir}/perl5/${PV}/unicore" - -ALTERNATIVE_PRIORITY = "40" -ALTERNATIVE_${PN}-doc = "Thread.3" -ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3" - -# Create a perl-modules package recommending all the other perl -# packages (actually the non modules packages and not created too) -ALLOW_EMPTY_${PN}-modules = "1" -PACKAGES += "${PN}-modules " - -PACKAGESPLITFUNCS_prepend = "split_perl_packages " - -python split_perl_packages () { - libdir = d.expand('${libdir}/perl5/${PV}') - do_split_packages(d, libdir, r'.*/auto/([^.]*)/[^/]*\.(so|ld|ix|al)', '${PN}-module-%s', 'perl module %s', recursive=True, match_path=True, prepend=False) - do_split_packages(d, libdir, r'.*linux/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - do_split_packages(d, libdir, r'Module/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - do_split_packages(d, libdir, r'Module/([^\/]*)/.*', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - do_split_packages(d, libdir, r'.*linux/([^\/].*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - do_split_packages(d, libdir, r'(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/|.*linux\/)[^\/]).*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - - # perl-modules should recommend every perl module, and only the - # modules. Don't attempt to use the result of do_split_packages() as some - # modules are manually split (eg. perl-module-unicore). - packages = filter(lambda p: 'perl-module-' in p, d.getVar('PACKAGES').split()) - d.setVar(d.expand("RRECOMMENDS_${PN}-modules"), ' '.join(packages)) - - # Read the pre-generated dependency file, and use it to set module dependecies - for line in open(d.expand("${WORKDIR}") + '/perl-rdepends.txt').readlines(): - splitline = line.split() - # Filter empty lines and comments - if len(splitline) == 0 or splitline[0].startswith("#"): - continue - if bb.data.inherits_class('native', d): - module = splitline[0] + '-native' - depends = "perl-native" - else: - module = splitline[0].replace("RDEPENDS_perl", "RDEPENDS_${PN}") - depends = splitline[2].strip('"').replace("perl-module", "${PN}-module") - d.appendVar(d.expand(module), " " + depends) -} - -python() { - if d.getVar('CLASSOVERRIDE') == "class-target": - d.setVar("PACKAGES_DYNAMIC", "^${MLPREFIX}perl-module-.*(? ${WORKDIR}/perl-rdepends.inc - -# Some additional dependencies that the above doesn't manage to figure out -RDEPENDS_${PN}-module-file-spec += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc" -RDEPENDS_${PN}-module-thread-queue += "${PN}-module-attributes" -RDEPENDS_${PN}-module-overload += "${PN}-module-overloading" - -# Generated depends list beyond this line -EOPREAMBLE - test -e packages-split.new && rm -rf packages-split.new - cp -r packages-split packages-split.new && cd packages-split.new - find . -name \*.pm | xargs sed -i '/^=head/,/^=cut/d' - egrep -r "^\s*(\ */+= \"perl-module-/g;s/CPANPLUS::.*/cpanplus/g;s/CPAN::.*/cpan/g;s/::/-/g;s/ [^+\"].*//g;s/_/-/g;s/\.pl\"$/\"/;s/\"\?\$/\"/;s/(//;" | tr [:upper:] [:lower:] | \ - awk '{if ($3 != "\x22"$1"\x22"){ print $0}}'| \ - grep -v -e "\-vms\-" -e module-5 -e "^$" -e "\\$" -e your -e tk -e autoperl -e html -e http -e parse-cpan -e perl-ostype -e ndbm-file -e module-mac -e fcgi -e lwp -e dbd -e dbix | \ - sort -u | \ - sed 's/^/RDEPENDS_/;s/perl-module-/${PN}-module-/g;s/module-\(module-\)/\1/g;s/\(module-load\)-conditional/\1/g;s/encode-configlocal/&-pm/;' | \ - egrep -wv '=>|module-a|module-apache.?|module-apr|module-authen-sasl|module-b-asmdata|module-convert-ebcdic|module-devel-size|module-digest-perl-md5|module-dumpvalue|module-extutils-constant-aaargh56hash|module-extutils-xssymset|module-file-bsdglob|module-for|module-it|module-io-socket-inet6|module-io-socket-ssl|module-io-string|module-ipc-system-simple|module-lexical|module-local-lib|metadata|module-modperl-util|module-pluggable-object|module-test-builder-io-scalar|module-test2|module-text-unidecode|module-unicore|module-win32|objects\sload|syscall.ph|systeminfo.ph|%s' | \ - egrep -wv '=>|module-algorithm-diff|module-carp|module-c|module-l|module-encode-hanextra|module-extutils-makemaker-version-regex|module-file-spec|module-io-compress-lzma|module-io-uncompress-unxz|module-locale-maketext-lexicon|module-log-agent|module-meta-notation|module-net-localcfg|module-net-ping-external|module-b-deparse|module-scalar-util|module-some-module|module-symbol|module-uri|module-win32api-file' > ${WORKDIR}/perl-rdepends.generated - cat ${WORKDIR}/perl-rdepends.inc ${WORKDIR}/perl-rdepends.generated > ${THISDIR}/files/perl-rdepends.txt -} - -# bitbake perl -c create_rdepends_inc -addtask do_create_rdepends_inc - -SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper" - -perl_sysroot_create_wrapper () { - mkdir -p ${SYSROOT_DESTDIR}${bindir} - # Create a wrapper that /usr/bin/env perl will use to get perl-native. - # This MUST live in the normal bindir. - cat > ${SYSROOT_DESTDIR}${bindir}/nativeperl << EOF -#!/bin/sh -realpath=\`readlink -fn \$0\` -exec \`dirname \$realpath\`/perl-native/perl "\$@" -EOF - chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl - cat ${SYSROOT_DESTDIR}${bindir}/nativeperl -} diff --git a/poky/meta/recipes-devtools/perl/perl_5.34.0.bb b/poky/meta/recipes-devtools/perl/perl_5.34.0.bb new file mode 100644 index 000000000..7935a5872 --- /dev/null +++ b/poky/meta/recipes-devtools/perl/perl_5.34.0.bb @@ -0,0 +1,384 @@ +SUMMARY = "Perl scripting language" +HOMEPAGE = "http://www.perl.org/" +DESCRIPTION = "Perl is a highly capable, feature-rich programming language" +SECTION = "devel" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \ + file://Artistic;md5=71a4d5d9acc18c0952a6df2218bb68da \ + " + + +SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ + file://perl-rdepends.txt \ + file://0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch \ + file://0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch \ + file://errno_ver.diff \ + file://native-perlinc.patch \ + file://perl-dynloader.patch \ + file://0002-Constant-Fix-up-shebang.patch \ + file://determinism.patch \ + " +SRC_URI_append_class-native = " \ + file://perl-configpm-switch.patch \ +" +SRC_URI_append_class-target = " \ + file://encodefix.patch \ +" + +SRC_URI[perl.sha256sum] = "551efc818b968b05216024fb0b727ef2ad4c100f8cb6b43fab615fa78ae5be9a" + +S = "${WORKDIR}/perl-${PV}" + +inherit upstream-version-is-even update-alternatives + +DEPENDS += "perlcross-native zlib virtual/crypt" + +PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0" + +PACKAGECONFIG ??= "bdb gdbm" +PACKAGECONFIG[bdb] = ",-Ui_db,db" +PACKAGECONFIG[gdbm] = ",-Ui_gdbm,gdbm" + +# Don't generate comments in enc2xs output files. They are not reproducible +export ENC2XS_NO_COMMENTS = "1" + +do_configure_prepend() { + cp -rfp ${STAGING_DATADIR_NATIVE}/perl-cross/* ${S} +} + +do_configure_class-target() { + ./configure --prefix=${prefix} --libdir=${libdir} \ + --target=${TARGET_SYS} \ + -Duseshrplib \ + -Dsoname=libperl.so.5 \ + -Dvendorprefix=${prefix} \ + -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ + ${PACKAGECONFIG_CONFARGS} + + #perl.c uses an ARCHLIB_EXP define to generate compile-time code that + #adds the archlibexp path to @INC during run-time initialization of a + #new perl interpreter. + + #Because we've changed this value in a temporary way to make it + #possible to use ExtUtils::Embed in the target build (the temporary + #value in config.sh gets re-stripped out during packaging), the + #ARCHLIB_EXP value that gets generated still uses the temporary version + #instead of the original expected version (i.e. becauses it's in the + #generated config.h, it doesn't get stripped out during packaging like + #the others in config.sh). + + sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h +} + +do_configure_class-nativesdk() { + ./configure --prefix=${prefix} \ + --target=${TARGET_SYS} \ + -Duseshrplib \ + -Dsoname=libperl.so.5 \ + -Dvendorprefix=${prefix} \ + -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ + ${PACKAGECONFIG_CONFARGS} + + # See the comment above + sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h +} + +do_configure_class-native() { + ./configure --prefix=${prefix} \ + -Dbin=${bindir}/perl-native \ + -Duseshrplib \ + -Dsoname=libperl.so.5 \ + -Dvendorprefix=${prefix} \ + -Ui_xlocale \ + ${PACKAGECONFIG_CONFARGS} +} + +do_configure_append() { + if [ -n "$SOURCE_DATE_EPOCH" ]; then + PERL_BUILD_DATE="$(${PYTHON} -c "\ +from datetime import datetime, timezone; \ +print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %d %H:%M:%S %Y')) \ + ")" + echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h + fi +} + +do_compile() { + oe_runmake + # This isn't generated reliably so delete and re-generate. + # https://github.com/arsv/perl-cross/issues/86 + + if [ -e pod/perltoc.pod ]; then + bbnote Rebuilding perltoc.pod + rm -f pod/perltoc.pod + oe_runmake pod/perltoc.pod + fi +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install + + install -d ${D}${libdir}/perl5 + install -d ${D}${libdir}/perl5/${PV}/ + install -d ${D}${libdir}/perl5/${PV}/ExtUtils/ + + # Save native config + install config.sh ${D}${libdir}/perl5 + install lib/Config.pm ${D}${libdir}/perl5/${PV}/ + install lib/ExtUtils/typemap ${D}${libdir}/perl5/${PV}/ExtUtils/ + + # Fix up shared library + dir=$(echo ${D}/${libdir}/perl5/${PV}/*/CORE) + rm $dir/libperl.so + ln -sf ../../../../libperl.so.${PERL_LIB_VER} $dir/libperl.so + + # Try to catch Bug #13946 + if [ -e ${D}/${libdir}/perl5/${PV}/Storable.pm ]; then + bbfatal 'non-arch specific Storable.pm found! See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13946' + fi +} + +do_install_append_class-target() { + # This is used to substitute target configuration when running native perl via perl-configpm-switch.patch + ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl + + # This contains host-specific information used for building miniperl (a helper executable built with host compiler) + # and therefore isn't reproducible. I believe the file isn't actually needed on target. + rm ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/xconfig.h +} + +do_install_append_class-nativesdk() { + # This is used to substitute target configuration when running native perl via perl-configpm-switch.patch + ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl + + create_wrapper ${D}${bindir}/perl \ + PERL5LIB='$PERL5LIB:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/site_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/vendor_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/${PV}' +} + +do_install_append_class-native () { + # Those wrappers mean that perl installed from sstate (which may change + # path location) works and that in the nativesdk case, the SDK can be + # installed to a different location from the one it was built for. + create_wrapper ${D}${bindir}/perl-native/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl5/site_perl/${PV}:${STAGING_LIBDIR}/perl5/vendor_perl/${PV}:${STAGING_LIBDIR}/perl5/${PV}' + + # Use /usr/bin/env nativeperl for the perl script. + for f in `grep -Il '#! *${bindir}/perl' ${D}/${bindir}/*`; do + sed -i -e 's|${bindir}/perl|/usr/bin/env nativeperl|' $f + done +} + +PACKAGE_PREPROCESS_FUNCS += "perl_package_preprocess" + +perl_package_preprocess () { + # Fix up installed configuration + sed -i -e "s,${D},,g" \ + -e "s,${DEBUG_PREFIX_MAP},,g" \ + -e "s,--sysroot=${STAGING_DIR_HOST},,g" \ + -e "s,-isystem${STAGING_INCDIR} ,,g" \ + -e "s,${STAGING_LIBDIR},${libdir},g" \ + -e "s,${STAGING_BINDIR},${bindir},g" \ + -e "s,${STAGING_INCDIR},${includedir},g" \ + -e "s,${STAGING_BINDIR_NATIVE}/perl-native/,${bindir}/,g" \ + -e "s,${STAGING_BINDIR_NATIVE}/,,g" \ + -e "s,${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX},${bindir},g" \ + -e 's:${RECIPE_SYSROOT}::g' \ + ${PKGD}${bindir}/h2xs.perl \ + ${PKGD}${bindir}/h2ph.perl \ + ${PKGD}${bindir}/pod2man.perl \ + ${PKGD}${bindir}/pod2text.perl \ + ${PKGD}${bindir}/pod2usage.perl \ + ${PKGD}${bindir}/podchecker.perl \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/config.h \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/perl.h \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/pp.h \ + ${PKGD}${libdir}/perl5/${PV}/Config.pm \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pod \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_git.pl \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy.pl \ + ${PKGD}${libdir}/perl5/${PV}/ExtUtils/Liblist/Kid.pm \ + ${PKGD}${libdir}/perl5/${PV}/FileCache.pm \ + ${PKGD}${libdir}/perl5/${PV}/pod/*.pod \ + ${PKGD}${libdir}/perl5/config.sh +} + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN}-misc = "corelist cpan enc2xs encguess h2ph h2xs instmodsh json_pp libnetcfg \ + piconv pl2pm pod2html pod2man pod2text pod2usage podchecker \ + prove ptar ptardiff ptargrep shasum splain xsubpp zipdetails" +ALTERNATIVE_LINK_NAME[corelist] = "${bindir}/corelist" +ALTERNATIVE_LINK_NAME[cpan] = "${bindir}/cpan" +ALTERNATIVE_LINK_NAME[enc2xs] = "${bindir}/enc2xs" +ALTERNATIVE_LINK_NAME[encguess] = "${bindir}/encguess" +ALTERNATIVE_LINK_NAME[h2ph] = "${bindir}/h2ph" +ALTERNATIVE_LINK_NAME[h2xs] = "${bindir}/h2xs" +ALTERNATIVE_LINK_NAME[instmodsh] = "${bindir}/instmodsh" +ALTERNATIVE_LINK_NAME[json_pp] = "${bindir}/json_pp" +ALTERNATIVE_LINK_NAME[libnetcfg] = "${bindir}/libnetcfg" +ALTERNATIVE_LINK_NAME[piconv] = "${bindir}/piconv" +ALTERNATIVE_LINK_NAME[pl2pm] = "${bindir}/pl2pm" +ALTERNATIVE_LINK_NAME[pod2html] = "${bindir}/pod2html" +ALTERNATIVE_LINK_NAME[pod2man] = "${bindir}/pod2man" +ALTERNATIVE_LINK_NAME[pod2text] = "${bindir}/pod2text" +ALTERNATIVE_LINK_NAME[pod2usage] = "${bindir}/pod2usage" +ALTERNATIVE_LINK_NAME[podchecker] = "${bindir}/podchecker" +ALTERNATIVE_LINK_NAME[prove] = "${bindir}/prove" +ALTERNATIVE_LINK_NAME[ptar] = "${bindir}/ptar" +ALTERNATIVE_LINK_NAME[ptardiff] = "${bindir}/ptardiff" +ALTERNATIVE_LINK_NAME[ptargrep] = "${bindir}/ptargrep" +ALTERNATIVE_LINK_NAME[shasum] = "${bindir}/shasum" +ALTERNATIVE_LINK_NAME[splain] = "${bindir}/splain" +ALTERNATIVE_LINK_NAME[xsubpp] = "${bindir}/xsubpp" +ALTERNATIVE_LINK_NAME[zipdetails] = "${bindir}/zipdetails" + +require perl-ptest.inc + +FILES_${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/libperl.so* \ + ${libdir}/perl5/site_perl \ + ${libdir}/perl5/${PV}/Config.pm \ + ${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ + ${libdir}/perl5/${PV}/*/Config_git.pl \ + ${libdir}/perl5/${PV}/*/Config_heavy-target.pl \ + ${libdir}/perl5/config.sh \ + ${libdir}/perl5/${PV}/strict.pm \ + ${libdir}/perl5/${PV}/warnings.pm \ + ${libdir}/perl5/${PV}/warnings \ + ${libdir}/perl5/${PV}/vars.pm \ + ${libdir}/perl5/site_perl \ + ${libdir}/perl5/${PV}/ExtUtils/MANIFEST.SKIP \ + ${libdir}/perl5/${PV}/ExtUtils/xsubpp \ + ${libdir}/perl5/${PV}/ExtUtils/typemap \ + " +RPROVIDES_${PN} += "perl-module-strict perl-module-vars perl-module-config perl-module-warnings \ + perl-module-warnings-register" + +FILES_${PN}-staticdev_append = " ${libdir}/perl5/${PV}/*/CORE/libperl.a" + +FILES_${PN}-dev_append = " ${libdir}/perl5/${PV}/*/CORE" + +FILES_${PN}-doc_append = " ${libdir}/perl5/${PV}/Unicode/Collate/*.txt \ + ${libdir}/perl5/${PV}/*/.packlist \ + ${libdir}/perl5/${PV}/Encode/encode.h \ + " +PACKAGES += "${PN}-misc" + +FILES_${PN}-misc = "${bindir}/*" + +PACKAGES += "${PN}-pod" + +FILES_${PN}-pod = "${libdir}/perl5/${PV}/pod \ + ${libdir}/perl5/${PV}/*.pod \ + ${libdir}/perl5/${PV}/*/*.pod \ + ${libdir}/perl5/${PV}/*/*/*.pod \ + ${libdir}/perl5/${PV}/*/*/*/*.pod \ + " + +PACKAGES += "${PN}-module-cpan ${PN}-module-unicore" + +FILES_${PN}-module-cpan += "${libdir}/perl5/${PV}/CPAN \ + " +FILES_${PN}-module-unicore += "${libdir}/perl5/${PV}/unicore" + +ALTERNATIVE_PRIORITY = "40" +ALTERNATIVE_${PN}-doc = "Thread.3" +ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3" + +# Create a perl-modules package recommending all the other perl +# packages (actually the non modules packages and not created too) +ALLOW_EMPTY_${PN}-modules = "1" +PACKAGES += "${PN}-modules " + +PACKAGESPLITFUNCS_prepend = "split_perl_packages " + +python split_perl_packages () { + libdir = d.expand('${libdir}/perl5/${PV}') + do_split_packages(d, libdir, r'.*/auto/([^.]*)/[^/]*\.(so|ld|ix|al)', '${PN}-module-%s', 'perl module %s', recursive=True, match_path=True, prepend=False) + do_split_packages(d, libdir, r'.*linux/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + do_split_packages(d, libdir, r'Module/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + do_split_packages(d, libdir, r'Module/([^\/]*)/.*', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + do_split_packages(d, libdir, r'.*linux/([^\/].*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + do_split_packages(d, libdir, r'(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/|.*linux\/)[^\/]).*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + + # perl-modules should recommend every perl module, and only the + # modules. Don't attempt to use the result of do_split_packages() as some + # modules are manually split (eg. perl-module-unicore). + packages = filter(lambda p: 'perl-module-' in p, d.getVar('PACKAGES').split()) + d.setVar(d.expand("RRECOMMENDS_${PN}-modules"), ' '.join(packages)) + + # Read the pre-generated dependency file, and use it to set module dependecies + for line in open(d.expand("${WORKDIR}") + '/perl-rdepends.txt').readlines(): + splitline = line.split() + # Filter empty lines and comments + if len(splitline) == 0 or splitline[0].startswith("#"): + continue + if bb.data.inherits_class('native', d): + module = splitline[0] + '-native' + depends = "perl-native" + else: + module = splitline[0].replace("RDEPENDS_perl", "RDEPENDS_${PN}") + depends = splitline[2].strip('"').replace("perl-module", "${PN}-module") + d.appendVar(d.expand(module), " " + depends) +} + +python() { + if d.getVar('CLASSOVERRIDE') == "class-target": + d.setVar("PACKAGES_DYNAMIC", "^${MLPREFIX}perl-module-.*(? ${WORKDIR}/perl-rdepends.inc + +# Some additional dependencies that the above doesn't manage to figure out +RDEPENDS_${PN}-module-file-spec += "${PN}-module-file-spec-unix" +RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc" +RDEPENDS_${PN}-module-thread-queue += "${PN}-module-attributes" +RDEPENDS_${PN}-module-overload += "${PN}-module-overloading" + +# Generated depends list beyond this line +EOPREAMBLE + test -e packages-split.new && rm -rf packages-split.new + cp -r packages-split packages-split.new && cd packages-split.new + find . -name \*.pm | xargs sed -i '/^=head/,/^=cut/d' + egrep -r "^\s*(\ */+= \"perl-module-/g;s/CPANPLUS::.*/cpanplus/g;s/CPAN::.*/cpan/g;s/::/-/g;s/ [^+\"].*//g;s/_/-/g;s/\.pl\"$/\"/;s/\"\?\$/\"/;s/(//;" | tr [:upper:] [:lower:] | \ + awk '{if ($3 != "\x22"$1"\x22"){ print $0}}'| \ + grep -v -e "\-vms\-" -e module-5 -e "^$" -e "\\$" -e your -e tk -e autoperl -e html -e http -e parse-cpan -e perl-ostype -e ndbm-file -e module-mac -e fcgi -e lwp -e dbd -e dbix | \ + sort -u | \ + sed 's/^/RDEPENDS_/;s/perl-module-/${PN}-module-/g;s/module-\(module-\)/\1/g;s/\(module-load\)-conditional/\1/g;s/encode-configlocal/&-pm/;' | \ + egrep -wv '=>|module-a|module-apache.?|module-apr|module-authen-sasl|module-b-asmdata|module-convert-ebcdic|module-devel-size|module-digest-perl-md5|module-dumpvalue|module-extutils-constant-aaargh56hash|module-extutils-xssymset|module-file-bsdglob|module-for|module-it|module-io-socket-inet6|module-io-socket-ssl|module-io-string|module-ipc-system-simple|module-lexical|module-local-lib|metadata|module-modperl-util|module-pluggable-object|module-test-builder-io-scalar|module-test2|module-text-unidecode|module-unicore|module-win32|objects\sload|syscall.ph|systeminfo.ph|%s' | \ + egrep -wv '=>|module-algorithm-diff|module-carp|module-c|module-l|module-encode-hanextra|module-extutils-makemaker-version-regex|module-file-spec|module-io-compress-lzma|module-io-uncompress-unxz|module-locale-maketext-lexicon|module-log-agent|module-meta-notation|module-net-localcfg|module-net-ping-external|module-b-deparse|module-scalar-util|module-some-module|module-symbol|module-uri|module-win32api-file' > ${WORKDIR}/perl-rdepends.generated + cat ${WORKDIR}/perl-rdepends.inc ${WORKDIR}/perl-rdepends.generated > ${THISDIR}/files/perl-rdepends.txt +} + +# bitbake perl -c create_rdepends_inc +addtask do_create_rdepends_inc + +SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper" + +perl_sysroot_create_wrapper () { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + # Create a wrapper that /usr/bin/env perl will use to get perl-native. + # This MUST live in the normal bindir. + cat > ${SYSROOT_DESTDIR}${bindir}/nativeperl << EOF +#!/bin/sh +realpath=\`readlink -fn \$0\` +exec \`dirname \$realpath\`/perl-native/perl "\$@" +EOF + chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl + cat ${SYSROOT_DESTDIR}${bindir}/nativeperl +} diff --git a/poky/meta/recipes-devtools/python/python3-dbusmock_0.23.0.bb b/poky/meta/recipes-devtools/python/python3-dbusmock_0.23.0.bb deleted file mode 100644 index 80990d8fb..000000000 --- a/poky/meta/recipes-devtools/python/python3-dbusmock_0.23.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus" -HOMEPAGE = "https://pypi.org/project/python-dbusmock/" - -LICENSE = "GPL-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" - -SRC_URI[sha256sum] = "8c0b873a3f23869b416b51deeec39b3d5ab4c9875b705fc90ae917e4969c2574" - -PYPI_PACKAGE = "python-dbusmock" - -inherit pypi setuptools3 - -RDEPENDS_${PN} += "\ - ${PYTHON_PN}-dbus \ - ${PYTHON_PN}-pygobject \ - ${PYTHON_PN}-unittest \ - ${PYTHON_PN}-xml \ - " diff --git a/poky/meta/recipes-devtools/python/python3-dbusmock_0.23.1.bb b/poky/meta/recipes-devtools/python/python3-dbusmock_0.23.1.bb new file mode 100644 index 000000000..b5fa1868b --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-dbusmock_0.23.1.bb @@ -0,0 +1,18 @@ +SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus" +HOMEPAGE = "https://pypi.org/project/python-dbusmock/" + +LICENSE = "GPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI[sha256sum] = "b5c36a9c9935d1867cf79d8666b08ad906660e6d4d967e9fded4361ad7eef54f" + +PYPI_PACKAGE = "python-dbusmock" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-dbus \ + ${PYTHON_PN}-pygobject \ + ${PYTHON_PN}-unittest \ + ${PYTHON_PN}-xml \ + " diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.13.7.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.13.7.bb deleted file mode 100644 index 7688ff6d1..000000000 --- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.13.7.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "A library for property-based testing" -HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python" -LICENSE = "MPL-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c" - -PYPI_PACKAGE = "hypothesis" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "262bb8cee0293ad06c453e78cf89bddcb613b91f82ea5587f3787611ee62861b" - -RDEPENDS_${PN} += "python3-attrs python3-core python3-sortedcontainers" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.14.0.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.14.0.bb new file mode 100644 index 000000000..89071b2a9 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.14.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "A library for property-based testing" +HOMEPAGE = "https://github.com/HypothesisWorks/hypothesis/tree/master/hypothesis-python" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4ee62c16ebd0f4f99d906f36b7de8c3c" + +PYPI_PACKAGE = "hypothesis" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "9bdee01ae260329b16117e9b0229a839b4a77747a985922653f595bd2a6a541a" + +RDEPENDS_${PN} += " \ + python3-attrs \ + python3-compression \ + python3-core \ + python3-json \ + python3-sortedcontainers \ + python3-statistics \ + python3-unittest \ + " + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.3.0.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.3.0.bb deleted file mode 100644 index f4ac3c44e..000000000 --- a/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.3.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Read metadata from Python packages" -HOMEPAGE = "https://pypi.org/project/importlib-metadata/" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e88ae122f3925d8bde8319060f2ddb8e" - -inherit pypi setuptools3 - -PYPI_PACKAGE = "importlib_metadata" -UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P(\d+[\.\-_]*)+)/" - -SRC_URI[sha256sum] = "c4646abbce80191bb548636f846e353ff1edc46a06bc536ea0a60d53211dc690" - -S = "${WORKDIR}/importlib_metadata-${PV}" - -DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native" -RDEPENDS_${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2" -RDEPENDS_${PN}_append_class-target = " python3-misc" -RDEPENDS_${PN}_append_class-nativesdk = " python3-misc" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.5.0.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.5.0.bb new file mode 100644 index 000000000..7c156787a --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.5.0.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Read metadata from Python packages" +HOMEPAGE = "https://pypi.org/project/importlib-metadata/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e88ae122f3925d8bde8319060f2ddb8e" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "importlib_metadata" +UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P(\d+[\.\-_]*)+)/" + +SRC_URI[sha256sum] = "b142cc1dd1342f31ff04bb7d022492b09920cb64fed867cd3ea6f80fe3ebd139" + +S = "${WORKDIR}/importlib_metadata-${PV}" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native" +RDEPENDS_${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2" +RDEPENDS_${PN}_append_class-target = " python3-misc" +RDEPENDS_${PN}_append_class-nativesdk = " python3-misc" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-libarchive-c_3.0.bb b/poky/meta/recipes-devtools/python/python3-libarchive-c_3.0.bb deleted file mode 100644 index d29195545..000000000 --- a/poky/meta/recipes-devtools/python/python3-libarchive-c_3.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Python interface to libarchive" -DESCRIPTION = "A Python interface to libarchive. It uses the standard ctypes module to \ - dynamically load and access the C library." -HOMEPAGE = "https://github.com/Changaco/python-libarchive-c" -LICENSE = "CC0-1.0" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc" - -PYPI_PACKAGE = "libarchive-c" - -inherit pypi setuptools3 - -SRC_URI[md5sum] = "920885f5910aa8245e30896996e0415b" -SRC_URI[sha256sum] = "6f12fa9cf0e44579e5f45bbf11aa455a930fbfdb13ea0ce3c3dfe7b9b9a452ba" - -RDEPENDS_${PN} += "\ - libarchive \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-mmap \ -" - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb b/poky/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb new file mode 100644 index 000000000..d8f7862f9 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-libarchive-c_3.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "Python interface to libarchive" +DESCRIPTION = "A Python interface to libarchive. It uses the standard ctypes module to \ + dynamically load and access the C library." +HOMEPAGE = "https://github.com/Changaco/python-libarchive-c" +LICENSE = "CC0-1.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc" + +PYPI_PACKAGE = "libarchive-c" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "8c62da42a8b9bd24642e5430427e6f5a" +SRC_URI[sha256sum] = "618a7ecfbfb58ca15e11e3138d4a636498da3b6bc212811af158298530fbb87e" + +RDEPENDS_${PN} += "\ + libarchive \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-mmap \ + ${PYTHON_PN}-logging \ +" + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/python/python3-magic_0.4.22.bb b/poky/meta/recipes-devtools/python/python3-magic_0.4.22.bb deleted file mode 100644 index b82892759..000000000 --- a/poky/meta/recipes-devtools/python/python3-magic_0.4.22.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "File type identification using libmagic" -DESCRIPTION = "This module uses ctypes to access the libmagic file type \ - identification library. It makes use of the local magic database and supports \ - both textual and MIME-type output." -HOMEPAGE = "http://github.com/ahupp/python-magic" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=61495c152d794e6be5799a9edca149e3" - -PYPI_PACKAGE = "python-magic" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "ca884349f2c92ce830e3f498c5b7c7051fe2942c3ee4332f65213b8ebff15a62" - -RDEPENDS_${PN} += "file \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-shell" - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/python/python3-magic_0.4.24.bb b/poky/meta/recipes-devtools/python/python3-magic_0.4.24.bb new file mode 100644 index 000000000..a54bf2431 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-magic_0.4.24.bb @@ -0,0 +1,22 @@ +SUMMARY = "File type identification using libmagic" +DESCRIPTION = "This module uses ctypes to access the libmagic file type \ + identification library. It makes use of the local magic database and supports \ + both textual and MIME-type output." +HOMEPAGE = "http://github.com/ahupp/python-magic" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=61495c152d794e6be5799a9edca149e3" + +PYPI_PACKAGE = "python-magic" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "de800df9fb50f8ec5974761054a708af6e4246b03b4bdaee993f948947b0ebcf" + +RDEPENDS_${PN} += "file \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-shell" + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/python/python3-pycairo_1.20.0.bb b/poky/meta/recipes-devtools/python/python3-pycairo_1.20.0.bb deleted file mode 100644 index 8987b7a42..000000000 --- a/poky/meta/recipes-devtools/python/python3-pycairo_1.20.0.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Python bindings for the Cairo canvas library" -HOMEPAGE = "http://cairographics.org/pycairo" -BUGTRACKER = "http://bugs.freedesktop.org" -SECTION = "python-devel" -LICENSE = "LGPLv2.1 & MPLv1.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=f3713ca2c28d9312ad718520b6dc3eee \ - file://COPYING-LGPL-2.1;md5=fad9b3332be894bab9bc501572864b29 \ - file://COPYING-MPL-1.1;md5=bfe1f75d606912a4111c90743d6c7325" - -# cairo >= 1.14 -DEPENDS = "cairo python3" - -SRC_URI = "https://github.com/pygobject/pycairo/releases/download/v${PV}/pycairo-${PV}.tar.gz" -UPSTREAM_CHECK_URI = "https://github.com/pygobject/pycairo/releases/" - -SRC_URI[md5sum] = "a1f9b661a0000c2f42281db933284451" -SRC_URI[sha256sum] = "5695a10cb7f9ae0d01f665b56602a845b0a8cb17e2123bfece10c2e58552468c" - -S = "${WORKDIR}/pycairo-${PV}" - -inherit meson pkgconfig python3targetconfig - -CFLAGS += "-fPIC" - -BBCLASSEXTEND = "native" - -FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/*" diff --git a/poky/meta/recipes-devtools/python/python3-pycairo_1.20.1.bb b/poky/meta/recipes-devtools/python/python3-pycairo_1.20.1.bb new file mode 100644 index 000000000..d169a3ca7 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-pycairo_1.20.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "Python bindings for the Cairo canvas library" +HOMEPAGE = "http://cairographics.org/pycairo" +BUGTRACKER = "http://bugs.freedesktop.org" +SECTION = "python-devel" +LICENSE = "LGPLv2.1 & MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=f3713ca2c28d9312ad718520b6dc3eee \ + file://COPYING-LGPL-2.1;md5=fad9b3332be894bab9bc501572864b29 \ + file://COPYING-MPL-1.1;md5=bfe1f75d606912a4111c90743d6c7325" + +# cairo >= 1.14 +DEPENDS = "cairo python3" + +SRC_URI = "https://github.com/pygobject/pycairo/releases/download/v${PV}/pycairo-${PV}.tar.gz" +UPSTREAM_CHECK_URI = "https://github.com/pygobject/pycairo/releases/" + +SRC_URI[md5sum] = "fa88a28cadbfb34192fe743d32c0ee33" +SRC_URI[sha256sum] = "1ee72b035b21a475e1ed648e26541b04e5d7e753d75ca79de8c583b25785531b" + +S = "${WORKDIR}/pycairo-${PV}" + +inherit meson pkgconfig python3targetconfig + +CFLAGS += "-fPIC" + +BBCLASSEXTEND = "native" + +FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/*" diff --git a/poky/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb b/poky/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb deleted file mode 100644 index 9e127304d..000000000 --- a/poky/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb +++ /dev/null @@ -1,7 +0,0 @@ -require python3-scons_${PV}.bb -inherit native python3native -DEPENDS = "python3-native python3-setuptools-native" - -do_install_append() { - create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1' -} diff --git a/poky/meta/recipes-devtools/python/python3-scons-native_4.1.0.bb b/poky/meta/recipes-devtools/python/python3-scons-native_4.1.0.bb new file mode 100644 index 000000000..9e127304d --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-scons-native_4.1.0.bb @@ -0,0 +1,7 @@ +require python3-scons_${PV}.bb +inherit native python3native +DEPENDS = "python3-native python3-setuptools-native" + +do_install_append() { + create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1' +} diff --git a/poky/meta/recipes-devtools/python/python3-scons/0001-Fix-man-page-installation.patch b/poky/meta/recipes-devtools/python/python3-scons/0001-Fix-man-page-installation.patch new file mode 100644 index 000000000..ff212b85e --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-scons/0001-Fix-man-page-installation.patch @@ -0,0 +1,46 @@ +From 82be2b7b9758a2f62ee11931da674cd541076041 Mon Sep 17 00:00:00 2001 +From: Tim Orling +Date: Sat, 22 May 2021 11:20:46 -0700 +Subject: [PATCH] Fix man page installation + +Fixes: + error: can't copy 'build/doc/man/scons.1': doesn't exist or not a regular file + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Tim Orling +--- + MANIFEST.in | 2 +- + setup.cfg | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/MANIFEST.in b/MANIFEST.in +index 04ec000..937f6f3 100644 +--- a/MANIFEST.in ++++ b/MANIFEST.in +@@ -4,7 +4,7 @@ recursive-include SCons/Tool/docbook * + include LICENSE + + include scons.1 sconsign.1 scons-time.1 +-recursive-include build/doc/man *.1 ++#recursive-include build/doc/man *.1 + + + +diff --git a/setup.cfg b/setup.cfg +index 37e5204..677c00a 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -56,9 +56,9 @@ console_scripts = + scons.tool.docbook = *.* + + [options.data_files] +-. = build/doc/man/scons.1 +- build/doc/man/scons-time.1 +- build/doc/man/sconsign.1 ++. = scons.1 ++ scons-time.1 ++ sconsign.1 + + [sdist] + dist-dir = build/dist diff --git a/poky/meta/recipes-devtools/python/python3-scons_3.1.2.bb b/poky/meta/recipes-devtools/python/python3-scons_3.1.2.bb deleted file mode 100644 index 12122131a..000000000 --- a/poky/meta/recipes-devtools/python/python3-scons_3.1.2.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Software Construction tool (make/autotools replacement)" -HOMEPAGE = "https://github.com/SCons/scons" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE-python3-scons-${PV};md5=e14e1b33428df24a40a782ae142785d0" - -# pypi package does not have a valid license file -SRC_URI += "https://raw.githubusercontent.com/SCons/scons/${PV}/LICENSE;downloadfilename=LICENSE-python3-scons-${PV};name=license" - -SRC_URI[md5sum] = "f9c4ad06dcf1427be95472eaf380c81a" -SRC_URI[sha256sum] = "8aaa483c303efeb678e6f7c776c8444a482f8ddc3ad891f8b6cdd35264da9a1f" -SRC_URI[license.md5sum] = "e14e1b33428df24a40a782ae142785d0" -SRC_URI[license.sha256sum] = "72ed889165fb28378cadac14552be4a959f1ebab6b148abb5dd2b49712c3c6f6" - -S = "${WORKDIR}/scons-${PV}" - -UPSTREAM_CHECK_URI = "http://scons.org/pages/download.html" -UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" - -inherit pypi setuptools3 - -do_install_prepend() { - sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${S}/script/* -} - -RDEPENDS_${PN}_class-target = "\ - python3-core \ - python3-fcntl \ - python3-io \ - python3-json \ - python3-shell \ - python3-pickle \ - python3-pprint \ - " diff --git a/poky/meta/recipes-devtools/python/python3-scons_4.1.0.bb b/poky/meta/recipes-devtools/python/python3-scons_4.1.0.bb new file mode 100644 index 000000000..5894a5ef3 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-scons_4.1.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "Software Construction tool (make/autotools replacement)" +HOMEPAGE = "https://github.com/SCons/scons" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b94c6e2be9670c62b38f7118c12866d2" + +SRC_URI += " file://0001-Fix-man-page-installation.patch" +SRC_URI[sha256sum] = "accb8035be2c9cfbab06471286eaeff86a10037a8064cf4ef4c3df04ea5a7387" + +PYPI_PACKAGE = "SCons" + +inherit pypi setuptools3 + +RDEPENDS_${PN}_class-target = "\ + python3-core \ + python3-compression \ + python3-fcntl \ + python3-importlib-metadata \ + python3-io \ + python3-json \ + python3-shell \ + python3-pickle \ + python3-pkg-resources \ + python3-pprint \ + " + +FILES_${PN}-doc += "${datadir}/scons*.1" diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch b/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch new file mode 100644 index 000000000..7d684b3c4 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch @@ -0,0 +1,33 @@ +From 7a2bddfa437be633bb6945d0e6b7d6f27da870ad Mon Sep 17 00:00:00 2001 +From: Tim Orling +Date: Fri, 18 Jun 2021 11:56:50 -0700 +Subject: [PATCH] test_ctypes.test_find: skip without tools-sdk + +These tests need full packagegroup-core-buildessential, the +easiest way to dynamically check for that is looking for +'tools-sdk' in IMAGE_FEATURES. + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Tim Orling +--- + Lib/ctypes/test/test_find.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py +index 92ac184..0d009d1 100644 +--- a/Lib/ctypes/test/test_find.py ++++ b/Lib/ctypes/test/test_find.py +@@ -112,10 +112,12 @@ class FindLibraryLinux(unittest.TestCase): + # LD_LIBRARY_PATH) + self.assertEqual(find_library(libname), 'lib%s.so' % libname) + ++ @unittest.skip("Needs IMAGE_FEATURE += \"tools-sdk\"") + def test_find_library_with_gcc(self): + with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None): + self.assertNotEqual(find_library('c'), None) + ++ @unittest.skip("Needs IMAGE_FEATURE += \"tools-sdk\"") + def test_find_library_with_ld(self): + with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \ + unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None): diff --git a/poky/meta/recipes-devtools/python/python3/python3-manifest.json b/poky/meta/recipes-devtools/python/python3/python3-manifest.json index 615dc3a5e..d65cf49cb 100644 --- a/poky/meta/recipes-devtools/python/python3/python3-manifest.json +++ b/poky/meta/recipes-devtools/python/python3/python3-manifest.json @@ -814,6 +814,7 @@ "shell", "smtpd", "sqlite3", + "statistics", "stringold", "syslog", "terminal", @@ -1085,6 +1086,20 @@ ], "cached": [] }, + "statistics": { + "summary": "Basic statistics module", + "rdepends": [ + "core", + "math", + "numbers" + ], + "files": [ + "${libdir}/python${PYTHON_MAJMIN}/statistics.py" + ], + "cached": [ + "${libdir}/python${PYTHON_MAJMIN}/__pycache__/statistics.*.pyc" + ] + }, "stringold": { "summary": "Python string APIs [deprecated]", "rdepends": [ diff --git a/poky/meta/recipes-devtools/python/python3_3.9.5.bb b/poky/meta/recipes-devtools/python/python3_3.9.5.bb index f4002f251..1717ff737 100644 --- a/poky/meta/recipes-devtools/python/python3_3.9.5.bb +++ b/poky/meta/recipes-devtools/python/python3_3.9.5.bb @@ -31,6 +31,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \ file://0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch \ file://0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch \ + ${@bb.utils.contains('IMAGE_FEATURES', 'tools-sdk', '', 'file://0001-test_ctypes.test_find-skip-without-tools-sdk.patch', d)} \ " SRC_URI_append_class-native = " \ diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc index 0cbd66301..6674936fe 100644 --- a/poky/meta/recipes-devtools/qemu/qemu.inc +++ b/poky/meta/recipes-devtools/qemu/qemu.inc @@ -29,6 +29,14 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://determinism.patch \ file://0001-tests-meson.build-use-relative-path-to-refer-to-file.patch \ file://0001-configure-fix-detection-of-gdbus-codegen.patch \ + file://0001-vhost-user-gpu-fix-memory-disclosure-in-virgl_cmd_ge.patch \ + file://0002-vhost-user-gpu-fix-resource-leak-in-vg_resource_crea.patch \ + file://0003-vhost-user-gpu-fix-memory-leak-in-vg_resource_attach.patch \ + file://0004-vhost-user-gpu-fix-memory-leak-while-calling-vg_reso.patch \ + file://0005-vhost-user-gpu-fix-memory-leak-in-virgl_cmd_resource.patch \ + file://0006-vhost-user-gpu-fix-memory-leak-in-virgl_resource_att.patch \ + file://0007-vhost-user-gpu-fix-OOB-write-in-virgl_cmd_get_capset.patch \ + file://0001-linux-user-Tag-vsx-with-ieee128-fpbits.patch \ " UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-Tag-vsx-with-ieee128-fpbits.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-Tag-vsx-with-ieee128-fpbits.patch new file mode 100644 index 000000000..11b6e3c67 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-Tag-vsx-with-ieee128-fpbits.patch @@ -0,0 +1,35 @@ +From c5844a4cdee37268c9b65a65e6968ee129bb742d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 14 Jun 2021 10:27:17 -0700 +Subject: [PATCH] linux-user: Tag vsx with ieee128 fpbits + +In OE we need this for ppc64le usermode to work since we generate 128bit +long doubles and glibc 2.34 is now checking for this in hwcaps at +runtime and failing to run the binary if machine does not support 128bit +IEEE fp + +Fixes +Fatal glibc error: CPU lacks float128 support (POWER 9 or later required) + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + linux-user/elfload.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/linux-user/elfload.c b/linux-user/elfload.c +index 17ab06f612..e7dd18fd40 100644 +--- a/linux-user/elfload.c ++++ b/linux-user/elfload.c +@@ -830,7 +830,7 @@ static uint32_t get_elf_hwcap2(void) + PPC2_ISA207S), QEMU_PPC_FEATURE2_ARCH_2_07 | + QEMU_PPC_FEATURE2_VEC_CRYPTO); + GET_FEATURE2(PPC2_ISA300, QEMU_PPC_FEATURE2_ARCH_3_00 | +- QEMU_PPC_FEATURE2_DARN); ++ QEMU_PPC_FEATURE2_DARN | QEMU_PPC_FEATURE2_HAS_IEEE128); + + #undef GET_FEATURE + #undef GET_FEATURE2 +-- +2.32.0 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-vhost-user-gpu-fix-memory-disclosure-in-virgl_cmd_ge.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-vhost-user-gpu-fix-memory-disclosure-in-virgl_cmd_ge.patch new file mode 100644 index 000000000..981c23729 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-vhost-user-gpu-fix-memory-disclosure-in-virgl_cmd_ge.patch @@ -0,0 +1,43 @@ +CVE: CVE-2021-3545 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 121841b25d72d13f8cad554363138c360f1250ea Mon Sep 17 00:00:00 2001 +From: Li Qiang +Date: Sat, 15 May 2021 20:03:56 -0700 +Subject: [PATCH 1/7] vhost-user-gpu: fix memory disclosure in + virgl_cmd_get_capset_info (CVE-2021-3545) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Otherwise some of the 'resp' will be leaked to guest. + +Fixes: CVE-2021-3545 +Reported-by: Li Qiang +virtio-gpu fix: 42a8dadc74 ("virtio-gpu: fix information leak +in getting capset info dispatch") + +Signed-off-by: Li Qiang +Reviewed-by: Marc-André Lureau +Message-Id: <20210516030403.107723-2-liq3ea@163.com> +Signed-off-by: Gerd Hoffmann +--- + contrib/vhost-user-gpu/virgl.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/contrib/vhost-user-gpu/virgl.c b/contrib/vhost-user-gpu/virgl.c +index 9e6660c7ab..6a332d601f 100644 +--- a/contrib/vhost-user-gpu/virgl.c ++++ b/contrib/vhost-user-gpu/virgl.c +@@ -128,6 +128,7 @@ virgl_cmd_get_capset_info(VuGpu *g, + + VUGPU_FILL_CMD(info); + ++ memset(&resp, 0, sizeof(resp)); + if (info.capset_index == 0) { + resp.capset_id = VIRTIO_GPU_CAPSET_VIRGL; + virgl_renderer_get_cap_set(resp.capset_id, +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0002-vhost-user-gpu-fix-resource-leak-in-vg_resource_crea.patch b/poky/meta/recipes-devtools/qemu/qemu/0002-vhost-user-gpu-fix-resource-leak-in-vg_resource_crea.patch new file mode 100644 index 000000000..a9aee47e3 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0002-vhost-user-gpu-fix-resource-leak-in-vg_resource_crea.patch @@ -0,0 +1,41 @@ +CVE: CVE-2021-3544 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 86dd8fac2acc366930a5dc08d3fb1b1e816f4e1e Mon Sep 17 00:00:00 2001 +From: Li Qiang +Date: Sat, 15 May 2021 20:03:57 -0700 +Subject: [PATCH 2/7] vhost-user-gpu: fix resource leak in + 'vg_resource_create_2d' (CVE-2021-3544) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Call 'vugbm_buffer_destroy' in error path to avoid resource leak. + +Fixes: CVE-2021-3544 +Reported-by: Li Qiang +Reviewed-by: Prasad J Pandit +Signed-off-by: Li Qiang +Reviewed-by: Marc-André Lureau +Message-Id: <20210516030403.107723-3-liq3ea@163.com> +Signed-off-by: Gerd Hoffmann +--- + contrib/vhost-user-gpu/vhost-user-gpu.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/contrib/vhost-user-gpu/vhost-user-gpu.c b/contrib/vhost-user-gpu/vhost-user-gpu.c +index f73f292c9f..b5e153d0d6 100644 +--- a/contrib/vhost-user-gpu/vhost-user-gpu.c ++++ b/contrib/vhost-user-gpu/vhost-user-gpu.c +@@ -349,6 +349,7 @@ vg_resource_create_2d(VuGpu *g, + g_critical("%s: resource creation failed %d %d %d", + __func__, c2d.resource_id, c2d.width, c2d.height); + g_free(res); ++ vugbm_buffer_destroy(&res->buffer); + cmd->error = VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY; + return; + } +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0003-vhost-user-gpu-fix-memory-leak-in-vg_resource_attach.patch b/poky/meta/recipes-devtools/qemu/qemu/0003-vhost-user-gpu-fix-memory-leak-in-vg_resource_attach.patch new file mode 100644 index 000000000..171848640 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0003-vhost-user-gpu-fix-memory-leak-in-vg_resource_attach.patch @@ -0,0 +1,48 @@ +CVE: CVE-2021-3544 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From b9f79858a614d95f5de875d0ca31096eaab72c3b Mon Sep 17 00:00:00 2001 +From: Li Qiang +Date: Sat, 15 May 2021 20:03:58 -0700 +Subject: [PATCH 3/7] vhost-user-gpu: fix memory leak in + vg_resource_attach_backing (CVE-2021-3544) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Check whether the 'res' has already been attach_backing to avoid +memory leak. + +Fixes: CVE-2021-3544 +Reported-by: Li Qiang +virtio-gpu fix: 204f01b309 ("virtio-gpu: fix memory leak +in resource attach backing") + +Signed-off-by: Li Qiang +Reviewed-by: Marc-André Lureau +Message-Id: <20210516030403.107723-4-liq3ea@163.com> +Signed-off-by: Gerd Hoffmann +--- + contrib/vhost-user-gpu/vhost-user-gpu.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/contrib/vhost-user-gpu/vhost-user-gpu.c b/contrib/vhost-user-gpu/vhost-user-gpu.c +index b5e153d0d6..0437e52b64 100644 +--- a/contrib/vhost-user-gpu/vhost-user-gpu.c ++++ b/contrib/vhost-user-gpu/vhost-user-gpu.c +@@ -489,6 +489,11 @@ vg_resource_attach_backing(VuGpu *g, + return; + } + ++ if (res->iov) { ++ cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC; ++ return; ++ } ++ + ret = vg_create_mapping_iov(g, &ab, cmd, &res->iov); + if (ret != 0) { + cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC; +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0004-vhost-user-gpu-fix-memory-leak-while-calling-vg_reso.patch b/poky/meta/recipes-devtools/qemu/qemu/0004-vhost-user-gpu-fix-memory-leak-while-calling-vg_reso.patch new file mode 100644 index 000000000..9fc2fafe1 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0004-vhost-user-gpu-fix-memory-leak-while-calling-vg_reso.patch @@ -0,0 +1,50 @@ +CVE: CVE-2021-3544 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From b7afebcf9e6ecf3cf9b5a9b9b731ed04bca6aa3e Mon Sep 17 00:00:00 2001 +From: Li Qiang +Date: Sat, 15 May 2021 20:03:59 -0700 +Subject: [PATCH 4/7] vhost-user-gpu: fix memory leak while calling + 'vg_resource_unref' (CVE-2021-3544) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If the guest trigger following sequences, the attach_backing will be leaked: + + vg_resource_create_2d + vg_resource_attach_backing + vg_resource_unref + +This patch fix this by freeing 'res->iov' in vg_resource_destroy. + +Fixes: CVE-2021-3544 +Reported-by: Li Qiang +virtio-gpu fix: 5e8e3c4c75 ("virtio-gpu: fix resource leak +in virgl_cmd_resource_unref") + +Reviewed-by: Prasad J Pandit +Signed-off-by: Li Qiang +Reviewed-by: Marc-André Lureau +Message-Id: <20210516030403.107723-5-liq3ea@163.com> +Signed-off-by: Gerd Hoffmann +--- + contrib/vhost-user-gpu/vhost-user-gpu.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/contrib/vhost-user-gpu/vhost-user-gpu.c b/contrib/vhost-user-gpu/vhost-user-gpu.c +index 0437e52b64..770dfad529 100644 +--- a/contrib/vhost-user-gpu/vhost-user-gpu.c ++++ b/contrib/vhost-user-gpu/vhost-user-gpu.c +@@ -400,6 +400,7 @@ vg_resource_destroy(VuGpu *g, + } + + vugbm_buffer_destroy(&res->buffer); ++ g_free(res->iov); + pixman_image_unref(res->image); + QTAILQ_REMOVE(&g->reslist, res, next); + g_free(res); +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0005-vhost-user-gpu-fix-memory-leak-in-virgl_cmd_resource.patch b/poky/meta/recipes-devtools/qemu/qemu/0005-vhost-user-gpu-fix-memory-leak-in-virgl_cmd_resource.patch new file mode 100644 index 000000000..e70f3c02c --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0005-vhost-user-gpu-fix-memory-leak-in-virgl_cmd_resource.patch @@ -0,0 +1,58 @@ +CVE: CVE-2021-3544 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From f6091d86ba9ea05f4e111b9b42ee0005c37a6779 Mon Sep 17 00:00:00 2001 +From: Li Qiang +Date: Sat, 15 May 2021 20:04:00 -0700 +Subject: [PATCH 5/7] vhost-user-gpu: fix memory leak in + 'virgl_cmd_resource_unref' (CVE-2021-3544) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The 'res->iov' will be leaked if the guest trigger following sequences: + + virgl_cmd_create_resource_2d + virgl_resource_attach_backing + virgl_cmd_resource_unref + +This patch fixes this. + +Fixes: CVE-2021-3544 +Reported-by: Li Qiang +virtio-gpu fix: 5e8e3c4c75 ("virtio-gpu: fix resource leak +in virgl_cmd_resource_unref" + +Signed-off-by: Li Qiang +Reviewed-by: Marc-André Lureau +Message-Id: <20210516030403.107723-6-liq3ea@163.com> +Signed-off-by: Gerd Hoffmann +--- + contrib/vhost-user-gpu/virgl.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/contrib/vhost-user-gpu/virgl.c b/contrib/vhost-user-gpu/virgl.c +index 6a332d601f..c669d73a1d 100644 +--- a/contrib/vhost-user-gpu/virgl.c ++++ b/contrib/vhost-user-gpu/virgl.c +@@ -108,9 +108,16 @@ virgl_cmd_resource_unref(VuGpu *g, + struct virtio_gpu_ctrl_command *cmd) + { + struct virtio_gpu_resource_unref unref; ++ struct iovec *res_iovs = NULL; ++ int num_iovs = 0; + + VUGPU_FILL_CMD(unref); + ++ virgl_renderer_resource_detach_iov(unref.resource_id, ++ &res_iovs, ++ &num_iovs); ++ g_free(res_iovs); ++ + virgl_renderer_resource_unref(unref.resource_id); + } + +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0006-vhost-user-gpu-fix-memory-leak-in-virgl_resource_att.patch b/poky/meta/recipes-devtools/qemu/qemu/0006-vhost-user-gpu-fix-memory-leak-in-virgl_resource_att.patch new file mode 100644 index 000000000..5efb87ca3 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0006-vhost-user-gpu-fix-memory-leak-in-virgl_resource_att.patch @@ -0,0 +1,49 @@ +CVE: CVE-2021-3544 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 63736af5a6571d9def93769431e0d7e38c6677bf Mon Sep 17 00:00:00 2001 +From: Li Qiang +Date: Sat, 15 May 2021 20:04:01 -0700 +Subject: [PATCH 6/7] vhost-user-gpu: fix memory leak in + 'virgl_resource_attach_backing' (CVE-2021-3544) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If 'virgl_renderer_resource_attach_iov' failed, the 'res_iovs' will +be leaked. + +Fixes: CVE-2021-3544 +Reported-by: Li Qiang +virtio-gpu fix: 33243031da ("virtio-gpu-3d: fix memory leak +in resource attach backing") + +Signed-off-by: Li Qiang +Reviewed-by: Marc-André Lureau +Message-Id: <20210516030403.107723-7-liq3ea@163.com> +Signed-off-by: Gerd Hoffmann +--- + contrib/vhost-user-gpu/virgl.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/contrib/vhost-user-gpu/virgl.c b/contrib/vhost-user-gpu/virgl.c +index c669d73a1d..a16a311d80 100644 +--- a/contrib/vhost-user-gpu/virgl.c ++++ b/contrib/vhost-user-gpu/virgl.c +@@ -287,8 +287,11 @@ virgl_resource_attach_backing(VuGpu *g, + return; + } + +- virgl_renderer_resource_attach_iov(att_rb.resource_id, ++ ret = virgl_renderer_resource_attach_iov(att_rb.resource_id, + res_iovs, att_rb.nr_entries); ++ if (ret != 0) { ++ g_free(res_iovs); ++ } + } + + static void +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0007-vhost-user-gpu-fix-OOB-write-in-virgl_cmd_get_capset.patch b/poky/meta/recipes-devtools/qemu/qemu/0007-vhost-user-gpu-fix-OOB-write-in-virgl_cmd_get_capset.patch new file mode 100644 index 000000000..33e6a6619 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0007-vhost-user-gpu-fix-OOB-write-in-virgl_cmd_get_capset.patch @@ -0,0 +1,49 @@ +CVE: CVE-2021-3546 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 9f22893adcb02580aee5968f32baa2cd109b3ec2 Mon Sep 17 00:00:00 2001 +From: Li Qiang +Date: Sat, 15 May 2021 20:04:02 -0700 +Subject: [PATCH 7/7] vhost-user-gpu: fix OOB write in 'virgl_cmd_get_capset' + (CVE-2021-3546) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If 'virgl_cmd_get_capset' set 'max_size' to 0, +the 'virgl_renderer_fill_caps' will write the data after the 'resp'. +This patch avoid this by checking the returned 'max_size'. + +virtio-gpu fix: abd7f08b23 ("display: virtio-gpu-3d: check +virgl capabilities max_size") + +Fixes: CVE-2021-3546 +Reported-by: Li Qiang +Reviewed-by: Prasad J Pandit +Signed-off-by: Li Qiang +Reviewed-by: Marc-André Lureau +Message-Id: <20210516030403.107723-8-liq3ea@163.com> +Signed-off-by: Gerd Hoffmann +--- + contrib/vhost-user-gpu/virgl.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/contrib/vhost-user-gpu/virgl.c b/contrib/vhost-user-gpu/virgl.c +index a16a311d80..7172104b19 100644 +--- a/contrib/vhost-user-gpu/virgl.c ++++ b/contrib/vhost-user-gpu/virgl.c +@@ -177,6 +177,10 @@ virgl_cmd_get_capset(VuGpu *g, + + virgl_renderer_get_cap_set(gc.capset_id, &max_ver, + &max_size); ++ if (!max_size) { ++ cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER; ++ return; ++ } + resp = g_malloc0(sizeof(*resp) + max_size); + + resp->hdr.type = VIRTIO_GPU_RESP_OK_CAPSET; +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/tcf-agent/tcf-agent/0001-Fixed-copyright-messages.patch b/poky/meta/recipes-devtools/tcf-agent/tcf-agent/0001-Fixed-copyright-messages.patch new file mode 100644 index 000000000..ed73808e9 --- /dev/null +++ b/poky/meta/recipes-devtools/tcf-agent/tcf-agent/0001-Fixed-copyright-messages.patch @@ -0,0 +1,56 @@ +From 20ac1f939a8a97b03abec55d865050fdaa0f343a Mon Sep 17 00:00:00 2001 +From: Eugene Tarassov +Date: Tue, 8 Jan 2019 21:56:16 -0800 +Subject: [oe-core][PATCH 1/1] Fixed copyright messages + +Upstream-Status: Backport [https://git.eclipse.org/c/tcf/org.eclipse.tcf.agent.git/commit/?id=20ac1f939a8a97b03abec55d865050fdaa0f343a] + +Signed-off-by: Joe Slater +Signed-off-by: Mingli Yu +--- + agent/tcf/framework/channel_lws.c | 2 +- + agent/tcf/framework/cpudefs-mdep-mux.h | 19 +++++++++++++------ + 2 files changed, 14 insertions(+), 7 deletions(-) + +diff --git a/agent/tcf/framework/channel_lws.c b/agent/tcf/framework/channel_lws.c +index 0cb9585..d9352f3 100644 +--- a/tcf/framework/channel_lws.c ++++ b/tcf/framework/channel_lws.c +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2016-2017 Wind River Systems, Inc. ++ * Copyright (c) 2016-2018 Wind River Systems, Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Eclipse Distribution License v1.0 which accompany this distribution. +diff --git a/agent/tcf/framework/cpudefs-mdep-mux.h b/agent/tcf/framework/cpudefs-mdep-mux.h +index c9e0db7..0397a6a 100644 +--- a/tcf/framework/cpudefs-mdep-mux.h ++++ b/tcf/framework/cpudefs-mdep-mux.h +@@ -1,10 +1,17 @@ +-/* +- * Copyright (c) 2013 Wind River Systems, Inc. ++/******************************************************************************* ++ * Copyright (c) 2013 Wind River Systems, Inc. and others. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * and Eclipse Distribution License v1.0 which accompany this distribution. ++ * The Eclipse Public License is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * and the Eclipse Distribution License is available at ++ * http://www.eclipse.org/org/documents/edl-v10.php. ++ * You may elect to redistribute this code under either of these licenses. + * +- * The right to copy, distribute, modify or otherwise make use +- * of this software may be licensed only pursuant to the terms +- * of an applicable Wind River license agreement. +- */ ++ * Contributors: ++ * Wind River Systems - initial API and implementation ++ *******************************************************************************/ + + #include + +-- +2.7.4 + diff --git a/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb b/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb index 854269a0f..87369c47d 100644 --- a/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb +++ b/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb @@ -15,6 +15,7 @@ SRC_URI = "git://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent \ file://ldflags.patch \ file://tcf-agent.init \ file://tcf-agent.service \ + file://0001-Fixed-copyright-messages.patch \ " DEPENDS = "util-linux openssl" diff --git a/poky/meta/recipes-devtools/vala/vala_0.52.3.bb b/poky/meta/recipes-devtools/vala/vala_0.52.3.bb deleted file mode 100644 index 133dc9efa..000000000 --- a/poky/meta/recipes-devtools/vala/vala_0.52.3.bb +++ /dev/null @@ -1,5 +0,0 @@ -require ${BPN}.inc - -SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch" - -SRC_URI[sha256sum] = "037ea1a92bf0f1ab04a71b52a01d50aca1945ad1017b6189d9614f84f5c9b2d9" diff --git a/poky/meta/recipes-devtools/vala/vala_0.52.4.bb b/poky/meta/recipes-devtools/vala/vala_0.52.4.bb new file mode 100644 index 000000000..8e2869d40 --- /dev/null +++ b/poky/meta/recipes-devtools/vala/vala_0.52.4.bb @@ -0,0 +1,5 @@ +require ${BPN}.inc + +SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch" + +SRC_URI[sha256sum] = "ecde520e5160e659ee699f8b1cdc96065edbd44bbd08eb48ef5f2506751fdf31" diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 index a3a0c6e50..b4fc8af33 100644 --- a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 +++ b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 @@ -235,3 +235,4 @@ memcheck/tests/wrapmalloc memcheck/tests/wrapmallocstatic memcheck/tests/writev1 memcheck/tests/xml1 +memcheck/tests/linux/stack_changes diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest b/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest index 60d243276..caeae84d4 100755 --- a/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest +++ b/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest @@ -32,12 +32,19 @@ if [ "$arch" = "aarch64" ]; then done fi +echo "Run flaky tests using taskset to limit them to a single core." +for i in `cat taskset_nondeterministic_tests`; do + taskset 0x00000001 perl tests/vg_regtest --valgrind=${VALGRIND_BIN} --valgrind-lib=${VALGRIND_LIBEXECDIR} --yocto-ptest $i 2>&1|tee -a ${LOG} + mv $i.vgtest $i.IGNORE +done + + cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \ --valgrind=${VALGRIND_BIN} \ --valgrind-lib=${VALGRIND_LIBEXECDIR} \ --yocto-ptest \ gdbserver_tests ${TOOLS} ${EXP_TOOLS} \ - 2>&1|tee ${LOG} + 2>&1|tee -a ${LOG} cd ${VALGRIND_LIB}/ptest && \ ./tests/post_regtest_checks $(pwd) \ @@ -56,6 +63,11 @@ for i in `cat remove-for-all`; do mv $i.IGNORE $i.vgtest; done +echo "Restore flaky and other non-deterministic tests" +for i in `cat taskset_nondeterministic_tests`; do + mv $i.IGNORE $i.vgtest; +done + echo "Failed test details..." failed_tests=`grep FAIL: ${LOG} | awk '{print $2}'` for test in $failed_tests; do diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/taskset_nondeterministic_tests b/poky/meta/recipes-devtools/valgrind/valgrind/taskset_nondeterministic_tests new file mode 100644 index 000000000..e15100ade --- /dev/null +++ b/poky/meta/recipes-devtools/valgrind/valgrind/taskset_nondeterministic_tests @@ -0,0 +1,2 @@ +helgrind/tests/hg05_race2 +helgrind/tests/tc09_bad_unlock diff --git a/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb b/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb index d0c60d0a3..60b248681 100644 --- a/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb +++ b/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb @@ -18,6 +18,7 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \ file://run-ptest \ file://remove-for-aarch64 \ file://remove-for-all \ + file://taskset_nondeterministic_tests \ file://0004-Fix-out-of-tree-builds.patch \ file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \ file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \ @@ -120,7 +121,7 @@ VALGRINDARCH_mipsel = "mips32" VALGRINDARCH_mips64el = "mips64" VALGRINDARCH_powerpc = "ppc" VALGRINDARCH_powerpc64 = "ppc64" -VALGRINDARCH_powerpc64el = "ppc64le" +VALGRINDARCH_powerpc64le = "ppc64le" INHIBIT_PACKAGE_STRIP_FILES = "${PKGD}${libexecdir}/valgrind/vgpreload_memcheck-${VALGRINDARCH}-linux.so" @@ -187,6 +188,7 @@ do_install_ptest() { cp ${B}/config.h ${D}${PTEST_PATH} install -D ${WORKDIR}/remove-for-aarch64 ${D}${PTEST_PATH} install -D ${WORKDIR}/remove-for-all ${D}${PTEST_PATH} + install -D ${WORKDIR}/taskset_nondeterministic_tests ${D}${PTEST_PATH} # Add an executable need by none/tests/bigcode mkdir ${D}${PTEST_PATH}/perf diff --git a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch index 54aec0128..b3f3de4a1 100644 --- a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch +++ b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch @@ -19,7 +19,7 @@ index 13c2bc0..0b6ca1d 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. - AC_INIT(ethtool, 5.10, netdev@vger.kernel.org) + AC_INIT(ethtool, 5.12, netdev@vger.kernel.org) AC_PREREQ(2.52) AC_CONFIG_SRCDIR([ethtool.c]) -AM_INIT_AUTOMAKE([gnu subdir-objects]) diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.10.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.10.bb deleted file mode 100644 index 5c0df3acb..000000000 --- a/poky/meta/recipes-extended/ethtool/ethtool_5.10.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "Display or change ethernet card settings" -DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces." -HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/" -SECTION = "console/network" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216" - -SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \ - file://run-ptest \ - file://avoid_parallel_tests.patch \ - " - -SRC_URI[sha256sum] = "4b86adb3ed913c1ef14a276301981f696ab4ec360c19f0a5b68235c4756abae5" - -UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/" - -inherit autotools ptest bash-completion pkgconfig - -RDEPENDS_${PN}-ptest += "make" - -PACKAGECONFIG ?= "netlink" -PACKAGECONFIG[netlink] = "--enable-netlink,--disable-netlink,libmnl," - -do_compile_ptest() { - oe_runmake buildtest-TESTS -} - -do_install_ptest () { - cp ${B}/Makefile ${D}${PTEST_PATH} - install ${B}/test-cmdline ${D}${PTEST_PATH} - if ${@bb.utils.contains('PACKAGECONFIG', 'netlink', 'false', 'true', d)}; then - install ${B}/test-features ${D}${PTEST_PATH} - fi - install ${B}/ethtool ${D}${PTEST_PATH}/ethtool - sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile -} diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.12.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.12.bb new file mode 100644 index 000000000..df7dd4774 --- /dev/null +++ b/poky/meta/recipes-extended/ethtool/ethtool_5.12.bb @@ -0,0 +1,37 @@ +SUMMARY = "Display or change ethernet card settings" +DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces." +HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/" +SECTION = "console/network" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216" + +SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \ + file://run-ptest \ + file://avoid_parallel_tests.patch \ + " + +SRC_URI[sha256sum] = "7ca623cc1dd25ba66531573da6a11f1ecde9b62b00742d9ba54f9ba983439bfa" + +UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/" + +inherit autotools ptest bash-completion pkgconfig + +RDEPENDS_${PN}-ptest += "make" + +PACKAGECONFIG ?= "netlink" +PACKAGECONFIG[netlink] = "--enable-netlink,--disable-netlink,libmnl," + +do_compile_ptest() { + oe_runmake buildtest-TESTS +} + +do_install_ptest () { + cp ${B}/Makefile ${D}${PTEST_PATH} + install ${B}/test-cmdline ${D}${PTEST_PATH} + if ${@bb.utils.contains('PACKAGECONFIG', 'netlink', 'false', 'true', d)}; then + install ${B}/test-features ${D}${PTEST_PATH} + fi + install ${B}/ethtool ${D}${PTEST_PATH}/ethtool + sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile +} diff --git a/poky/meta/recipes-extended/less/less_586.bb b/poky/meta/recipes-extended/less/less_586.bb deleted file mode 100644 index b300f2bad..000000000 --- a/poky/meta/recipes-extended/less/less_586.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "Text file viewer similar to more" -DESCRIPTION = "Less is a program similar to more, i.e. a terminal \ -based program for viewing text files and the output from other \ -programs. Less offers many features beyond those that more does." -HOMEPAGE = "http://www.greenwoodsoftware.com/" -SECTION = "console/utils" - -# (GPLv2+ (<< 418), GPLv3+ (>= 418)) | less -# Including email author giving permissing to use BSD -# -# From: Mark Nudelman -# To: Elizabeth Flanagan = 418)) | less +# Including email author giving permissing to use BSD +# +# From: Mark Nudelman +# To: Elizabeth Flanagan - -Index: git/runtest/controllers -=================================================================== ---- git.orig/runtest/controllers -+++ git/runtest/controllers -@@ -352,8 +352,6 @@ cpuset_memory_spread cpuset_memory_sprea - - cpuset_regression_test cpuset_regression_test.sh - --cgroup_xattr cgroup_xattr -- - pids_1_1 pids.sh 1 1 0 - pids_1_2 pids.sh 1 2 0 - pids_1_10 pids.sh 1 10 0 -Index: git/runtest/fs -=================================================================== ---- git.orig/runtest/fs -+++ git/runtest/fs -@@ -64,11 +64,6 @@ writetest01 writetest - #Also run the fs_di (Data Integrity tests) - fs_di fs_di -d $TMPDIR - --# Read every file in /proc. Not likely to crash, but does enough --# to disturb the kernel. A good kernel latency killer too. --# Was not sure why it should reside in runtest/crashme and won't get tested ever --proc01 proc01 -m 128 -- - read_all_dev read_all -d /dev -p -q -r 3 - read_all_proc read_all -d /proc -q -r 3 - read_all_sys read_all -d /sys -q -r 3 diff --git a/poky/meta/recipes-extended/ltp/ltp_20210524.bb b/poky/meta/recipes-extended/ltp/ltp_20210524.bb index 4328b1efe..26fd9ac04 100644 --- a/poky/meta/recipes-extended/ltp/ltp_20210524.bb +++ b/poky/meta/recipes-extended/ltp/ltp_20210524.bb @@ -31,7 +31,6 @@ SRCREV = "0fb171f2beddaf64bd27597577c206c0f892b3cd" SRC_URI = "git://github.com/linux-test-project/ltp.git \ file://0001-Remove-OOM-tests-from-runtest-mm.patch \ - file://disable_hanging_tests.patch \ " S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.09.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.09.bb deleted file mode 100644 index f7e5f03e7..000000000 --- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.09.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "System load testing utility" -DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ -imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." -HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ - file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ - file://no_daddr_t.patch \ - " -SRC_URI[sha256sum] = "cffac091082c7adbfec649be3c66941c3d622f8b96795656bcce2e20d669cfeb" - -DEPENDS = "coreutils-native" - -PROVIDES = "stress" -RPROVIDES_${PN} = "stress" -RREPLACES_${PN} = "stress" -RCONFLICTS_${PN} = "stress" - -inherit bash-completion - -do_install() { - oe_runmake DESTDIR=${D} install - ln -s stress-ng ${D}${bindir}/stress -} - diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.10.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.10.bb new file mode 100644 index 000000000..7b06f0061 --- /dev/null +++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.10.bb @@ -0,0 +1,27 @@ +SUMMARY = "System load testing utility" +DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ +imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." +HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ + file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ + file://no_daddr_t.patch \ + " +SRC_URI[sha256sum] = "bd167b6559fa8a28680371b1defd3ffe2344eb550129d58dd7d5e2d568f2786e" + +DEPENDS = "coreutils-native" + +PROVIDES = "stress" +RPROVIDES_${PN} = "stress" +RREPLACES_${PN} = "stress" +RCONFLICTS_${PN} = "stress" + +inherit bash-completion + +do_install() { + oe_runmake DESTDIR=${D} install + ln -s stress-ng ${D}${bindir}/stress +} + diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.7.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.7.bb deleted file mode 100644 index 4685ca10b..000000000 --- a/poky/meta/recipes-extended/sudo/sudo_1.9.7.bb +++ /dev/null @@ -1,59 +0,0 @@ -require sudo.inc - -SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ - file://0001-sudo.conf.in-fix-conflict-with-multilib.patch \ - " - -PAM_SRC_URI = "file://sudo.pam" - -SRC_URI[sha256sum] = "2bbe7c2d6699b84d950ef9a43f09d4d967b8bc244b73bc095c4202068ddbe549" - -DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" - -CACHED_CONFIGUREVARS = " \ - ac_cv_type_rsize_t=no \ - ac_cv_path_MVPROG=${base_bindir}/mv \ - ac_cv_path_BSHELLPROG=${base_bindir}/sh \ - ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ - ac_cv_path_VIPROG=${base_bindir}/vi \ - " - -EXTRA_OECONF += " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ - --with-rundir=/run/sudo \ - --with-vardir=/var/lib/sudo \ - --libexecdir=${libdir} \ - " - -do_install_append () { - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then - install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo - if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then - echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo - sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers - fi - fi - - chmod 4111 ${D}${bindir}/sudo - chmod 0440 ${D}${sysconfdir}/sudoers - - # Explicitly remove the /sudo directory to avoid QA error - rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo -} - -FILES_${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV} ${libdir}/${BPN}/*.la \ - ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la" - -SUDO_PACKAGES = "${PN}-sudo\ - ${PN}-lib" - -PACKAGE_BEFORE_PN = "${SUDO_PACKAGES}" - -RDEPENDS_${PN}-sudo = "${PN}-lib" -RDEPENDS_${PN} += "${SUDO_PACKAGES}" - -FILES_${PN}-sudo = "${bindir}/sudo ${bindir}/sudoedit" -FILES_${PN}-lib = "${localstatedir} ${libexecdir} ${sysconfdir} ${libdir} ${nonarch_libdir}" diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb new file mode 100644 index 000000000..aba6f4a59 --- /dev/null +++ b/poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb @@ -0,0 +1,59 @@ +require sudo.inc + +SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ + file://0001-sudo.conf.in-fix-conflict-with-multilib.patch \ + " + +PAM_SRC_URI = "file://sudo.pam" + +SRC_URI[sha256sum] = "391431f454e55121b60c6ded0fcf30ddb80d623d7d16a6d1907cfa6a0b91d8cf" + +DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" + +CACHED_CONFIGUREVARS = " \ + ac_cv_type_rsize_t=no \ + ac_cv_path_MVPROG=${base_bindir}/mv \ + ac_cv_path_BSHELLPROG=${base_bindir}/sh \ + ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ + ac_cv_path_VIPROG=${base_bindir}/vi \ + " + +EXTRA_OECONF += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ + --with-rundir=/run/sudo \ + --with-vardir=/var/lib/sudo \ + --libexecdir=${libdir} \ + " + +do_install_append () { + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo + if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then + echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo + sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers + fi + fi + + chmod 4111 ${D}${bindir}/sudo + chmod 0440 ${D}${sysconfdir}/sudoers + + # Explicitly remove the /sudo directory to avoid QA error + rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo +} + +FILES_${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV} ${libdir}/${BPN}/*.la \ + ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la" + +SUDO_PACKAGES = "${PN}-sudo\ + ${PN}-lib" + +PACKAGE_BEFORE_PN = "${SUDO_PACKAGES}" + +RDEPENDS_${PN}-sudo = "${PN}-lib" +RDEPENDS_${PN} += "${SUDO_PACKAGES}" + +FILES_${PN}-sudo = "${bindir}/sudo ${bindir}/sudoedit" +FILES_${PN}-lib = "${localstatedir} ${libexecdir} ${sysconfdir} ${libdir} ${nonarch_libdir}" diff --git a/poky/meta/recipes-extended/sysstat/sysstat.inc b/poky/meta/recipes-extended/sysstat/sysstat.inc index e5e134c03..f97b88d49 100644 --- a/poky/meta/recipes-extended/sysstat/sysstat.inc +++ b/poky/meta/recipes-extended/sysstat/sysstat.inc @@ -23,6 +23,10 @@ PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}" EXTRA_OECONF += "--disable-stripping" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "sysstat.service" +SYSTEMD_AUTO_ENABLE = "enable" + do_configure_prepend() { export sa_lib_dir=${libexecdir}/sa } diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_40.1.bb b/poky/meta/recipes-gnome/epiphany/epiphany_40.1.bb deleted file mode 100644 index 2242e9d01..000000000 --- a/poky/meta/recipes-gnome/epiphany/epiphany_40.1.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "WebKit based web browser for GNOME" -DESCRIPTION = "Epiphany is an open source web browser for the Linux desktop environment. \ -It provides a simple and easy-to-use internet browsing experience." -HOMEPAGE = "https://wiki.gnome.org/Apps/Web" -BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr gnutls \ - gsettings-desktop-schemas libxml2-native \ - glib-2.0 glib-2.0-native json-glib libdazzle libhandy libportal \ - libarchive" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase gsettings features_check gettext mime-xdg -REQUIRED_DISTRO_FEATURES = "x11 opengl" - -SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ - file://0002-help-meson.build-disable-the-use-of-yelp.patch \ - file://migrator.patch \ - file://distributor.patch \ - " -SRC_URI[archive.sha256sum] = "696a426b1702774af8d0f056828f5d9ff9350507aba7f4c7e3e499f07a581ad0" - -# Developer mode enables debugging -PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false" - -FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" -RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_40.2.bb b/poky/meta/recipes-gnome/epiphany/epiphany_40.2.bb new file mode 100644 index 000000000..abd4ad057 --- /dev/null +++ b/poky/meta/recipes-gnome/epiphany/epiphany_40.2.bb @@ -0,0 +1,29 @@ +SUMMARY = "WebKit based web browser for GNOME" +DESCRIPTION = "Epiphany is an open source web browser for the Linux desktop environment. \ +It provides a simple and easy-to-use internet browsing experience." +HOMEPAGE = "https://wiki.gnome.org/Apps/Web" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr gnutls \ + gsettings-desktop-schemas libxml2-native \ + glib-2.0 glib-2.0-native json-glib libdazzle libhandy libportal \ + libarchive" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gsettings features_check gettext mime-xdg +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0002-help-meson.build-disable-the-use-of-yelp.patch \ + file://migrator.patch \ + file://distributor.patch \ + " +SRC_URI[archive.sha256sum] = "75119e22065657cf70ef2b603d4f73835573bd034f1e618c0f662478fd6c6835" + +# Developer mode enables debugging +PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false" + +FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" +RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/poky/meta/recipes-graphics/clutter/clutter-1.0.inc b/poky/meta/recipes-graphics/clutter/clutter-1.0.inc deleted file mode 100644 index 80472178b..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-1.0.inc +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Graphics library for creating hardware-accelerated user interfaces" -DESCRIPTION = "Clutter is an Open GL based interactive canvas library, \ -designed for creating fast, mainly 2D single window applications such as media \ -box UIs, presentations, kiosk style applications and so on." -HOMEPAGE = "http://www.clutter-project.org/" -LICENSE = "LGPLv2.1+" - -inherit clutter ptest-gnome features_check upstream-version-is-even gobject-introspection -# depends on cogl-1.0 which needs opengl -REQUIRED_DISTRO_FEATURES ?= "opengl" - -DEPENDS = "pango glib-2.0 json-glib atk udev cogl-1.0" -PACKAGE_BEFORE_PN += "${PN}-examples" -AUTOTOOLS_AUXDIR = "${S}/build-aux" - -EDEPENDS_X11 = "virtual/libx11 libxi libxfixes" -EDEPENDS_GLX = "virtual/libgl" -EDEPENDS_EGL = "virtual/egl" -EDEPENDS_WAYLAND = "wayland libxkbcommon gdk-pixbuf" - -EDEPENDS_EVDEV = "libxkbcommon" -ERDEPENDS_EVDEV = "xkeyboard-config" - -# Disable pretty much everything, override in platform specific set up -EXTRA_OECONF += "--disable-quartz-backend \ - --disable-win32-backend \ - --disable-cex100-backend \ - --disable-tslib-input \ - " - -PACKAGECONFIG[gdk] = "--enable-gdk-backend,--disable-gdk-backend,gtk+3" -PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,${EDEPENDS_X11}" -PACKAGECONFIG[glx] = ",,${EDEPENDS_X11} ${EDEPENDS_GLX}" -PACKAGECONFIG[egl] = "--enable-egl-backend,--disable-egl-backend,${EDEPENDS_EGL}" -PACKAGECONFIG[evdev] = "--enable-evdev-input,--disable-evdev-input,${EDEPENDS_EVDEV},${ERDEPENDS_EVDEV}" -PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,${EDEPENDS_WAYLAND}" -PACKAGECONFIG[wayland-compositor] = "--enable-wayland-compositor,--disable-wayland-compositor,wayland" - -# Default configuration, distros might want to override -PACKAGECONFIG ??= "egl gdk \ - ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', '', d)}" - -FILES_${PN}-examples = "${libdir}/clutter/examples" - -do_configure_prepend() { - # see https://bugzilla.gnome.org/show_bug.cgi?id=661128 for this - touch -t 200001010000 ${S}/po/clutter-1.0.pot -} diff --git a/poky/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch b/poky/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch deleted file mode 100644 index 7b3c1980b..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 3a0404dfbc65c6a864e01d1200a48074e19d5def Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 2 Sep 2016 14:28:38 +0300 -Subject: [PATCH] Remove clutter.types as it is build configuration-specific. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - doc/reference/clutter.types | 122 -------------------------------------------- - 1 file changed, 122 deletions(-) - delete mode 100644 doc/reference/clutter.types - -diff --git a/doc/reference/clutter.types b/doc/reference/clutter.types -deleted file mode 100644 -index 0037acc..0000000 ---- a/doc/reference/clutter.types -+++ /dev/null -@@ -1,122 +0,0 @@ --cally_actor_get_type --cally_clone_get_type --cally_group_get_type --cally_rectangle_get_type --cally_root_get_type --cally_stage_get_type --cally_text_get_type --cally_texture_get_type --cally_util_get_type --clutter_action_get_type --clutter_actor_box_get_type --clutter_actor_get_type --clutter_actor_meta_get_type --clutter_align_constraint_get_type --clutter_alpha_get_type --clutter_animatable_get_type --clutter_animation_get_type --clutter_animator_get_type --clutter_animator_key_get_type --clutter_backend_get_type --clutter_behaviour_depth_get_type --clutter_behaviour_ellipse_get_type --clutter_behaviour_get_type --clutter_behaviour_opacity_get_type --clutter_behaviour_path_get_type --clutter_behaviour_rotate_get_type --clutter_behaviour_scale_get_type --clutter_bin_layout_get_type --clutter_bind_constraint_get_type --clutter_binding_pool_get_type --clutter_blur_effect_get_type --clutter_box_get_type --clutter_box_layout_get_type --clutter_brightness_contrast_effect_get_type --clutter_cairo_texture_get_type --clutter_canvas_get_type --clutter_child_meta_get_type --clutter_click_action_get_type --clutter_clip_node_get_type --clutter_clone_get_type --clutter_color_get_type --clutter_color_node_get_type --clutter_colorize_effect_get_type --clutter_constraint_get_type --clutter_container_get_type --clutter_content_get_type --clutter_deform_effect_get_type --clutter_desaturate_effect_get_type --clutter_device_manager_get_type --clutter_drag_action_get_type --clutter_drop_action_get_type --clutter_effect_get_type --clutter_event_get_type --clutter_event_sequence_get_type --clutter_fixed_layout_get_type --clutter_flow_layout_get_type --clutter_fog_get_type --clutter_geometry_get_type --clutter_gesture_action_get_type --clutter_glx_texture_pixmap_get_type --clutter_grid_layout_get_type --clutter_group_get_type --clutter_image_get_type --clutter_input_device_get_type --clutter_interval_get_type --clutter_keyframe_transition_get_type --clutter_knot_get_type --clutter_layout_manager_get_type --clutter_layout_meta_get_type --clutter_list_model_get_type --clutter_margin_get_type --clutter_media_get_type --clutter_model_get_type --clutter_model_iter_get_type --clutter_offscreen_effect_get_type --clutter_page_turn_effect_get_type --clutter_paint_node_get_type --clutter_paint_volume_get_type --clutter_pan_action_get_type --clutter_param_color_get_type --clutter_param_fixed_get_type --clutter_param_units_get_type --clutter_path_constraint_get_type --clutter_path_get_type --clutter_path_node_get_type --clutter_perspective_get_type --clutter_pipeline_node_get_type --clutter_point_get_type --clutter_property_transition_get_type --clutter_rect_get_type --clutter_rectangle_get_type --clutter_rotate_action_get_type --clutter_score_get_type --clutter_script_get_type --clutter_scriptable_get_type --clutter_scroll_actor_get_type --clutter_settings_get_type --clutter_shader_effect_get_type --clutter_shader_float_get_type --clutter_shader_get_type --clutter_shader_int_get_type --clutter_shader_matrix_get_type --clutter_size_get_type --clutter_snap_constraint_get_type --clutter_stage_get_type --clutter_stage_manager_get_type --clutter_state_get_type --clutter_state_key_get_type --clutter_swipe_action_get_type --clutter_table_layout_get_type --clutter_tap_action_get_type --clutter_text_buffer_get_type --clutter_text_get_type --clutter_text_node_get_type --clutter_texture_get_type --clutter_texture_node_get_type --clutter_timeline_get_type --clutter_transition_get_type --clutter_transition_group_get_type --clutter_units_get_type --clutter_vertex_get_type --clutter_zoom_action_get_type --- -2.9.3 - diff --git a/poky/meta/recipes-graphics/clutter/clutter-1.0/install-examples.patch b/poky/meta/recipes-graphics/clutter/clutter-1.0/install-examples.patch deleted file mode 100644 index ce9ab3a24..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-1.0/install-examples.patch +++ /dev/null @@ -1,19 +0,0 @@ -Install the examples to $libdir/clutter/. - -Signed-off-by: Ross Burton -Upstream-Status: Inappropriate - -Index: clutter-1.26.2/examples/Makefile.am -=================================================================== ---- clutter-1.26.2.orig/examples/Makefile.am -+++ clutter-1.26.2/examples/Makefile.am -@@ -33,7 +33,8 @@ AM_CPPFLAGS = \ - -I$(top_srcdir)/clutter \ - -I$(top_builddir)/clutter - --noinst_PROGRAMS = $(all_examples) -+exampledir = $(pkglibdir)/examples -+example_PROGRAMS = $(all_examples) - - EXTRA_DIST = redhand.png - diff --git a/poky/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch b/poky/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch deleted file mode 100644 index fef82eaf9..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d6ceb5a44b28e0e50ede22b84984d8516897de4b Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Mon, 27 Apr 2015 20:12:33 +0300 -Subject: [PATCH] Run installed tests with tap output - -Configure output from installed-tests to be TAP compliant such that -gnome-desktop-testing-runner properly interprets the results. - -Upstream-Status: Pending - -Signed-off-by: Tim Orling - ---- - build-aux/autotools/glib-tap.mk | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/build-aux/autotools/glib-tap.mk b/build-aux/autotools/glib-tap.mk -index a4f0dad..51cfa31 100644 ---- a/build-aux/autotools/glib-tap.mk -+++ b/build-aux/autotools/glib-tap.mk -@@ -127,7 +127,8 @@ installed_test_meta_DATA = $(installed_testcases:=.test) - %.test: %$(EXEEXT) Makefile - $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ - echo 'Type=session' >> $@.tmp; \ -- echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$<' >> $@.tmp; \ -+ echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$< --tap' >> $@.tmp; \ -+ echo 'Output=TAP' >> $@.tmp; \ - mv $@.tmp $@) - - CLEANFILES += $(installed_test_meta_DATA) diff --git a/poky/meta/recipes-graphics/clutter/clutter-1.0/run-ptest b/poky/meta/recipes-graphics/clutter/clutter-1.0/run-ptest deleted file mode 100644 index 98877e522..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-1.0/run-ptest +++ /dev/null @@ -1,3 +0,0 @@ -#! /bin/sh - -gnome-desktop-testing-runner clutter diff --git a/poky/meta/recipes-graphics/clutter/clutter-1.0_1.26.4.bb b/poky/meta/recipes-graphics/clutter/clutter-1.0_1.26.4.bb deleted file mode 100644 index ee549fbdd..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-1.0_1.26.4.bb +++ /dev/null @@ -1,10 +0,0 @@ -require clutter-1.0.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI[archive.md5sum] = "624dd776a5159de0267587b1df6b97b2" -SRC_URI[archive.sha256sum] = "8b48fac159843f556d0a6be3dbfc6b083fc6d9c58a20a49a6b4919ab4263c4e6" -SRC_URI += "file://install-examples.patch \ - file://run-installed-tests-with-tap-output.patch \ - file://0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch \ - file://run-ptest" diff --git a/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc b/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc deleted file mode 100644 index 73315c97e..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-gst-3.0.inc +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "GStreamer integration library for Clutter" -DESCRIPTION = "Clutter-Gst is an integration library for using GStreamer with Clutter. \ -It provides a GStreamer sink to upload frames to GL and an actor that \ -implements the ClutterGstPlayer interface using playbin." -HOMEPAGE = "http://www.clutter-project.org/" -BUGTRACKER = "https://gitlab.gnome.org/GNOME/clutter-gst/-/issues" -LICENSE = "LGPLv2+" - -inherit clutter features_check upstream-version-is-even gobject-introspection -# depends on clutter-1.0 which depends on cogl-1.0 -REQUIRED_DISTRO_FEATURES ?= "opengl" - -export GST_PLUGIN_SCANNER_1_0="${S}/gst-plugin-scanner-dummy" - -SRC_URI += "file://0001-Install-example-binary-needed-for-core-image-clutter.patch" - -DEPENDS = "gstreamer1.0-plugins-base gstreamer1.0-plugins-bad clutter-1.0 libgudev" -RDEPENDS_${PN} += "gstreamer1.0-meta-base" -PACKAGES =+ "${PN}-examples" - -FILES_${PN} += "${libdir}/gstreamer-1.0/lib*.so" -FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" -FILES_${PN}-examples = "${bindir}/video-player ${bindir}/video-sink" diff --git a/poky/meta/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch b/poky/meta/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch deleted file mode 100644 index 0b26b990d..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d77c711277bf075ce0545c19b322f040c49c778a Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Thu, 30 Apr 2015 12:19:13 +0300 -Subject: [PATCH] Install example binary needed for core-image-clutter - -Signed-off-by: Zhai Edwin - -Upstream-Status: Inappropriate [configuration] - -Imported from clutter-gst-1.8 package, git://git.openembedded.org/openembedded, -commit ae28ee3f7a060b9e0d13154a84f2444a98490b5b, updated for clutter-gst 3.0 - -Signed-off-by: Tomas Frydrych -Signed-off-by: Alexander Kanavin ---- - examples/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/examples/Makefile.am b/examples/Makefile.am -index bfbc1b5..09655e3 100644 ---- a/examples/Makefile.am -+++ b/examples/Makefile.am -@@ -1,6 +1,6 @@ - NULL = # - --noinst_PROGRAMS = camera-player video-player video-sink video-sink-navigation video-content -+bin_PROGRAMS = camera-player video-player video-sink video-sink-navigation video-content - - AM_CPPFLAGS = -I$(top_srcdir) \ - $(MAINTAINER_CFLAGS) \ --- -2.1.4 - diff --git a/poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb b/poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb deleted file mode 100644 index 35382453c..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb +++ /dev/null @@ -1,7 +0,0 @@ -require clutter-gst-3.0.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://clutter-gst/clutter-gst.h;beginline=1;endline=24;md5=95baacba194e814c110ea3bdf25ddbf4" - -SRC_URI[archive.md5sum] = "2bf9d7ca146c9d71e86c45cd00e9a28e" -SRC_URI[archive.sha256sum] = "fe69bd6c659d24ab30da3f091eb91cd1970026d431179b0724f13791e8ad9f9d" diff --git a/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc b/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc deleted file mode 100644 index 9a28b5219..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Library for embedding a Clutter canvas in a GTK+ application" -DESCRIPTION = "Clutter-GTK is a library providing facilities to integrate Clutter into GTK+ \ -applications and vice versa. It provides a GTK+ widget, GtkClutterEmbed, for embedding the \ -a Clutter stage into any GtkContainer; and GtkClutterActor, a Clutter \ -actor for embedding any GtkWidget inside a Clutter stage." -HOMEPAGE = "http://www.clutter-project.org/" -BUGTRACKER = "https://gitlab.gnome.org/GNOME/clutter/-/issues" -LICENSE = "LGPLv2+" - -CLUTTERBASEBUILDCLASS = "meson" -inherit clutter features_check upstream-version-is-even gobject-introspection gtk-doc - -# depends on clutter-1.0 which depends on cogl-1.0 -REQUIRED_DISTRO_FEATURES ?= "opengl" -# depends on gtk+3 -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" - -DEPENDS = "clutter-1.0 gtk+3" -PACKAGES =+ "${PN}-examples" - -GTKDOC_MESON_OPTION = "enable_docs" - -GIR_MESON_OPTION = 'enable_gi' diff --git a/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch b/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch deleted file mode 100644 index e21c6fd90..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 7233883c6bd4e80c0e91b29b5c76fe798023e9fe Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 11 Feb 2019 16:41:13 +0100 -Subject: [PATCH] Add a config variable for enabling/disabling introspection - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - clutter-gtk/meson.build | 2 +- - meson_options.txt | 4 ++++ - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/clutter-gtk/meson.build b/clutter-gtk/meson.build -index 5d6847d..5d934b6 100644 ---- a/clutter-gtk/meson.build -+++ b/clutter-gtk/meson.build -@@ -49,7 +49,7 @@ clutter_gtk_dep = declare_dependency(link_with: clutter_gtk, - dependencies: [ mathlib_dep, clutter_dep, gtk_dep ], - include_directories: include_directories('.')) - --if not meson.is_cross_build() -+if get_option('enable_gi') - gnome.generate_gir(clutter_gtk, - sources: clutter_gtk_headers + clutter_gtk_sources, - namespace: 'GtkClutter', -diff --git a/meson_options.txt b/meson_options.txt -index aaf59f1..b7e51c3 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -2,3 +2,7 @@ option('enable_docs', - type: 'boolean', - value: false, - description: 'Enable generating the API reference (depends on GTK-Doc)') -+option('enable_gi', -+ type: 'boolean', -+ value: false, -+ description: 'Enable gobject introspection') diff --git a/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb b/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb deleted file mode 100644 index 53948c894..000000000 --- a/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb +++ /dev/null @@ -1,7 +0,0 @@ -require clutter-gtk-1.0.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -SRC_URI += " file://0001-Add-a-config-variable-for-enabling-disabling-introsp.patch" -SRC_URI[archive.md5sum] = "b363ac9878e2337be887b8ee9e1da00e" -SRC_URI[archive.sha256sum] = "521493ec038973c77edcb8bc5eac23eed41645117894aaee7300b2487cb42b06" diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0.inc b/poky/meta/recipes-graphics/cogl/cogl-1.0.inc deleted file mode 100644 index d581ad1c0..000000000 --- a/poky/meta/recipes-graphics/cogl/cogl-1.0.inc +++ /dev/null @@ -1,84 +0,0 @@ -SUMMARY = "Modern 3D graphics API with associated utility APIs" -DESCRIPTION = "Cogl is a small open source library for using 3D graphics \ -hardware for rendering. The API departs from the flat state machine style of \ -OpenGL and is designed to make it easy to write orthogonal components that \ -can render without stepping on each others toes." -HOMEPAGE = "https://gitlab.gnome.org/GNOME/cogl" -LICENSE = "MIT" - -inherit clutter features_check upstream-version-is-even gobject-introspection -# cogl-1.0 needs opengl to build -REQUIRED_DISTRO_FEATURES ?= "opengl" - -DEPENDS = "glib-2.0 gdk-pixbuf" -PACKAGES =+ "${PN}-examples \ - libcogl libcogl-gles2 libcogl-pango libcogl-path \ - " -AUTOTOOLS_AUXDIR = "${S}/build" - -# Extra DEPENDS for PACKAGECONFIG -EDEPENDS_GL = "virtual/libgl libdrm" -EDEPENDS_GLES2 = "virtual/libgles2" -EDEPENDS_KMS = "libdrm virtual/egl" -EDEPENDS_EGL = "virtual/egl" -EDEPENDS_X11 = "virtual/libx11 libxcomposite libxdamage libxfixes libxrandr" -EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland" - -# Extra RDEPENDS for PACKAGECONFIG -# This has to be explictly listed, because cogl dlopens the backends -ERDEPENDS_GL = "libgl" -ERDEPENDS_GLES2 = "libgles2" - -# GLESv1 is rarely tested, so disable it -EXTRA_OECONF += "--enable-examples-install \ - --enable-debug \ - --disable-gles1 \ - --disable-cairo \ - " -DEBUG_OPTIMIZATION_append = " -Wno-error=maybe-uninitialized" - -# OpenGL/GLX -PACKAGECONFIG[glx] = "--enable-gl --enable-glx,--disable-gl --disable-glx,${EDEPENDS_GL} ${EDEPENDS_X11},${ERDEPENDS_GL}" - -# GLESv2 -PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,${EDEPENDS_GLES2}, ${ERDEPENDS_GLES2}" - -# EGL backends -PACKAGECONFIG[egl-kms] = "--enable-kms-egl-platform,--disable-kms-egl-platform,${EDEPENDS_KMS}" -PACKAGECONFIG[egl-null] = "--enable-null-egl-platform,--disable-null-egl-platform" -PACKAGECONFIG[egl-x11] = "--enable-xlib-egl-platform,--disable-xlib-egl-platform,${EDEPENDS_X11} ${EDEPENDS_EGL}" -PACKAGECONFIG[egl-wayland] = "--enable-wayland-egl-platform,--disable-wayland-egl-platform,${EDEPENDS_WAYLAND}" - -# Wayland (server-side) -PACKAGECONFIG[wayland-server] = "--enable-wayland-egl-server,--disable-wayland-egl-server,${EDEPENDS_WAYLAND}" - -# Support rendering text directly with Pango -PACKAGECONFIG[cogl-pango] = "--enable-cogl-pango,--disable-cogl-pango,pango" - -# Respect the DISTRO_FEATURES to pull in GLX or Wayland as appropriate by -# default. -PACKAGECONFIG ??= "cogl-pango gles2 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx egl-x11', '', d)} \ - " - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/cogl/.libs" -} - -FILES_${PN} = "" -FILES_${PN}-examples = "${bindir}/* ${datadir}/cogl/examples-data/*" -FILES_libcogl = "${libdir}/libcogl${SOLIBS} ${libdir}/girepository-1.0/Cogl-*.typelib" -FILES_libcogl-gles2 = "${libdir}/libcogl-gles2${SOLIBS}" -FILES_libcogl-pango = "${libdir}/libcogl-pango${SOLIBS} ${libdir}/girepository-1.0/CoglPango*.typelib" - -FILES_libcogl-path = "${libdir}/libcogl-path${SOLIBS}" - -# For backwards compatibility after Debian-renaming -RPROVIDES_libcogl = "cogl-1.0" -RCONFLICTS_libcogl = "cogl-1.0" -RREPLACES_libcogl = "cogl-1.0" - -RDEPENDS_${PN}-dev = "libcogl" - -COMPATIBLE_HOST_armv4 = 'null' diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch b/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch deleted file mode 100644 index 328984a63..000000000 --- a/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch +++ /dev/null @@ -1,92 +0,0 @@ -From bb9765a926588ebfe1eb324fbbe8fc22d419eebe Mon Sep 17 00:00:00 2001 -From: Max Krummenacher -Date: Thu, 25 Jun 2020 11:27:40 +0000 -Subject: [PATCH] configure.ac: don't require eglmesaext.h - -E.g. the Vivante EGL implementation does not provide eglmesaext.h. - -The commit moves the check for header file existence outside of the -check for existence of a egl packageconfig and makes the existence -of eglmesaext.h optional. - -fixes commit fb1acfec ("Fix building against libglvnd-provided EGL headers") -Signed-off-by: Max Krummenacher - -Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/28] -Signed-off-by: Max Krummenacher ---- - configure.ac | 51 ++++++++++++++++++++++++++++++++------------------- - 1 file changed, 32 insertions(+), 19 deletions(-) - -diff --git a/configure.ac b/configure.ac -index b7ba95d..0d1d8de 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1212,22 +1212,6 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"], - PKG_CHECK_EXISTS([egl], - [COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES egl"], - [ -- AC_CHECK_HEADERS( -- [EGL/egl.h], -- [], -- [AC_MSG_ERROR([Unable to locate required EGL headers])]) -- AC_CHECK_HEADERS( -- [EGL/eglext.h], -- [], -- [AC_MSG_ERROR([Unable to locate required EGL headers])], -- [#include ]) -- AC_CHECK_HEADERS( -- [EGL/eglmesaext.h], -- [], -- [AC_MSG_ERROR([Unable to locate required EGL headers])], -- [#include --#include ]) -- - AC_CHECK_LIB(EGL, [eglInitialize], - [COGL_EXTRA_LDFLAGS="$COGL_EXTRA_LDFLAGS -lEGL"], - [AC_MSG_ERROR([Unable to locate required EGL library])]) -@@ -1236,9 +1220,38 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"], - ] - ) - -- COGL_EGL_INCLUDES="#include --#include --#include " -+dnl Test for the existence of egl headers. -+dnl egl*.h includes eglplatform.h which on __unix__ defaults to a X11 platform. -+dnl In that case AC_CHECK_HEADERS failes if X11 headers are not available. -+dnl Set the usual include guard define and, if the EGL implementation doesn't -+dnl use that guard fall back to USE_OZONE and EGL_NO_X11 platforms which don't -+dnl require additional headers. -+ AC_CHECK_HEADERS( -+ [EGL/egl.h], -+ [COGL_EGL_INCLUDES="#include "], -+ [AC_MSG_ERROR([Unable to locate required EGL headers])], -+ [#define __egl_h_ -+ #define USE_OZONE -+ #define EGL_NO_X11]) -+ AC_CHECK_HEADERS( -+ [EGL/eglext.h], -+ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES -+#include "], -+ [AC_MSG_ERROR([Unable to locate required EGL headers])], -+ [#define __eglext_h_ -+ #define USE_OZONE -+ #define EGL_NO_X11 -+$COGL_EGL_INCLUDES]) -+ AC_CHECK_HEADERS( -+ [EGL/eglmesaext.h], -+ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES -+#include "], -+ [], -+ [#define __eglmesaext_h_ -+#define USE_OZONE -+#define EGL_NO_X11 -+$COGL_EGL_INCLUDES]) -+ - AC_SUBST([COGL_EGL_INCLUDES]) - ]) - --- -2.20.1 - diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb b/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb deleted file mode 100644 index b9446fab3..000000000 --- a/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb +++ /dev/null @@ -1,6 +0,0 @@ -require cogl-1.0.inc - -SRC_URI += "file://0001-configure.ac-don-t-require-eglmesaext.h.patch" -SRC_URI[archive.sha256sum] = "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759" - -LIC_FILES_CHKSUM = "file://COPYING;md5=1b1a508d91d25ca607c83f92f3e31c84" diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Removed-unused-variable-supp_size-from-plan_subset_e.patch b/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Removed-unused-variable-supp_size-from-plan_subset_e.patch new file mode 100644 index 000000000..c1d4df42a --- /dev/null +++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Removed-unused-variable-supp_size-from-plan_subset_e.patch @@ -0,0 +1,44 @@ +From f96b2b653c605679b83a820b38f49a0a0f4baf42 Mon Sep 17 00:00:00 2001 +From: Andi-Bogdan Postelnicu +Date: Wed, 2 Jun 2021 14:08:11 +0300 +Subject: [PATCH] Removed unused variable `supp_size` from + plan_subset_encoding(...). + +Upstream-Status: Backport [https://github.com/harfbuzz/harfbuzz/commit/243d056ff1c2af583ceb67e5dfbfaac51dc96e63] +Signed-off-by: Khem Raj +--- + src/hb-subset-cff1.cc | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/src/hb-subset-cff1.cc b/src/hb-subset-cff1.cc +index df322f8..35dae7b 100644 +--- a/src/hb-subset-cff1.cc ++++ b/src/hb-subset-cff1.cc +@@ -402,7 +402,7 @@ struct cff_subset_plan { + void plan_subset_encoding (const OT::cff1::accelerator_subset_t &acc, hb_subset_plan_t *plan) + { + const Encoding *encoding = acc.encoding; +- unsigned int size0, size1, supp_size; ++ unsigned int size0, size1; + hb_codepoint_t code, last_code = CFF_UNDEF_CODE; + hb_vector_t supp_codes; + +@@ -412,7 +412,6 @@ struct cff_subset_plan { + return; + } + +- supp_size = 0; + supp_codes.init (); + + subset_enc_num_codes = plan->num_output_glyphs () - 1; +@@ -448,7 +447,6 @@ struct cff_subset_plan { + code_pair_t pair = { supp_codes[i], sid }; + subset_enc_supp_codes.push (pair); + } +- supp_size += SuppEncoding::static_size * supp_codes.length; + } + } + supp_codes.fini (); +-- +2.31.1 + diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.8.1.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.8.1.bb index 235363307..1a0e651f6 100644 --- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.8.1.bb +++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.8.1.bb @@ -11,6 +11,7 @@ UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" UPSTREAM_CHECK_REGEX = "harfbuzz-(?P\d+(\.\d+)+).tar" SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz \ + file://0001-Removed-unused-variable-supp_size-from-plan_subset_e.patch \ " SRC_URI[sha256sum] = "4124f663ec4bf4e294d9cf230668370b4249a48ff34deaf0f06e8fc82d891300" diff --git a/poky/meta/recipes-graphics/images/core-image-clutter.bb b/poky/meta/recipes-graphics/images/core-image-clutter.bb deleted file mode 100644 index a59446102..000000000 --- a/poky/meta/recipes-graphics/images/core-image-clutter.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "An image with support for the Open GL-based toolkit Clutter, \ -which enables development of rich and animated graphical user interfaces." - -IMAGE_FEATURES += "splash package-management x11-base x11-sato ssh-server-dropbear" - -LICENSE = "MIT" - -IMAGE_INSTALL = "\ - ${CORE_IMAGE_BASE_INSTALL} \ - packagegroup-core-clutter-core \ - " - -inherit core-image - -QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' diff --git a/poky/meta/recipes-graphics/images/core-image-weston.bb b/poky/meta/recipes-graphics/images/core-image-weston.bb index e82e4fbb3..62305cc1c 100644 --- a/poky/meta/recipes-graphics/images/core-image-weston.bb +++ b/poky/meta/recipes-graphics/images/core-image-weston.bb @@ -6,7 +6,7 @@ LICENSE = "MIT" inherit core-image -CORE_IMAGE_BASE_INSTALL += "gtk+3-demo clutter-1.0-examples" +CORE_IMAGE_BASE_INSTALL += "gtk+3-demo" CORE_IMAGE_BASE_INSTALL += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'weston-xwayland matchbox-terminal', '', d)}" QB_MEM = "-m 512" diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb index 0bd6af8db..7d0c4340f 100644 --- a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb +++ b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.6.bb @@ -41,6 +41,9 @@ EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx3 # Work around missing non-floating point ABI support in MIPS EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}" +EXTRA_OECMAKE_append_class-target_arm = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "", "-DWITH_SIMD=False", d)}" +EXTRA_OECMAKE_append_class-target_armeb = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "", "-DWITH_SIMD=False", d)}" + # Provide a workaround if Altivec unit is not present in PPC EXTRA_OECMAKE_append_class-target_powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" EXTRA_OECMAKE_append_class-target_powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_21.1.1.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_21.1.1.bb deleted file mode 100644 index dff79f0be..000000000 --- a/poky/meta/recipes-graphics/mesa/mesa-gl_21.1.1.bb +++ /dev/null @@ -1,16 +0,0 @@ -require mesa.inc - -SUMMARY += " (OpenGL only, no EGL/GLES)" - -PROVIDES = "virtual/libgl virtual/mesa" - -S = "${WORKDIR}/mesa-${PV}" - -# At least one DRI rendering engine is required to build mesa. -# When no X11 is available, use osmesa for the rendering engine. -PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" -PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" - -# 21.0.0 version fails to build when any driver is enabled in DRIDRIVERS -# ./mesa-21.0.0/meson.build:519:4: ERROR: Problem encountered: building dri drivers require at least one windowing system -DRIDRIVERS ?= "" diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_21.1.3.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_21.1.3.bb new file mode 100644 index 000000000..dff79f0be --- /dev/null +++ b/poky/meta/recipes-graphics/mesa/mesa-gl_21.1.3.bb @@ -0,0 +1,16 @@ +require mesa.inc + +SUMMARY += " (OpenGL only, no EGL/GLES)" + +PROVIDES = "virtual/libgl virtual/mesa" + +S = "${WORKDIR}/mesa-${PV}" + +# At least one DRI rendering engine is required to build mesa. +# When no X11 is available, use osmesa for the rendering engine. +PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" +PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" + +# 21.0.0 version fails to build when any driver is enabled in DRIDRIVERS +# ./mesa-21.0.0/meson.build:519:4: ERROR: Problem encountered: building dri drivers require at least one windowing system +DRIDRIVERS ?= "" diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc index 32cc997c9..b7e42a9d7 100644 --- a/poky/meta/recipes-graphics/mesa/mesa.inc +++ b/poky/meta/recipes-graphics/mesa/mesa.inc @@ -21,7 +21,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \ " -SRC_URI[sha256sum] = "eec25ea379054e8911bc5de816aeb50f581b5b708414725003d2f00386b38dd2" +SRC_URI[sha256sum] = "cbe221282670875ffd762247b6a2c95dcee91d0a34c29802c75ef761fc891e69" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" @@ -131,6 +131,9 @@ PACKAGECONFIG[v3d] = "" GALLIUMDRIVERS = "swrast" # gallium swrast was found to crash Xorg on startup in x32 qemu GALLIUMDRIVERS_x86-x32 = "" +# Add crocus when 21.2 is out to the list below to support the full range of Intel GPUs +GALLIUMDRIVERS_append_x86_class-target = ",i915,iris" +GALLIUMDRIVERS_append_x86-64_class-target = ",i915,iris" GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" diff --git a/poky/meta/recipes-graphics/mesa/mesa_21.1.1.bb b/poky/meta/recipes-graphics/mesa/mesa_21.1.1.bb deleted file mode 100644 index 1993d6cbd..000000000 --- a/poky/meta/recipes-graphics/mesa/mesa_21.1.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -require ${BPN}.inc - -DRIDRIVERS_append_x86_class-target = ",r100,r200,nouveau,i965,i915" -DRIDRIVERS_append_x86-64_class-target = ",r100,r200,nouveau,i965,i915" - diff --git a/poky/meta/recipes-graphics/mesa/mesa_21.1.3.bb b/poky/meta/recipes-graphics/mesa/mesa_21.1.3.bb new file mode 100644 index 000000000..28abc91a8 --- /dev/null +++ b/poky/meta/recipes-graphics/mesa/mesa_21.1.3.bb @@ -0,0 +1,5 @@ +require ${BPN}.inc + +DRIDRIVERS_append_x86_class-target = ",r100,r200,nouveau,i965" +DRIDRIVERS_append_x86-64_class-target = ",r100,r200,nouveau,i965" + diff --git a/poky/meta/recipes-graphics/mx/mx-1.0/fix-test-includes.patch b/poky/meta/recipes-graphics/mx/mx-1.0/fix-test-includes.patch deleted file mode 100644 index 82c93dd60..000000000 --- a/poky/meta/recipes-graphics/mx/mx-1.0/fix-test-includes.patch +++ /dev/null @@ -1,20 +0,0 @@ -Fix missing include directory when building tests - -This patch is currently required for all versions of mx -Upstream-Status: Submitted @ https://github.com/clutter-project/mx/issues/82 -Signed-off-by: Tomas Frydrych --- -Index: git/tests/Makefile.am -=================================================================== ---- git.orig/tests/Makefile.am 2013-05-08 15:18:56.918596425 +0100 -+++ git/tests/Makefile.am 2013-05-08 15:23:26.864781401 +0100 -@@ -10,7 +10,8 @@ - - INCLUDES = \ - -I$(top_srcdir) \ -- -I$(top_builddir) -+ -I$(top_builddir)\ -+ -I$(top_builddir)/mx - - noinst_PROGRAMS = \ - test-deform-texture \ diff --git a/poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb b/poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb deleted file mode 100644 index 58a6997ff..000000000 --- a/poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb +++ /dev/null @@ -1,16 +0,0 @@ -require mx.inc - -# The 1.4.7 tag does not build against cogl 1.14, pull in a revision with a fix -SRCREV = "9b1db6b8060bd00b121a692f942404a24ae2960f" -PV = "1.4.7+git${SRCPV}" - -# Exclude x.99.x versions from upstream checks -UPSTREAM_CHECK_GITTAGREGEX = "(?P^\d+(\.(?!99)\d+)+)" - -SRC_URI = "git://github.com/clutter-project/mx.git;branch=mx-1.4 \ - file://fix-test-includes.patch \ - " -S = "${WORKDIR}/git" - -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24 \ - file://mx/mx-widget.c;beginline=8;endline=20;md5=13bba3c973a72414a701e1e87b5ee879" diff --git a/poky/meta/recipes-graphics/mx/mx.inc b/poky/meta/recipes-graphics/mx/mx.inc deleted file mode 100644 index c977849c9..000000000 --- a/poky/meta/recipes-graphics/mx/mx.inc +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Clutter based UI widget library" -DESCRIPTION = "Mx is a widget toolkit using Clutter that provides a set of standard interface \ -elements, including buttons, progress bars, scroll bars and others. It also \ -implements some standard managers. One other interesting feature is the \ -possibility setting style properties from a CSS format file." -HOMEPAGE = "https://github.com/clutter-project/mx" -BUGTRACKER = "https://github.com/clutter-project/mx/issues" -LICENSE = "LGPLv2.1" - -inherit clutter autotools features_check gobject-introspection gtk-doc -# depends on clutter-1.0 which depends on cogl-1.0 -REQUIRED_DISTRO_FEATURES = "opengl" - -DEPENDS = "intltool-native clutter-1.0 dbus-glib gdk-pixbuf" - -SRC_URI = "http://source.clutter-project.org/sources/mx/${@get_verdir("${PV}")}/mx-${PV}.tar.xz" - -EXTRA_OECONF = "--disable-gtk-widgets \ - --with-dbus \ - --with-winsys=none \ - --without-clutter-imcontext \ - --without-clutter-gesture \ - --without-startup-notification \ - --without-glade \ - " - -FILES_${PN} += "${datadir}" diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb deleted file mode 100644 index 2e7b47dd4..000000000 --- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb +++ /dev/null @@ -1,22 +0,0 @@ -# -# Copyright (C) 2007 OpenedHand Ltd. -# - -SUMMARY = "Clutter package groups" - -PR = "r6" - -inherit packagegroup features_check -# rdepends on clutter-* -REQUIRED_DISTRO_FEATURES = "opengl" - -PACKAGES = "\ - ${PN}-core \ - " - -SUMMARY_${PN}-core = "Clutter graphics library" -RDEPENDS_${PN}-core = "\ - clutter-1.0 \ - clutter-gst-3.0 \ - clutter-gtk-1.0 \ - " diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb index 399189582..65bd1af94 100644 --- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb +++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb @@ -8,7 +8,7 @@ HOMEPAGE = "https://virgil3d.github.io/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" -DEPENDS = "libdrm virtual/libgl libepoxy" +DEPENDS = "libdrm virtual/libgl virtual/libgbm libepoxy" SRCREV = "363915595e05fb252e70d6514be2f0c0b5ca312b" SRC_URI = "git://anongit.freedesktop.org/virglrenderer;branch=branch-0.9.1 \ file://0001-meson.build-use-python3-directly-for-python.patch \ diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.17.3.bb b/poky/meta/recipes-graphics/wayland/libinput_1.17.3.bb deleted file mode 100644 index ef19146f7..000000000 --- a/poky/meta/recipes-graphics/wayland/libinput_1.17.3.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Library to handle input devices in Wayland compositors" -DESCRIPTION = "libinput is a library to handle input devices in Wayland \ -compositors and to provide a generic X.Org input driver. It provides \ -device detection, device handling, input device event processing and \ -abstraction so minimize the amount of custom input code compositors need to \ -provide the common set of functionality that users expect." -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" -SECTION = "libs" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63" - -DEPENDS = "libevdev udev mtdev libcheck" - -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \ - file://run-ptest \ - file://determinism.patch \ - " -SRC_URI[sha256sum] = "0d010e0bf601b5d3a06b3c4d77d67751cf554f3e6448e57aa046ea9ee8f818ac" - -UPSTREAM_CHECK_REGEX = "libinput-(?P\d+\.\d+\.(?!9\d+)\d+)" - -inherit meson pkgconfig lib_package ptest - -# Patch out build directory, otherwise it leaks into ptest binary -do_configure_append() { - sed -i -e "s,${WORKDIR},,g" config.h - if [ -e "litest-config.h" ]; then - sed -i -e "s,${WORKDIR},,g" litest-config.h - fi -} - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" -PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" - -UDEVDIR = "`pkg-config --variable=udevdir udev`" - -EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \ - -Ddocumentation=false \ - ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true -Dinstall-tests=true', '-Dtests=false -Dinstall-tests=false', d)} \ - -Dzshcompletiondir=no" - -# package name changed in 1.8.1 upgrade: make sure package upgrades work -RPROVIDES_${PN} = "libinput" -RREPLACES_${PN} = "libinput" -RCONFLICTS_${PN} = "libinput" - -FILES_${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite" diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.18.0.bb b/poky/meta/recipes-graphics/wayland/libinput_1.18.0.bb new file mode 100644 index 000000000..e46071c67 --- /dev/null +++ b/poky/meta/recipes-graphics/wayland/libinput_1.18.0.bb @@ -0,0 +1,49 @@ +SUMMARY = "Library to handle input devices in Wayland compositors" +DESCRIPTION = "libinput is a library to handle input devices in Wayland \ +compositors and to provide a generic X.Org input driver. It provides \ +device detection, device handling, input device event processing and \ +abstraction so minimize the amount of custom input code compositors need to \ +provide the common set of functionality that users expect." +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=bab4ac7dc1c10bc0fb037dc76c46ef8a" + +DEPENDS = "libevdev udev mtdev libcheck" + +SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \ + file://run-ptest \ + file://determinism.patch \ + " +SRC_URI[sha256sum] = "18c6a286583268d39841348e561fbb4713bde0c643b360f5d8a3f27800afdb9a" + +UPSTREAM_CHECK_REGEX = "libinput-(?P\d+\.\d+\.(?!9\d+)\d+)" + +inherit meson pkgconfig lib_package ptest + +# Patch out build directory, otherwise it leaks into ptest binary +do_configure_append() { + sed -i -e "s,${WORKDIR},,g" config.h + if [ -e "litest-config.h" ]; then + sed -i -e "s,${WORKDIR},,g" litest-config.h + fi +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" +PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" + +UDEVDIR = "`pkg-config --variable=udevdir udev`" + +EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \ + -Ddocumentation=false \ + ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true -Dinstall-tests=true', '-Dtests=false -Dinstall-tests=false', d)} \ + -Dzshcompletiondir=no" + +# package name changed in 1.8.1 upgrade: make sure package upgrades work +RPROVIDES_${PN} = "libinput" +RREPLACES_${PN} = "libinput" +RCONFLICTS_${PN} = "libinput" + +FILES_${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.30.0.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.30.0.bb deleted file mode 100644 index d02988caa..000000000 --- a/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.30.0.bb +++ /dev/null @@ -1,11 +0,0 @@ -require xorg-driver-input.inc - -SUMMARY = "Generic input driver for the X.Org server based on libinput" -LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0" - -DEPENDS += "libinput" - -SRC_URI[md5sum] = "11dcfa2cc39f790731a9545fcdeea717" -SRC_URI[sha256sum] = "f9c7f9fd41ae14061e0e9c3bd45fa170e5e21027a2bc5810034e1e748db996c0" - -FILES_${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.0.1.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.0.1.bb new file mode 100644 index 000000000..1777492ed --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.0.1.bb @@ -0,0 +1,11 @@ +require xorg-driver-input.inc + +SUMMARY = "Generic input driver for the X.Org server based on libinput" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=a22925127bd3c827c384cedd23ed2309" + +DEPENDS += "libinput" + +SRC_URI[sha256sum] = "fddec49c115591918475155bf16aaf23017d7f814cee7823a0c11f867aca245b" + +FILES_${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.1.bb b/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.1.bb deleted file mode 100644 index b5f0445e1..000000000 --- a/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.1.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "Xlib: C Language X Interface library" - -DESCRIPTION = "This package provides a client interface to the X Window \ -System, otherwise known as 'Xlib'. It provides a complete API for the \ -basic functions of the window system." - -require xorg-lib-common.inc - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:" - -PE = "1" - -SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \ - file://disable_tests.patch \ - " - -SRC_URI[sha256sum] = "e64e43deaa562cbfb0d5ada64670ec09c6fac7935262dcd77bbc6d984a535d47" - -PROVIDES = "virtual/libx11" - -XORG_PN = "libX11" -LICENSE = "MIT & MIT-style & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" - -DEPENDS += "xorgproto xtrans libxcb" -DEPENDS += "xorgproto-native" - -EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont" -EXTRA_OEMAKE += 'CWARNFLAGS=""' - -PACKAGECONFIG ??= "xcms" -PACKAGECONFIG[xcms] = "--enable-xcms,--disable-xcms" - -# src/util/makekeys is built natively but needs -D_GNU_SOURCE defined. -CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE" - -PACKAGES =+ "${PN}-xcb" - -inherit gettext - -FILES_${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt" -FILES_${PN}-xcb += "${libdir}/libX11-xcb.so.*" -FILES_${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb b/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb new file mode 100644 index 000000000..5d7e9e378 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb @@ -0,0 +1,42 @@ +SUMMARY = "Xlib: C Language X Interface library" + +DESCRIPTION = "This package provides a client interface to the X Window \ +System, otherwise known as 'Xlib'. It provides a complete API for the \ +basic functions of the window system." + +require xorg-lib-common.inc + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:" + +PE = "1" + +SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \ + file://disable_tests.patch \ + " + +SRC_URI[sha256sum] = "1cfa35e37aaabbe4792e9bb690468efefbfbf6b147d9c69d6f90d13c3092ea6c" + +PROVIDES = "virtual/libx11" + +XORG_PN = "libX11" +LICENSE = "MIT & MIT-style & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" + +DEPENDS += "xorgproto xtrans libxcb" +DEPENDS += "xorgproto-native" + +EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont" +EXTRA_OEMAKE += 'CWARNFLAGS=""' + +PACKAGECONFIG ??= "xcms" +PACKAGECONFIG[xcms] = "--enable-xcms,--disable-xcms" + +PACKAGES =+ "${PN}-xcb" + +inherit gettext + +FILES_${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt" +FILES_${PN}-xcb += "${libdir}/libX11-xcb.so.*" +FILES_${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.32.bb b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.32.bb deleted file mode 100644 index daa07a4d0..000000000 --- a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.32.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Keyboard configuration database for X Window" - -DESCRIPTION = "The non-arch keyboard configuration database for X \ -Window. The goal is to provide the consistent, well-structured, \ -frequently released open source of X keyboard configuration data for X \ -Window System implementations. The project is targeted to XKB-based \ -systems." - -HOMEPAGE = "http://freedesktop.org/wiki/Software/XKeyboardConfig" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config" - -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9" - -SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2" -SRC_URI[sha256sum] = "1feee317ba39b91902b0cbd2987c0c73e6afbfc8f4c096367a5c86c216c036a8" - -SECTION = "x11/libs" -DEPENDS = "util-macros libxslt-native" - -EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps" - -FILES_${PN} += "${datadir}/X11/xkb" - -inherit autotools pkgconfig gettext python3native - -do_install_append () { - install -d ${D}${datadir}/X11/xkb/compiled - cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg -} diff --git a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.33.bb b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.33.bb new file mode 100644 index 000000000..197a870e7 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.33.bb @@ -0,0 +1,30 @@ +SUMMARY = "Keyboard configuration database for X Window" + +DESCRIPTION = "The non-arch keyboard configuration database for X \ +Window. The goal is to provide the consistent, well-structured, \ +frequently released open source of X keyboard configuration data for X \ +Window System implementations. The project is targeted to XKB-based \ +systems." + +HOMEPAGE = "http://freedesktop.org/wiki/Software/XKeyboardConfig" +BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config" + +LICENSE = "MIT & MIT-style" +LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9" + +SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2" +SRC_URI[sha256sum] = "657fd790d6dcf781cd395de4cf726120a5b0f93ba91dfb2628bcc70ae8b1d3bc" + +SECTION = "x11/libs" +DEPENDS = "util-macros libxslt-native" + +EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps" + +FILES_${PN} += "${datadir}/X11/xkb" + +inherit autotools pkgconfig gettext python3native + +do_install_append () { + install -d ${D}${datadir}/X11/xkb/compiled + cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg +} diff --git a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.1.bb b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.1.bb deleted file mode 100644 index f4b089515..000000000 --- a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.1.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "X Window System unified protocol definitions" -DESCRIPTION = "This package provides the headers and specification documents defining \ -the core protocol and (many) extensions for the X Window System" -HOMEPAGE = "http://www.x.org" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" - -SECTION = "x11/libs" -LICENSE = "MIT-style" -LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=dfc4bd2b0568b31725b85b0604e69b56" - -SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.bz2" -SRC_URI[sha256sum] = "0bce7d4fe800dcb5581cc59a99946c12e6e0be292636544221ec73e96f1a28ed" - -inherit meson - -PACKAGECONFIG ??= "" -PACKAGECONFIG[legacy] = "-Dlegacy=true,-Dlegacy=false" - -# Datadir only used to install pc files, $datadir/pkgconfig -datadir="${libdir}" -# ${PN} is empty so we need to tweak -dev and -dbg package dependencies -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.2.bb b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.2.bb new file mode 100644 index 000000000..8db3e6d7a --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.2.bb @@ -0,0 +1,25 @@ +SUMMARY = "X Window System unified protocol definitions" +DESCRIPTION = "This package provides the headers and specification documents defining \ +the core protocol and (many) extensions for the X Window System" +HOMEPAGE = "http://www.x.org" +BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" + +SECTION = "x11/libs" +LICENSE = "MIT-style" +LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=dfc4bd2b0568b31725b85b0604e69b56" + +SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.bz2" +SRC_URI[sha256sum] = "c38878053179c6f8bc2daeeeeb4710b5fbf0e46db5b3134aee4a1977ffb06e7a" + +inherit meson + +PACKAGECONFIG ??= "" +PACKAGECONFIG[legacy] = "-Dlegacy=true,-Dlegacy=false" + +# Datadir only used to install pc files, $datadir/pkgconfig +datadir="${libdir}" +# ${PN} is empty so we need to tweak -dev and -dbg package dependencies +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-kernel/blktrace/blktrace/CVE-2018-10689.patch b/poky/meta/recipes-kernel/blktrace/blktrace/CVE-2018-10689.patch deleted file mode 100644 index 7b58568d5..000000000 --- a/poky/meta/recipes-kernel/blktrace/blktrace/CVE-2018-10689.patch +++ /dev/null @@ -1,150 +0,0 @@ -From d61ff409cb4dda31386373d706ea0cfb1aaac5b7 Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Wed, 2 May 2018 10:24:17 -0600 -Subject: [PATCH] btt: make device/devno use PATH_MAX to avoid overflow - -Herbo Zhang reports: - -I found a bug in blktrace/btt/devmap.c. The code is just as follows: - -https://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git/tree/btt/devmap.c?id=8349ad2f2d19422a6241f94ea84d696b21de4757 - - struct devmap { - -struct list_head head; -char device[32], devno[32]; // #1 -}; - -LIST_HEAD(all_devmaps); - -static int dev_map_add(char *line) -{ -struct devmap *dmp; - -if (strstr(line, "Device") != NULL) -return 1; - -dmp = malloc(sizeof(struct devmap)); -if (sscanf(line, "%s %s", dmp->device, dmp->devno) != 2) { //#2 -free(dmp); -return 1; -} - -list_add_tail(&dmp->head, &all_devmaps); -return 0; -} - -int dev_map_read(char *fname) -{ -char line[256]; // #3 -FILE *fp = my_fopen(fname, "r"); - -if (!fp) { -perror(fname); -return 1; -} - -while (fscanf(fp, "%255[a-zA-Z0-9 :.,/_-]\n", line) == 1) { -if (dev_map_add(line)) -break; -} - -fclose(fp); -return 0; -} - - The line length is 256, but the dmp->device, dmp->devno max length -is only 32. We can put strings longer than 32 into dmp->device and -dmp->devno , and then they will be overflowed. - - we can trigger this bug just as follows: - - $ python -c "print 'A'*256" > ./test - $ btt -M ./test - - *** Error in btt': free(): invalid next size (fast): 0x000055ad7349b250 *** - ======= Backtrace: ========= - /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f7f158ce7e5] - /lib/x86_64-linux-gnu/libc.so.6(+0x7fe0a)[0x7f7f158d6e0a] - /lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f7f158da98c] - btt(+0x32e0)[0x55ad7306f2e0] - btt(+0x2c5f)[0x55ad7306ec5f] - btt(+0x251f)[0x55ad7306e51f] - /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f7f15877830] - btt(+0x26b9)[0x55ad7306e6b9] - ======= Memory map: ======== - 55ad7306c000-55ad7307f000 r-xp 00000000 08:14 3698139 - /usr/bin/btt - 55ad7327e000-55ad7327f000 r--p 00012000 08:14 3698139 - /usr/bin/btt - 55ad7327f000-55ad73280000 rw-p 00013000 08:14 3698139 - /usr/bin/btt - 55ad73280000-55ad73285000 rw-p 00000000 00:00 0 - 55ad7349a000-55ad734bb000 rw-p 00000000 00:00 0 - [heap] - 7f7f10000000-7f7f10021000 rw-p 00000000 00:00 0 - 7f7f10021000-7f7f14000000 ---p 00000000 00:00 0 - 7f7f15640000-7f7f15656000 r-xp 00000000 08:14 14942237 - /lib/x86_64-linux-gnu/libgcc_s.so.1 - 7f7f15656000-7f7f15855000 ---p 00016000 08:14 14942237 - /lib/x86_64-linux-gnu/libgcc_s.so.1 - 7f7f15855000-7f7f15856000 r--p 00015000 08:14 14942237 - /lib/x86_64-linux-gnu/libgcc_s.so.1 - 7f7f15856000-7f7f15857000 rw-p 00016000 08:14 14942237 - /lib/x86_64-linux-gnu/libgcc_s.so.1 - 7f7f15857000-7f7f15a16000 r-xp 00000000 08:14 14948477 - /lib/x86_64-linux-gnu/libc-2.23.so - 7f7f15a16000-7f7f15c16000 ---p 001bf000 08:14 14948477 - /lib/x86_64-linux-gnu/libc-2.23.so - 7f7f15c16000-7f7f15c1a000 r--p 001bf000 08:14 14948477 - /lib/x86_64-linux-gnu/libc-2.23.so - 7f7f15c1a000-7f7f15c1c000 rw-p 001c3000 08:14 14948477 - /lib/x86_64-linux-gnu/libc-2.23.so - 7f7f15c1c000-7f7f15c20000 rw-p 00000000 00:00 0 - 7f7f15c20000-7f7f15c46000 r-xp 00000000 08:14 14948478 - /lib/x86_64-linux-gnu/ld-2.23.so - 7f7f15e16000-7f7f15e19000 rw-p 00000000 00:00 0 - 7f7f15e42000-7f7f15e45000 rw-p 00000000 00:00 0 - 7f7f15e45000-7f7f15e46000 r--p 00025000 08:14 14948478 - /lib/x86_64-linux-gnu/ld-2.23.so - 7f7f15e46000-7f7f15e47000 rw-p 00026000 08:14 14948478 - /lib/x86_64-linux-gnu/ld-2.23.so - 7f7f15e47000-7f7f15e48000 rw-p 00000000 00:00 0 - 7ffdebe5c000-7ffdebe7d000 rw-p 00000000 00:00 0 - [stack] - 7ffdebebc000-7ffdebebe000 r--p 00000000 00:00 0 - [vvar] - 7ffdebebe000-7ffdebec0000 r-xp 00000000 00:00 0 - [vdso] - ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 - [vsyscall] - [1] 6272 abort btt -M test - -Signed-off-by: Jens Axboe - -Upstream-Status: Backport -[https://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git/commit/?id=d61ff409cb4dda31386373d706ea0cfb1aaac5b7] - -CVE: CVE-2018-10689 - -Signed-off-by: Yi Zhao ---- - btt/devmap.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/btt/devmap.c b/btt/devmap.c -index 0553a9e..5fc1cb2 100644 ---- a/btt/devmap.c -+++ b/btt/devmap.c -@@ -23,7 +23,7 @@ - - struct devmap { - struct list_head head; -- char device[32], devno[32]; -+ char device[PATH_MAX], devno[PATH_MAX]; - }; - - LIST_HEAD(all_devmaps); --- -2.7.4 - diff --git a/poky/meta/recipes-kernel/blktrace/blktrace/ldflags.patch b/poky/meta/recipes-kernel/blktrace/blktrace/ldflags.patch deleted file mode 100644 index ab905cf0d..000000000 --- a/poky/meta/recipes-kernel/blktrace/blktrace/ldflags.patch +++ /dev/null @@ -1,114 +0,0 @@ -blktrace: obey LDFLAGS - -Upstream-Status: Pending - -Signed-off-by: Christopher Larson - -the patch was imported from meta-mentor layer on yoctoproject git server -http://git.yoctoproject.org/cgit/cgit.cgi/meta-mentor as of commit id -aed463414e2e2bf8ca44ba54ee5973e7ed599e57 - -Signed-off-by: Fahad Usman - -Index: git/Makefile -=================================================================== ---- git.orig/Makefile -+++ git/Makefile -@@ -1,5 +1,6 @@ - CC = gcc - CFLAGS = -Wall -O2 -g -W -+LDFLAGS = - ALL_CFLAGS = $(CFLAGS) -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - PROGS = blkparse blktrace verify_blkparse blkrawverify blkiomon - LIBS = -lpthread -@@ -26,19 +27,19 @@ btreplay/btreplay: - $(CC) -o $*.o -c $(ALL_CFLAGS) $< - - blkparse: blkparse.o blkparse_fmt.o rbtree.o act_mask.o -- $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) -+ $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LDFLAGS) - - blktrace: blktrace.o act_mask.o -- $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS) -+ $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS) $(LDFLAGS) - - verify_blkparse: verify_blkparse.o -- $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) -+ $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LDFLAGS) - - blkrawverify: blkrawverify.o -- $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) -+ $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LDFLAGS) - - blkiomon: blkiomon.o rbtree.o -- $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS) -lrt -+ $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS) -lrt $(LDFLAGS) - - $(PROGS): | depend - -Index: git/btreplay/Makefile -=================================================================== ---- git.orig/btreplay/Makefile -+++ git/btreplay/Makefile -@@ -7,6 +7,7 @@ - - CC = gcc - CFLAGS = -Wall -W -O2 -g -+LDFLAGS = - INCS = -I. -I.. -I../btt - OCFLAGS = -UCOUNT_IOS -UDEBUG -DNDEBUG - XCFLAGS = -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -@@ -32,10 +33,10 @@ clean: docsclean - $(CC) $(CFLAGS) -c -o $*.o $< - - btrecord: btrecord.o -- $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) -+ $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LDFLAGS) - - btreplay: btreplay.o -- $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LIBS) -+ $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LIBS) $(LDFLAGS) - - depend: - @$(CC) -MM $(CFLAGS) *.c 1> .depend -Index: git/btt/Makefile -=================================================================== ---- git.orig/btt/Makefile -+++ git/btt/Makefile -@@ -7,6 +7,7 @@ - - CC = gcc - CFLAGS = -Wall -W -O2 -g -+LDFLAGS = - INCS = -I. -I.. - XCFLAGS = -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - override CFLAGS += $(INCS) $(XCFLAGS) -@@ -38,7 +39,7 @@ clean: docsclean - $(CC) $(CFLAGS) -c -o $*.o $< - - btt: $(OBJS) -- $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LIBS) -+ $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LIBS) $(LDFLAGS) - - ifneq ($(wildcard .depend),) - include .depend -Index: git/iowatcher/Makefile -=================================================================== ---- git.orig/iowatcher/Makefile -+++ git/iowatcher/Makefile -@@ -1,5 +1,6 @@ - CC = gcc - CFLAGS = -Wall -O2 -g -W -Wunused-result -+LDFLAGS = - ALL_CFLAGS = $(CFLAGS) -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - - PROGS = iowatcher -@@ -19,7 +20,7 @@ all: $(ALL) - $(CC) -o $*.o -c $(ALL_CFLAGS) $< - - iowatcher: blkparse.o plot.o main.o tracers.o mpstat.o fio.o -- $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) -lm -lrt -+ $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) -lm $(LDFLAGS) -lrt - - depend: - @$(CC) -MM $(ALL_CFLAGS) *.c 1> .depend diff --git a/poky/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch b/poky/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch deleted file mode 100644 index 3b0c1c692..000000000 --- a/poky/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch +++ /dev/null @@ -1,197 +0,0 @@ -From 70d5ca2d5f3d6b97c11c641b7e0c5836983219a0 Mon Sep 17 00:00:00 2001 -From: Eric Sandeen -Date: Wed, 28 Mar 2018 15:26:36 -0500 -Subject: [oe-core][PATCH 1/1] make btt scripts python3-ready - -Many distributions are moving to python3 by default. Here's -an attempt to make the python scripts in blktrace python3-ready. - -Most of this was done with automated tools. I hand fixed some -space-vs tab issues, and cast an array index to integer. It -passes rudimentary testing when run under python2.7 as well -as python3. - -This doesn't do anything with the shebangs, it leaves them both -invoking whatever "env python" coughs up on the system. - -Signed-off-by: Eric Sandeen -Signed-off-by: Jens Axboe - -Unchanged except to modify shebangs to use python3 since -oe-core does not support python2 anymore. - -Upstream-Status: Backport [git://git.kernel.dk/blktrace.git commit 70d5ca2d5...] - -Signed-off-by: Joe Slater - ---- - btt/bno_plot.py | 28 +++++++++++++++------------- - btt/btt_plot.py | 22 +++++++++++++--------- - 2 files changed, 28 insertions(+), 22 deletions(-) - ---- git.orig/btt/bno_plot.py -+++ git/btt/bno_plot.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#! /usr/bin/env python3 - # - # btt blkno plotting interface - # -@@ -38,6 +38,8 @@ automatically push the keys under the gr - To exit the plotter, enter 'quit' or ^D at the 'gnuplot> ' prompt. - """ - -+from __future__ import absolute_import -+from __future__ import print_function - import getopt, glob, os, sys, tempfile - - verbose = 0 -@@ -60,14 +62,14 @@ def parse_args(in_args): - - try: - (opts, args) = getopt.getopt(in_args, s_opts, l_opts) -- except getopt.error, msg: -- print >>sys.stderr, msg -- print >>sys.stderr, __doc__ -+ except getopt.error as msg: -+ print(msg, file=sys.stderr) -+ print(__doc__, file=sys.stderr) - sys.exit(1) - - for (o, a) in opts: - if o in ('-h', '--help'): -- print __doc__ -+ print(__doc__) - sys.exit(0) - elif o in ('-v', '--verbose'): - verbose += 1 -@@ -84,10 +86,10 @@ if __name__ == '__main__': - (bnos, keys_below) = parse_args(sys.argv[1:]) - - if verbose: -- print 'Using files:', -- for bno in bnos: print bno, -- if keys_below: print '\nKeys are to be placed below graph' -- else: print '' -+ print('Using files:', end=' ') -+ for bno in bnos: print(bno, end=' ') -+ if keys_below: print('\nKeys are to be placed below graph') -+ else: print('') - - tmpdir = tempfile.mktemp() - os.mkdir(tmpdir) -@@ -99,7 +101,7 @@ if __name__ == '__main__': - fo = open(t, 'w') - for line in open(f, 'r'): - fld = line.split(None) -- print >>fo, fld[0], fld[1], int(fld[2])-int(fld[1]) -+ print(fld[0], fld[1], int(fld[2])-int(fld[1]), file=fo) - fo.close() - - t = t[t.rfind('/')+1:] -@@ -107,16 +109,16 @@ if __name__ == '__main__': - else: plot_cmd = "%s,'%s'" % (plot_cmd, t) - - fo = open('%s/plot.cmds' % tmpdir, 'w') -- print >>fo, cmds -- if len(bnos) > 10 or keys_below: print >>fo, 'set key below' -- print >>fo, plot_cmd -+ print(cmds, file=fo) -+ if len(bnos) > 10 or keys_below: print('set key below', file=fo) -+ print(plot_cmd, file=fo) - fo.close() - - pid = os.fork() - if pid == 0: - cmd = 'gnuplot %s/plot.cmds -' % tmpdir - -- if verbose: print 'Executing %s' % cmd -+ if verbose: print('Executing %s' % cmd) - - os.chdir(tmpdir) - os.system(cmd) ---- git.orig/btt/btt_plot.py -+++ git/btt/btt_plot.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#! /usr/bin/env python3 - # - # btt_plot.py: Generate matplotlib plots for BTT generate data files - # -@@ -55,6 +55,10 @@ Arguments: - but the -o (--output) and -T (--title) options will be ignored. - """ - -+from __future__ import absolute_import -+from __future__ import print_function -+import six -+from six.moves import range - __author__ = 'Alan D. Brunelle ' - - #------------------------------------------------------------------------------ -@@ -82,7 +86,7 @@ get_base = lambda file: file[file.find( - def fatal(msg): - """Generate fatal error message and exit""" - -- print >>sys.stderr, 'FATAL: %s' % msg -+ print('FATAL: %s' % msg, file=sys.stderr) - sys.exit(1) - - #------------------------------------------------------------------------------ -@@ -163,7 +167,7 @@ def get_data(files): - if not os.path.exists(file): - fatal('%s not found' % file) - elif verbose: -- print 'Processing %s' % file -+ print('Processing %s' % file) - - xs = [] - ys = [] -@@ -214,8 +218,8 @@ def parse_args(args): - - try: - (opts, args) = getopt.getopt(args[1:], s_opts, l_opts) -- except getopt.error, msg: -- print >>sys.stderr, msg -+ except getopt.error as msg: -+ print(msg, file=sys.stderr) - fatal(__doc__) - - for (o, a) in opts: -@@ -293,15 +297,15 @@ def generate_output(type, db): - def color(idx, style): - """Returns a color/symbol type based upon the index passed.""" - -- colors = [ 'b', 'g', 'r', 'c', 'm', 'y', 'k' ] -+ colors = [ 'b', 'g', 'r', 'c', 'm', 'y', 'k' ] - l_styles = [ '-', ':', '--', '-.' ] - m_styles = [ 'o', '+', '.', ',', 's', 'v', 'x', '<', '>' ] - - color = colors[idx % len(colors)] - if style == 'line': -- style = l_styles[(idx / len(l_styles)) % len(l_styles)] -+ style = l_styles[int((idx / len(l_styles)) % len(l_styles))] - elif style == 'marker': -- style = m_styles[(idx / len(m_styles)) % len(m_styles)] -+ style = m_styles[int((idx / len(m_styles)) % len(m_styles))] - - return '%s%s' % (color, style) - -@@ -314,7 +318,7 @@ def generate_output(type, db): - ofile = '%s.png' % type - - if verbose: -- print 'Generating plot into %s' % ofile -+ print('Generating plot into %s' % ofile) - - fig = plt.figure(figsize=plot_size) - ax = fig.add_subplot(111) -@@ -329,7 +333,7 @@ def generate_output(type, db): - legends = None - - keys = [] -- for file in db.iterkeys(): -+ for file in six.iterkeys(db): - if not file in ['min_x', 'max_x', 'min_y', 'max_y']: - keys.append(file) - diff --git a/poky/meta/recipes-kernel/blktrace/blktrace_git.bb b/poky/meta/recipes-kernel/blktrace/blktrace_git.bb index 7ccc022b9..d00b1bd0b 100644 --- a/poky/meta/recipes-kernel/blktrace/blktrace_git.bb +++ b/poky/meta/recipes-kernel/blktrace/blktrace_git.bb @@ -10,15 +10,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" DEPENDS = "libaio" -SRCREV = "cca113f2fe0759b91fd6a0e10fdcda2c28f18a7e" +SRCREV = "366d30b9cdb20345c5d064af850d686da79b89eb" -PV = "1.2.0+git${SRCPV}" +PV = "1.3.0+git${SRCPV}" -SRC_URI = "git://git.kernel.dk/blktrace.git \ - file://ldflags.patch \ - file://CVE-2018-10689.patch \ - file://make-btt-scripts-python3-ready.patch \ -" +SRC_URI = "git://git.kernel.dk/blktrace.git" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-kernel/dtc/dtc/0001-fdtdump-Fix-gcc11-warning.patch b/poky/meta/recipes-kernel/dtc/dtc/0001-fdtdump-Fix-gcc11-warning.patch deleted file mode 100644 index ec825cbf7..000000000 --- a/poky/meta/recipes-kernel/dtc/dtc/0001-fdtdump-Fix-gcc11-warning.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4827e0db6c4f7dea7f4094f49d3bb48ef6dfdc2d Mon Sep 17 00:00:00 2001 -From: David Gibson -Date: Wed, 6 Jan 2021 14:52:26 +1100 -Subject: [PATCH] fdtdump: Fix gcc11 warning - -In one place, fdtdump abuses fdt_set_magic(), passing it just a small char -array instead of the full fdt header it expects. That's relying on the -fact that in fact fdt_set_magic() will only actually access the first 4 -bytes of the buffer. - -This trips a new warning in GCC 11 - and it's entirely possible it was -always UB. So, don't do that. - -Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/dtc/dtc.git/patch/?id=ca16a723fa9dde9c5da80dba567f48715000e77c] -Signed-off-by: David Gibson ---- - fdtdump.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fdtdump.c b/fdtdump.c -index 9613bef..d9fb374 100644 ---- a/fdtdump.c -+++ b/fdtdump.c -@@ -217,7 +217,7 @@ int main(int argc, char *argv[]) - char *p = buf; - char *endp = buf + len; - -- fdt_set_magic(smagic, FDT_MAGIC); -+ fdt32_st(smagic, FDT_MAGIC); - - /* poor man's memmem */ - while ((endp - p) >= FDT_MAGIC_SIZE) { --- -2.30.1 - diff --git a/poky/meta/recipes-kernel/dtc/dtc_1.6.0.bb b/poky/meta/recipes-kernel/dtc/dtc_1.6.0.bb deleted file mode 100644 index a40713785..000000000 --- a/poky/meta/recipes-kernel/dtc/dtc_1.6.0.bb +++ /dev/null @@ -1,12 +0,0 @@ -require dtc.inc - -LIC_FILES_CHKSUM = "file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://libfdt/libfdt.h;beginline=4;endline=7;md5=05bb357cfb75cae7d2b01d2ee8d76407" - -SRCREV = "2525da3dba9beceb96651dc2986581871dbeca30" - -SRC_URI += "file://0001-fdtdump-Fix-gcc11-warning.patch" - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb b/poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb new file mode 100644 index 000000000..de9a46d3e --- /dev/null +++ b/poky/meta/recipes-kernel/dtc/dtc_1.6.1.bb @@ -0,0 +1,10 @@ +require dtc.inc + +LIC_FILES_CHKSUM = "file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://libfdt/libfdt.h;beginline=4;endline=7;md5=05bb357cfb75cae7d2b01d2ee8d76407" + +SRCREV = "b6910bec11614980a21e46fbccc35934b671bd81" + +S = "${WORKDIR}/git" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb index 11d8928ad..877e8d294 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "d25690cb34d3b9d67089b318c48b89163058608c" -SRCREV_meta ?= "48a13749dcfa21864b5cdf5f02a1c210a4b6046b" +SRCREV_machine ?= "6186341e981ad4fd3941c7c9af509923bbe2a2a5" +SRCREV_meta ?= "67dad5ca86bd47dbbaa2194b9854c228055dfd37" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.10.41" +LINUX_VERSION ?= "5.10.43" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb index a55d84f2b..432289292 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "c279b45a44858da788a13f23130ed06663e77c57" -SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49" +SRCREV_machine ?= "08b154b1c1f1c85db88295a4169dff6826c2e383" +SRCREV_meta ?= "656383210d369bbd49a7a278c6c7c7313f0df825" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.4.123" +LINUX_VERSION ?= "5.4.125" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb index 8fe019419..b44deb6f3 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.10.41" +LINUX_VERSION ?= "5.10.43" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "c5b462a67540b3364a21999b601d08b837ee95a2" -SRCREV_machine ?= "bb3f40e801fed14f9233749f7eaa27b105979059" -SRCREV_meta ?= "48a13749dcfa21864b5cdf5f02a1c210a4b6046b" +SRCREV_machine_qemuarm ?= "9c63dda7dd5834bf731747d6ae03ae13d48e20e3" +SRCREV_machine ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_meta ?= "67dad5ca86bd47dbbaa2194b9854c228055dfd37" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb index cf8e81e0f..6c93e2b16 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.4.123" +LINUX_VERSION ?= "5.4.125" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "445028ae9ec9a904122bb5c60995def98d2b1ddc" -SRCREV_machine ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be" -SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49" +SRCREV_machine_qemuarm ?= "35f9751972b9fba920b1666228a35e5ce0b04440" +SRCREV_machine ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" +SRCREV_meta ?= "656383210d369bbd49a7a278c6c7c7313f0df825" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb index 24f856603..f99782c1b 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb @@ -13,17 +13,17 @@ KBRANCH_qemux86 ?= "v5.10/standard/base" KBRANCH_qemux86-64 ?= "v5.10/standard/base" KBRANCH_qemumips64 ?= "v5.10/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "d1a5dc63766ef3b2dfc79ac2965af69b33203520" -SRCREV_machine_qemuarm64 ?= "bb3f40e801fed14f9233749f7eaa27b105979059" -SRCREV_machine_qemumips ?= "03dd9a4bb1b030a89f56712c3d724f0219fd16a3" -SRCREV_machine_qemuppc ?= "bb3f40e801fed14f9233749f7eaa27b105979059" -SRCREV_machine_qemuriscv64 ?= "bb3f40e801fed14f9233749f7eaa27b105979059" -SRCREV_machine_qemuriscv32 ?= "bb3f40e801fed14f9233749f7eaa27b105979059" -SRCREV_machine_qemux86 ?= "bb3f40e801fed14f9233749f7eaa27b105979059" -SRCREV_machine_qemux86-64 ?= "bb3f40e801fed14f9233749f7eaa27b105979059" -SRCREV_machine_qemumips64 ?= "9292051c510e6bf1452ead867c8f8050556cfae3" -SRCREV_machine ?= "bb3f40e801fed14f9233749f7eaa27b105979059" -SRCREV_meta ?= "48a13749dcfa21864b5cdf5f02a1c210a4b6046b" +SRCREV_machine_qemuarm ?= "2fc3409cf8c2a6d684929576fd409949060a0bd9" +SRCREV_machine_qemuarm64 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_machine_qemumips ?= "5cec6d1ab35feb99f023b233871cafa29e3c3682" +SRCREV_machine_qemuppc ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_machine_qemuriscv64 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_machine_qemuriscv32 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_machine_qemux86 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_machine_qemux86-64 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_machine_qemumips64 ?= "769a7118662a2256e20df60be9c9727f9c5878b0" +SRCREV_machine ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" +SRCREV_meta ?= "67dad5ca86bd47dbbaa2194b9854c228055dfd37" # remap qemuarm to qemuarma15 for the 5.8 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -32,7 +32,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" -LINUX_VERSION ?= "5.10.41" +LINUX_VERSION ?= "5.10.43" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb index ddd019861..7edab4931 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb @@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base" KBRANCH_qemux86-64 ?= "v5.4/standard/base" KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "c292705386cfec860dad5e1dee74f22407fb7f94" -SRCREV_machine_qemuarm64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be" -SRCREV_machine_qemumips ?= "d4c949dc0b88dba72f9f94a18fd994aa8482ff8e" -SRCREV_machine_qemuppc ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be" -SRCREV_machine_qemuriscv64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be" -SRCREV_machine_qemux86 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be" -SRCREV_machine_qemux86-64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be" -SRCREV_machine_qemumips64 ?= "417e8e4e101314f02439a88c78d4cf2ab98df209" -SRCREV_machine ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be" -SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49" +SRCREV_machine_qemuarm ?= "b523a950c926e2d7475768b504e46fa618a3b891" +SRCREV_machine_qemuarm64 ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" +SRCREV_machine_qemumips ?= "bff59892e827bc85e85fef518305007a787812aa" +SRCREV_machine_qemuppc ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" +SRCREV_machine_qemuriscv64 ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" +SRCREV_machine_qemux86 ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" +SRCREV_machine_qemux86-64 ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" +SRCREV_machine_qemumips64 ?= "e25b97140f5d46ac437cd8a1d9ecc235cbf462b5" +SRCREV_machine ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" +SRCREV_meta ?= "656383210d369bbd49a7a278c6c7c7313f0df825" # remap qemuarm to qemuarma15 for the 5.4 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.4.123" +LINUX_VERSION ?= "5.4.125" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb deleted file mode 100644 index 6132daf1a..000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.3.bb +++ /dev/null @@ -1,174 +0,0 @@ -SECTION = "devel" -SUMMARY = "Linux Trace Toolkit Control" -DESCRIPTION = "The Linux trace toolkit is a suite of tools designed \ -to extract program execution details from the Linux operating system \ -and interpret them." -HOMEPAGE = "https://github.com/lttng/lttng-tools" - -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \ - file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \ - file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95" - -include lttng-platforms.inc - -DEPENDS = "liburcu popt libxml2 util-linux" -RDEPENDS_${PN} = "libgcc" -RRECOMMENDS_${PN} += "${LTTNGMODULES}" -RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core" -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" -RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" -# babelstats.pl wants getopt-long -RDEPENDS_${PN}-ptest += "perl-module-getopt-long" - -PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ - am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ - PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ -" -PACKAGECONFIG ??= "${LTTNGUST}" -PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native" -PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust" -PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod" -PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" - -SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \ - file://0001-tests-do-not-strip-a-helper-library.patch \ - file://run-ptest \ - file://lttng-sessiond.service \ - file://0001-tests-regression-disable-the-tools-live-tests.patch \ - file://determinism.patch \ - " - -SRC_URI[sha256sum] = "2890da230edd523fcf497e9eb28133b7606d64fa01bcbffadbfcba42104db153" - -inherit autotools ptest pkgconfig useradd python3-dir manpages systemd - -SYSTEMD_SERVICE_${PN} = "lttng-sessiond.service" -SYSTEMD_AUTO_ENABLE = "disable" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "tracing" - -FILES_${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \ - ${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" - -# Since files are installed into ${libdir}/lttng/libexec we match -# the libexec insane test so skip it. -# Python module needs to keep _lttng.so -INSANE_SKIP_${PN} = "libexec dev-so" -INSANE_SKIP_${PN}-dbg = "libexec" - -PRIVATE_LIBS_${PN}-ptest = "libfoo.so" - -do_install_append () { - # install systemd unit file - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_unitdir}/system -} - -do_install_ptest () { - for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/*.lttng tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh; do - install -D "${B}/$f" "${D}${PTEST_PATH}/$f" - done - - for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.0.xsd; do - install -D "${S}/$f" "${D}${PTEST_PATH}/$f" - done - - # Prevent 'make check' from recursing into non-test subdirectories. - sed -i -e 's!^SUBDIRS = .*!SUBDIRS = tests!' "${D}${PTEST_PATH}/Makefile" - - # We don't need these - sed -i -e '/dist_noinst_SCRIPTS = /,/^$/d' "${D}${PTEST_PATH}/tests/Makefile" - - # We shouldn't need to build anything in tests/utils - sed -i -e 's!am__append_1 = . utils!am__append_1 = . !' \ - "${D}${PTEST_PATH}/tests/Makefile" - - # Copy the tests directory tree and the executables and - # Makefiles found within. - for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do - install -d "${D}${PTEST_PATH}/tests/$d" - find "${B}/tests/$d" -maxdepth 1 -executable -type f \ - -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + - # Take all .py scripts for tests using the python bindings. - find "${B}/tests/$d" -maxdepth 1 -type f -name "*.py" \ - -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + - test -r "${B}/tests/$d/Makefile" && \ - install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile" - done - - for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do - for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do - cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f - case $f in - *.so) - install -d ${D}${PTEST_PATH}/tests/$d/ - ln -s ../$f ${D}${PTEST_PATH}/tests/$d/$f - # Remove any rpath/runpath to pass QA check. - chrpath --delete ${D}${PTEST_PATH}/tests/$d/$f - ;; - esac - done - done - - chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary - chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libbar.so - chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libfoo.so - - # - # Use the versioned libs of liblttng-ust-dl. - # - ustdl="${D}${PTEST_PATH}/tests/regression/ust/ust-dl/test_ust-dl.py" - if [ -e $ustdl ]; then - sed -i -e 's!:liblttng-ust-dl.so!:liblttng-ust-dl.so.0!' $ustdl - fi - - install ${B}/tests/unit/ini_config/sample.ini ${D}${PTEST_PATH}/tests/unit/ini_config/ - - # We shouldn't need to build anything in tests/regression/tools - sed -i -e 's!^SUBDIRS = tools !SUBDIRS = !' \ - "${D}${PTEST_PATH}/tests/regression/Makefile" - - # Prevent attempts to update Makefiles during test runs, and - # silence "Making check in $SUBDIR" messages. - find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ - sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \ - -e '/echo "Making $$target in $$subdir"; \\/d' \ - -e 's/^srcdir = \(.*\)/srcdir = ./' \ - -e 's/^builddir = \(.*\)/builddir = ./' \ - -e 's/^all-am:.*/all-am:/' \ - {} + - - find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ - touch -r "${B}/Makefile" {} + - - # - # Need to stop generated binaries from rebuilding by removing their source dependencies - # - sed -e 's#\(^test.*OBJECTS.=\)#disable\1#g' \ - -e 's#\(^test.*DEPENDENCIES.=\)#disable\1#g' \ - -e 's#\(^test.*SOURCES.=\)#disable\1#g' \ - -e 's#\(^test.*LDADD.=\)#disable\1#g' \ - -i ${D}${PTEST_PATH}/tests/unit/Makefile - - # Fix hardcoded build path - sed -e 's#TESTAPP_PATH=.*/tests/regression/#TESTAPP_PATH="${PTEST_PATH}/tests/regression/#' \ - -i ${D}${PTEST_PATH}/tests/regression/ust/python-logging/test_python_logging - - # Substitute links to installed binaries. - for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do - exedir="${D}${PTEST_PATH}/src/bin/${prog}" - install -d "$exedir" - case "$prog" in - lttng-consumerd) - ln -s "${libdir}/lttng/libexec/$prog" "$exedir" - ;; - *) - ln -s "${bindir}/$prog" "$exedir" - ;; - esac - done -} diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.4.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.4.bb new file mode 100644 index 000000000..133d7561b --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.4.bb @@ -0,0 +1,177 @@ +SECTION = "devel" +SUMMARY = "Linux Trace Toolkit Control" +DESCRIPTION = "The Linux trace toolkit is a suite of tools designed \ +to extract program execution details from the Linux operating system \ +and interpret them." +HOMEPAGE = "https://github.com/lttng/lttng-tools" + +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \ + file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \ + file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95" + +include lttng-platforms.inc + +DEPENDS = "liburcu popt libxml2 util-linux" +RDEPENDS_${PN} = "libgcc" +RRECOMMENDS_${PN} += "${LTTNGMODULES}" +RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core grep" +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" +RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" +# babelstats.pl wants getopt-long +RDEPENDS_${PN}-ptest += "perl-module-getopt-long" + +PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ + am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ + PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ +" +PACKAGECONFIG ??= "${LTTNGUST}" +PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native" +PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust" +PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod" +PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" + +SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \ + file://0001-tests-do-not-strip-a-helper-library.patch \ + file://run-ptest \ + file://lttng-sessiond.service \ + file://0001-tests-regression-disable-the-tools-live-tests.patch \ + file://determinism.patch \ + " + +SRC_URI[sha256sum] = "d729f8c2373a41194f171aeb0da0a9bb35ac181f31afa7e260786d19a500dea1" + +inherit autotools ptest pkgconfig useradd python3-dir manpages systemd + +SYSTEMD_SERVICE_${PN} = "lttng-sessiond.service" +SYSTEMD_AUTO_ENABLE = "disable" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "tracing" + +FILES_${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \ + ${PYTHON_SITEPACKAGES_DIR}/*" +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" + +# Since files are installed into ${libdir}/lttng/libexec we match +# the libexec insane test so skip it. +# Python module needs to keep _lttng.so +INSANE_SKIP_${PN} = "libexec dev-so" +INSANE_SKIP_${PN}-dbg = "libexec" + +PRIVATE_LIBS_${PN}-ptest = "libfoo.so" + +do_install_append () { + # install systemd unit file + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_unitdir}/system +} + +do_install_ptest () { + for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/*.lttng \ + tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh \ + tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh \ + tests/regression/tools/base-path/*.lttng; do + install -D "${B}/$f" "${D}${PTEST_PATH}/$f" + done + + for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.0.xsd; do + install -D "${S}/$f" "${D}${PTEST_PATH}/$f" + done + + # Prevent 'make check' from recursing into non-test subdirectories. + sed -i -e 's!^SUBDIRS = .*!SUBDIRS = tests!' "${D}${PTEST_PATH}/Makefile" + + # We don't need these + sed -i -e '/dist_noinst_SCRIPTS = /,/^$/d' "${D}${PTEST_PATH}/tests/Makefile" + + # We shouldn't need to build anything in tests/utils + sed -i -e 's!am__append_1 = . utils!am__append_1 = . !' \ + "${D}${PTEST_PATH}/tests/Makefile" + + # Copy the tests directory tree and the executables and + # Makefiles found within. + for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do + install -d "${D}${PTEST_PATH}/tests/$d" + find "${B}/tests/$d" -maxdepth 1 -executable -type f \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + # Take all .py scripts for tests using the python bindings. + find "${B}/tests/$d" -maxdepth 1 -type f -name "*.py" \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + test -r "${B}/tests/$d/Makefile" && \ + install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile" + done + + for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do + for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do + cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f + case $f in + *.so) + install -d ${D}${PTEST_PATH}/tests/$d/ + ln -s ../$f ${D}${PTEST_PATH}/tests/$d/$f + # Remove any rpath/runpath to pass QA check. + chrpath --delete ${D}${PTEST_PATH}/tests/$d/$f + ;; + esac + done + done + + chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary + chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libbar.so + chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libfoo.so + + # + # Use the versioned libs of liblttng-ust-dl. + # + ustdl="${D}${PTEST_PATH}/tests/regression/ust/ust-dl/test_ust-dl.py" + if [ -e $ustdl ]; then + sed -i -e 's!:liblttng-ust-dl.so!:liblttng-ust-dl.so.0!' $ustdl + fi + + install ${B}/tests/unit/ini_config/sample.ini ${D}${PTEST_PATH}/tests/unit/ini_config/ + + # We shouldn't need to build anything in tests/regression/tools + sed -i -e 's!^SUBDIRS = tools !SUBDIRS = !' \ + "${D}${PTEST_PATH}/tests/regression/Makefile" + + # Prevent attempts to update Makefiles during test runs, and + # silence "Making check in $SUBDIR" messages. + find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ + sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \ + -e '/echo "Making $$target in $$subdir"; \\/d' \ + -e 's/^srcdir = \(.*\)/srcdir = ./' \ + -e 's/^builddir = \(.*\)/builddir = ./' \ + -e 's/^all-am:.*/all-am:/' \ + {} + + + find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ + touch -r "${B}/Makefile" {} + + + # + # Need to stop generated binaries from rebuilding by removing their source dependencies + # + sed -e 's#\(^test.*OBJECTS.=\)#disable\1#g' \ + -e 's#\(^test.*DEPENDENCIES.=\)#disable\1#g' \ + -e 's#\(^test.*SOURCES.=\)#disable\1#g' \ + -e 's#\(^test.*LDADD.=\)#disable\1#g' \ + -i ${D}${PTEST_PATH}/tests/unit/Makefile + + # Fix hardcoded build path + sed -e 's#TESTAPP_PATH=.*/tests/regression/#TESTAPP_PATH="${PTEST_PATH}/tests/regression/#' \ + -i ${D}${PTEST_PATH}/tests/regression/ust/python-logging/test_python_logging + + # Substitute links to installed binaries. + for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do + exedir="${D}${PTEST_PATH}/src/bin/${prog}" + install -d "$exedir" + case "$prog" in + lttng-consumerd) + ln -s "${libdir}/lttng/libexec/$prog" "$exedir" + ;; + *) + ln -s "${bindir}/$prog" "$exedir" + ;; + esac + done +} diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb index 2dfd798ef..99808d636 100644 --- a/poky/meta/recipes-kernel/perf/perf.bb +++ b/poky/meta/recipes-kernel/perf/perf.bb @@ -48,7 +48,7 @@ PROVIDES = "virtual/perf" inherit linux-kernel-base kernel-arch manpages # needed for building the tools/perf Python bindings -inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'python3native', '', d)} +inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'python3targetconfig', '', d)} inherit python3-dir export PYTHON_SITEPACKAGES_DIR diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch b/poky/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch deleted file mode 100644 index 98e2988dd..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch +++ /dev/null @@ -1,31 +0,0 @@ -From ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Thu, 22 Oct 2020 20:57:32 +0200 -Subject: [PATCH] dlmisc: the snd_plugin_dir_set / snd_plugin_dir must be - declared even for \!DL_ORIGIN_AVAILABLE - -Fixes: 8580c081c2 ("dlsym: add support for ALSA_PLUGIN_DIR environment variable") -BugLink: https://github.com/alsa-project/alsa-lib/issues/91 -Signed-off-by: Jaroslav Kysela -Upstream-Status: Backport -Signed-off-by: Alexander Kanavin ---- - src/dlmisc.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/dlmisc.c b/src/dlmisc.c -index c9517c55..f20eb593 100644 ---- a/src/dlmisc.c -+++ b/src/dlmisc.c -@@ -42,11 +42,9 @@ - #ifndef PIC - struct snd_dlsym_link *snd_dlsym_start = NULL; - #endif --#ifdef DL_ORIGIN_AVAILABLE - static int snd_plugin_dir_set = 0; - static char *snd_plugin_dir = NULL; - #endif --#endif - - #if defined(DL_ORIGIN_AVAILABLE) && defined(HAVE_LIBPTHREAD) - static pthread_mutex_t snd_dlpath_mutex = PTHREAD_MUTEX_INITIALIZER; diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb deleted file mode 100644 index c49cc2a9b..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "ALSA sound library" -DESCRIPTION = "(Occasionally a.k.a. libasound) is a userspace library that \ -provides a level of abstraction over the /dev interfaces provided by the kernel modules." -HOMEPAGE = "http://www.alsa-project.org" -BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" -SECTION = "libs/multimedia" -LICENSE = "LGPLv2.1 & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ - file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ - " - -SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2 \ - file://ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch" -SRC_URI[sha256sum] = "f7554be1a56cdff468b58fc1c29b95b64864c590038dd309c7a978c7116908f7" - -inherit autotools pkgconfig - -EXTRA_OECONF += " \ - ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ - --disable-python \ -" - -PACKAGES =+ "alsa-server alsa-conf libatopology" - -FILES_alsa-server = "${bindir}/*" -FILES_alsa-conf = "${datadir}/alsa/" -FILES_libatopology = "${libdir}/libatopology.so.*" - -RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf" -RDEPENDS_libatopology_class-target = "alsa-topology-conf" - -# upgrade path -RPROVIDES_${PN} = "libasound" -RREPLACES_${PN} = "libasound" -RCONFLICTS_${PN} = "libasound" - -RPROVIDES_${PN}-dev = "alsa-dev" -RREPLACES_${PN}-dev = "alsa-dev" -RCONFLICTS_${PN}-dev = "alsa-dev" - -RPROVIDES_alsa-conf = "alsa-conf-base" -RREPLACES_alsa-conf = "alsa-conf-base" -RCONFLICTS_alsa-conf = "alsa-conf-base" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.5.1.bb new file mode 100644 index 000000000..151d63c0e --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.5.1.bb @@ -0,0 +1,44 @@ +SUMMARY = "ALSA sound library" +DESCRIPTION = "(Occasionally a.k.a. libasound) is a userspace library that \ +provides a level of abstraction over the /dev interfaces provided by the kernel modules." +HOMEPAGE = "http://www.alsa-project.org" +BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" +SECTION = "libs/multimedia" +LICENSE = "LGPLv2.1 & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ + file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ + " + +SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" +SRC_URI[sha256sum] = "628421d950cecaf234de3f899d520c0a6923313c964ad751ffac081df331438e" + +inherit autotools pkgconfig + +EXTRA_OECONF += " \ + ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ + --disable-python \ +" + +PACKAGES =+ "alsa-server alsa-conf libatopology" + +FILES_alsa-server = "${bindir}/*" +FILES_alsa-conf = "${datadir}/alsa/" +FILES_libatopology = "${libdir}/libatopology.so.*" + +RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf" +RDEPENDS_libatopology_class-target = "alsa-topology-conf" + +# upgrade path +RPROVIDES_${PN} = "libasound" +RREPLACES_${PN} = "libasound" +RCONFLICTS_${PN} = "libasound" + +RPROVIDES_${PN}-dev = "alsa-dev" +RREPLACES_${PN}-dev = "alsa-dev" +RCONFLICTS_${PN}-dev = "alsa-dev" + +RPROVIDES_alsa-conf = "alsa-conf-base" +RREPLACES_alsa-conf = "alsa-conf-base" +RCONFLICTS_alsa-conf = "alsa-conf-base" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb deleted file mode 100644 index 1381896f3..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb +++ /dev/null @@ -1,175 +0,0 @@ -SUMMARY = "ALSA Plugins" -DESCRIPTION = "Used to create virtual devices that can be used like normal \ -hardware devices but cause extra processing of the sound stream to take place. \ -They are used while configuring ALSA in the .asoundrc file." -HOMEPAGE = "http://alsa-project.org" -BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" -SECTION = "multimedia" - -# The primary license of alsa-plugins is LGPLv2.1. -# -# m4/attributes.m4 is licensed under GPLv2+. m4/attributes.m4 is part of the -# build system, and doesn't affect the licensing of the build result. -# -# The samplerate plugin source code is licensed under GPLv2+ to be consistent -# with the libsamplerate license. However, if the licensee has a commercial -# license for libsamplerate, the samplerate plugin may be used under the terms -# of LGPLv2.1 like the rest of the plugins. -LICENSE = "LGPLv2.1 & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ - file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \ - file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \ - " - -SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2" -SRC_URI[md5sum] = "8455e3c6fbc47f62f070afabc14ba575" -SRC_URI[sha256sum] = "1c0f06450c928d711719686c9dbece2d480184f36fab11b8f0534cb7b41e337d" - -DEPENDS += "alsa-lib" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= "\ - samplerate \ - speexdsp \ - ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ -" -PACKAGECONFIG[aaf] = "--enable-aaf,--disable-aaf,avtp" -PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" -PACKAGECONFIG[libav] = "--enable-libav,--disable-libav,libav" -PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin" -PACKAGECONFIG[maemo-resource-manager] = "--enable-maemo-resource-manager,--disable-maemo-resource-manager,dbus" -PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" -PACKAGECONFIG[samplerate] = "--enable-samplerate,--disable-samplerate,libsamplerate0" -PACKAGECONFIG[speexdsp] = "--with-speex=lib,--with-speex=no,speexdsp" - -PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}" - -PACKAGES_DYNAMIC = "^libasound-module-.*" - -# The alsa-plugins package doesn't itself contain anything, it just depends on -# all built plugins. -FILES_${PN} = "" -ALLOW_EMPTY_${PN} = "1" - -do_install_append() { - rm -f ${D}${libdir}/alsa-lib/*.la - - if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then - # We use the example as is. Upstream installs the file under - # /etc, but we move it under /usr/share and add a symlink under - # /etc to be consistent with other installed configuration - # files. - mv ${D}${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf.example ${D}${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf - ln -s ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf ${D}${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf - fi -} - -python populate_packages_prepend() { - plugindir = d.expand('${libdir}/alsa-lib/') - packages = " ".join(do_split_packages(d, plugindir, r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends='')) - d.setVar("RDEPENDS_alsa-plugins", packages) -} - -# Many plugins have a configuration file (plus a symlink in /etc) associated -# with them. We put the plugin and it's configuration usually in the same -# package, but that's problematic when the configuration file is related to -# multiple plugins, as is the case with the pulse, oss and maemo plugins. In -# case of the pulse plugins, we have a separate alsa-plugins-pulseaudio-conf -# package that depends on all the pulse plugins, which ensures that all plugins -# that the configuration references are installed. The oss and maemo -# configuration files, on the other hand, are in the respective pcm plugin -# packages. Therefore it's possible to install the configuration file without -# the ctl plugin that the configuration file references. This is unlikely to -# cause big problems, but some kind of improvement to the packaging could -# probably be done here (at least it would be good to handle the different -# plugins in a consistent way). -FILES_${MLPREFIX}libasound-module-ctl-arcam-av += "\ - ${datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf \ - ${sysconfdir}/alsa/conf.d/50-arcam-av-ctl.conf \ -" -FILES_${MLPREFIX}libasound-module-pcm-a52 += "\ - ${datadir}/alsa/alsa.conf.d/60-a52-encoder.conf \ - ${sysconfdir}/alsa/conf.d/60-a52-encoder.conf \ -" -FILES_${MLPREFIX}libasound-module-pcm-alsa-dsp += "\ - ${datadir}/alsa/alsa.conf.d/98-maemo.conf \ - ${sysconfdir}/alsa/conf.d/98-maemo.conf \ -" -FILES_${MLPREFIX}libasound-module-pcm-jack += "\ - ${datadir}/alsa/alsa.conf.d/50-jack.conf \ - ${sysconfdir}/alsa/conf.d/50-jack.conf \ -" -FILES_${MLPREFIX}libasound-module-pcm-oss += "\ - ${datadir}/alsa/alsa.conf.d/50-oss.conf \ - ${sysconfdir}/alsa/conf.d/50-oss.conf \ -" -FILES_${MLPREFIX}libasound-module-pcm-speex += "\ - ${datadir}/alsa/alsa.conf.d/60-speex.conf \ - ${sysconfdir}/alsa/conf.d/60-speex.conf \ -" -FILES_${MLPREFIX}libasound-module-pcm-upmix += "\ - ${datadir}/alsa/alsa.conf.d/60-upmix.conf \ - ${sysconfdir}/alsa/conf.d/60-upmix.conf \ -" -FILES_${MLPREFIX}libasound-module-pcm-usb-stream += "\ - ${datadir}/alsa/alsa.conf.d/98-usb-stream.conf \ - ${sysconfdir}/alsa/conf.d/98-usb-stream.conf \ -" -FILES_${MLPREFIX}libasound-module-pcm-vdownmix += "\ - ${datadir}/alsa/alsa.conf.d/60-vdownmix.conf \ - ${sysconfdir}/alsa/conf.d/60-vdownmix.conf \ -" -FILES_${MLPREFIX}libasound-module-rate-lavrate += "\ - ${datadir}/alsa/alsa.conf.d/10-rate-lav.conf \ - ${sysconfdir}/alsa/conf.d/10-rate-lav.conf \ -" -FILES_${MLPREFIX}libasound-module-rate-samplerate += "\ - ${datadir}/alsa/alsa.conf.d/10-samplerate.conf \ - ${sysconfdir}/alsa/conf.d/10-samplerate.conf \ -" -FILES_${MLPREFIX}libasound-module-rate-speexrate += "\ - ${datadir}/alsa/alsa.conf.d/10-speexrate.conf \ - ${sysconfdir}/alsa/conf.d/10-speexrate.conf \ -" - -# The rate plugins create some symlinks. For example, the samplerate plugin -# creates these links to the main plugin file: -# -# libasound_module_rate_samplerate_best.so -# libasound_module_rate_samplerate_linear.so -# libasound_module_rate_samplerate_medium.so -# libasound_module_rate_samplerate_order.so -# -# The other rate plugins create similar links. We have to add the links to -# FILES manually, because do_split_packages() skips the links (which is good, -# because we wouldn't want do_split_packages() to create separate packages for -# the symlinks). -# -# The symlinks cause QA errors, because usually it's a bug if a non -# -dev/-dbg/-nativesdk package contains links to .so files, but in this case -# the errors are false positives, so we disable the QA checks. -FILES_${MLPREFIX}libasound-module-rate-lavrate += "${libdir}/alsa-lib/*rate_lavrate_*.so" -FILES_${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so" -FILES_${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so" -INSANE_SKIP_${MLPREFIX}libasound-module-rate-lavrate = "dev-so" -INSANE_SKIP_${MLPREFIX}libasound-module-rate-samplerate = "dev-so" -INSANE_SKIP_${MLPREFIX}libasound-module-rate-speexrate = "dev-so" - -# 50-pulseaudio.conf defines a device named "pulse" that applications can use -# if they explicitly want to use the PulseAudio plugin. -# 99-pulseaudio-default.conf configures the "default" device to use the -# PulseAudio plugin. -FILES_${PN}-pulseaudio-conf += "\ - ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \ - ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \ - ${sysconfdir}/alsa/conf.d/50-pulseaudio.conf \ - ${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf \ -" - -RDEPENDS_${PN}-pulseaudio-conf += "\ - ${MLPREFIX}libasound-module-conf-pulse \ - ${MLPREFIX}libasound-module-ctl-pulse \ - ${MLPREFIX}libasound-module-pcm-pulse \ -" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.5.bb b/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.5.bb new file mode 100644 index 000000000..f940a4bd3 --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.5.bb @@ -0,0 +1,174 @@ +SUMMARY = "ALSA Plugins" +DESCRIPTION = "Used to create virtual devices that can be used like normal \ +hardware devices but cause extra processing of the sound stream to take place. \ +They are used while configuring ALSA in the .asoundrc file." +HOMEPAGE = "http://alsa-project.org" +BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" +SECTION = "multimedia" + +# The primary license of alsa-plugins is LGPLv2.1. +# +# m4/attributes.m4 is licensed under GPLv2+. m4/attributes.m4 is part of the +# build system, and doesn't affect the licensing of the build result. +# +# The samplerate plugin source code is licensed under GPLv2+ to be consistent +# with the libsamplerate license. However, if the licensee has a commercial +# license for libsamplerate, the samplerate plugin may be used under the terms +# of LGPLv2.1 like the rest of the plugins. +LICENSE = "LGPLv2.1 & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ + file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \ + file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \ + " + +SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2" +SRC_URI[sha256sum] = "42eef98433d2c8d11f1deeeb459643619215a75aa5a5bbdd06a794e4c413df20" + +DEPENDS += "alsa-lib" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "\ + samplerate \ + speexdsp \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ +" +PACKAGECONFIG[aaf] = "--enable-aaf,--disable-aaf,avtp" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[libav] = "--enable-libav,--disable-libav,libav" +PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin" +PACKAGECONFIG[maemo-resource-manager] = "--enable-maemo-resource-manager,--disable-maemo-resource-manager,dbus" +PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" +PACKAGECONFIG[samplerate] = "--enable-samplerate,--disable-samplerate,libsamplerate0" +PACKAGECONFIG[speexdsp] = "--with-speex=lib,--with-speex=no,speexdsp" + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}" + +PACKAGES_DYNAMIC = "^libasound-module-.*" + +# The alsa-plugins package doesn't itself contain anything, it just depends on +# all built plugins. +FILES_${PN} = "" +ALLOW_EMPTY_${PN} = "1" + +do_install_append() { + rm -f ${D}${libdir}/alsa-lib/*.la + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then + # We use the example as is. Upstream installs the file under + # /etc, but we move it under /usr/share and add a symlink under + # /etc to be consistent with other installed configuration + # files. + mv ${D}${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf.example ${D}${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf + ln -s ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf ${D}${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf + fi +} + +python populate_packages_prepend() { + plugindir = d.expand('${libdir}/alsa-lib/') + packages = " ".join(do_split_packages(d, plugindir, r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends='')) + d.setVar("RDEPENDS_alsa-plugins", packages) +} + +# Many plugins have a configuration file (plus a symlink in /etc) associated +# with them. We put the plugin and it's configuration usually in the same +# package, but that's problematic when the configuration file is related to +# multiple plugins, as is the case with the pulse, oss and maemo plugins. In +# case of the pulse plugins, we have a separate alsa-plugins-pulseaudio-conf +# package that depends on all the pulse plugins, which ensures that all plugins +# that the configuration references are installed. The oss and maemo +# configuration files, on the other hand, are in the respective pcm plugin +# packages. Therefore it's possible to install the configuration file without +# the ctl plugin that the configuration file references. This is unlikely to +# cause big problems, but some kind of improvement to the packaging could +# probably be done here (at least it would be good to handle the different +# plugins in a consistent way). +FILES_${MLPREFIX}libasound-module-ctl-arcam-av += "\ + ${datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf \ + ${sysconfdir}/alsa/conf.d/50-arcam-av-ctl.conf \ +" +FILES_${MLPREFIX}libasound-module-pcm-a52 += "\ + ${datadir}/alsa/alsa.conf.d/60-a52-encoder.conf \ + ${sysconfdir}/alsa/conf.d/60-a52-encoder.conf \ +" +FILES_${MLPREFIX}libasound-module-pcm-alsa-dsp += "\ + ${datadir}/alsa/alsa.conf.d/98-maemo.conf \ + ${sysconfdir}/alsa/conf.d/98-maemo.conf \ +" +FILES_${MLPREFIX}libasound-module-pcm-jack += "\ + ${datadir}/alsa/alsa.conf.d/50-jack.conf \ + ${sysconfdir}/alsa/conf.d/50-jack.conf \ +" +FILES_${MLPREFIX}libasound-module-pcm-oss += "\ + ${datadir}/alsa/alsa.conf.d/50-oss.conf \ + ${sysconfdir}/alsa/conf.d/50-oss.conf \ +" +FILES_${MLPREFIX}libasound-module-pcm-speex += "\ + ${datadir}/alsa/alsa.conf.d/60-speex.conf \ + ${sysconfdir}/alsa/conf.d/60-speex.conf \ +" +FILES_${MLPREFIX}libasound-module-pcm-upmix += "\ + ${datadir}/alsa/alsa.conf.d/60-upmix.conf \ + ${sysconfdir}/alsa/conf.d/60-upmix.conf \ +" +FILES_${MLPREFIX}libasound-module-pcm-usb-stream += "\ + ${datadir}/alsa/alsa.conf.d/98-usb-stream.conf \ + ${sysconfdir}/alsa/conf.d/98-usb-stream.conf \ +" +FILES_${MLPREFIX}libasound-module-pcm-vdownmix += "\ + ${datadir}/alsa/alsa.conf.d/60-vdownmix.conf \ + ${sysconfdir}/alsa/conf.d/60-vdownmix.conf \ +" +FILES_${MLPREFIX}libasound-module-rate-lavrate += "\ + ${datadir}/alsa/alsa.conf.d/10-rate-lav.conf \ + ${sysconfdir}/alsa/conf.d/10-rate-lav.conf \ +" +FILES_${MLPREFIX}libasound-module-rate-samplerate += "\ + ${datadir}/alsa/alsa.conf.d/10-samplerate.conf \ + ${sysconfdir}/alsa/conf.d/10-samplerate.conf \ +" +FILES_${MLPREFIX}libasound-module-rate-speexrate += "\ + ${datadir}/alsa/alsa.conf.d/10-speexrate.conf \ + ${sysconfdir}/alsa/conf.d/10-speexrate.conf \ +" + +# The rate plugins create some symlinks. For example, the samplerate plugin +# creates these links to the main plugin file: +# +# libasound_module_rate_samplerate_best.so +# libasound_module_rate_samplerate_linear.so +# libasound_module_rate_samplerate_medium.so +# libasound_module_rate_samplerate_order.so +# +# The other rate plugins create similar links. We have to add the links to +# FILES manually, because do_split_packages() skips the links (which is good, +# because we wouldn't want do_split_packages() to create separate packages for +# the symlinks). +# +# The symlinks cause QA errors, because usually it's a bug if a non +# -dev/-dbg/-nativesdk package contains links to .so files, but in this case +# the errors are false positives, so we disable the QA checks. +FILES_${MLPREFIX}libasound-module-rate-lavrate += "${libdir}/alsa-lib/*rate_lavrate_*.so" +FILES_${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so" +FILES_${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so" +INSANE_SKIP_${MLPREFIX}libasound-module-rate-lavrate = "dev-so" +INSANE_SKIP_${MLPREFIX}libasound-module-rate-samplerate = "dev-so" +INSANE_SKIP_${MLPREFIX}libasound-module-rate-speexrate = "dev-so" + +# 50-pulseaudio.conf defines a device named "pulse" that applications can use +# if they explicitly want to use the PulseAudio plugin. +# 99-pulseaudio-default.conf configures the "default" device to use the +# PulseAudio plugin. +FILES_${PN}-pulseaudio-conf += "\ + ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \ + ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \ + ${sysconfdir}/alsa/conf.d/50-pulseaudio.conf \ + ${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf \ +" + +RDEPENDS_${PN}-pulseaudio-conf += "\ + ${MLPREFIX}libasound-module-conf-pulse \ + ${MLPREFIX}libasound-module-ctl-pulse \ + ${MLPREFIX}libasound-module-pcm-pulse \ +" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb deleted file mode 100644 index 0a25d809b..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb +++ /dev/null @@ -1,89 +0,0 @@ -SUMMARY = "Advanced tools for certain ALSA sound card drivers" -DESCRIPTION = "Package containing a number of tools ranging from envy24control \ -which provides complete control over all devices with an envy24 chip, to \ -firmware loaders for pcmcia, USB and the hdsp devices." -HOMEPAGE = "http://www.alsa-project.org" -BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" -SECTION = "console/utils" -LICENSE = "GPLv2 & LGPLv2+" -DEPENDS = "alsa-lib" - -LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://ld10k1/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7 \ - " - -SRC_URI = "https://www.alsa-project.org/files/pub/tools/${BP}.tar.bz2" - -SRC_URI[md5sum] = "4e6187d2c3a8c73a9d75d66a72faed27" -SRC_URI[sha256sum] = "bfd3c7aae1289269605d3da02279159b10e3dabdd31e658cbceaa30170957349" - -inherit autotools-brokensep pkgconfig -# brokensep as as10k1 (and probably more) fail out of tree -CLEANBROKEN = "1" - -# Here we use PACKAGECONFIG options to pick which directories we configure/build. -# Remember on upgrades to check that no new tools have been added. -PACKAGECONFIG ??= "as10k1 hdajacksensetest hda-verb hdsploader ld10k1 mixartloader pcxhrloader \ - sb16_csp seq--sbiload sscape_ctl us428control usx2yloader vxloader \ - ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'hdajackretask', '', d)} \ - " - -PACKAGECONFIG[as10k1] = "" -PACKAGECONFIG[echomixer] = ",,gtk+" -PACKAGECONFIG[envy24control] = ",,gtk+" -PACKAGECONFIG[hda-verb] = "" -PACKAGECONFIG[hdajackretask] = ",,gtk+3" -PACKAGECONFIG[hdajacksensetest] = ",,glib-2.0" -PACKAGECONFIG[hdspconf] = ",,fltk" -PACKAGECONFIG[hdsploader] = "" -PACKAGECONFIG[hdspmixer] = ",,fltk" -PACKAGECONFIG[ld10k1] = "" -PACKAGECONFIG[mixartloader] = "" -PACKAGECONFIG[pcxhrloader] = "" -PACKAGECONFIG[qlo10k1] = ",,qt-x11-free" -PACKAGECONFIG[rmedigicontrol] = ",,gtk+" -PACKAGECONFIG[sb16_csp] = "" -PACKAGECONFIG[seq--sbiload] = "" -PACKAGECONFIG[sscape_ctl] = "" -PACKAGECONFIG[us428control] = "" -PACKAGECONFIG[usx2yloader] = "" -PACKAGECONFIG[vxloader] = "" - -# At the time of writing pyalsa is not packaged for OE, so this is not expected -# to work. -PACKAGECONFIG[hwmixvolume] = ",,,python-core python-pygobject pyalsa" - -python do_configure() { - for subdir in d.getVar("PACKAGECONFIG").split(): - subdir = subdir.replace("--", "/") - bb.note("Configuring %s" % subdir) - dd = d.createCopy() - dd.setVar("S", os.path.join(d.getVar("S"), subdir)) - bb.build.exec_func("autotools_do_configure", dd) -} - -python do_compile() { - for subdir in d.getVar("PACKAGECONFIG").split(): - subdir = subdir.replace("--", "/") - bb.note("Compiling %s" % subdir) - dd = d.createCopy() - dd.setVar("S", os.path.join(d.getVar("S"), subdir)) - bb.build.exec_func("autotools_do_compile", dd) -} - -python do_install() { - for subdir in d.getVar("PACKAGECONFIG").split(): - subdir = subdir.replace("--", "/") - bb.note("Installing %s" % subdir) - dd = d.createCopy() - dd.setVar("S", os.path.join(d.getVar("S"), subdir)) - bb.build.exec_func("autotools_do_install", dd) - - # Just remove bash-needing init script that isn't installed as an init script - try: - os.remove(oe.path.join(d.getVar("D"), d.getVar("sbindir"), "ld10k1d")) - except: - pass -} - -FILES_${PN} += "${datadir}" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-tools_1.2.5.bb b/poky/meta/recipes-multimedia/alsa/alsa-tools_1.2.5.bb new file mode 100644 index 000000000..8f9c77e4f --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-tools_1.2.5.bb @@ -0,0 +1,88 @@ +SUMMARY = "Advanced tools for certain ALSA sound card drivers" +DESCRIPTION = "Package containing a number of tools ranging from envy24control \ +which provides complete control over all devices with an envy24 chip, to \ +firmware loaders for pcmcia, USB and the hdsp devices." +HOMEPAGE = "http://www.alsa-project.org" +BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" +SECTION = "console/utils" +LICENSE = "GPLv2 & LGPLv2+" +DEPENDS = "alsa-lib" + +LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://ld10k1/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7 \ + " + +SRC_URI = "https://www.alsa-project.org/files/pub/tools/${BP}.tar.bz2" + +SRC_URI[sha256sum] = "35a71027a01f4d7de4722e223520e940de68b3c570b6c671691567ae28f9893e" + +inherit autotools-brokensep pkgconfig +# brokensep as as10k1 (and probably more) fail out of tree +CLEANBROKEN = "1" + +# Here we use PACKAGECONFIG options to pick which directories we configure/build. +# Remember on upgrades to check that no new tools have been added. +PACKAGECONFIG ??= "as10k1 hdajacksensetest hda-verb hdsploader ld10k1 mixartloader pcxhrloader \ + sb16_csp seq--sbiload sscape_ctl us428control usx2yloader vxloader \ + ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'hdajackretask', '', d)} \ + " + +PACKAGECONFIG[as10k1] = "" +PACKAGECONFIG[echomixer] = ",,gtk+" +PACKAGECONFIG[envy24control] = ",,gtk+" +PACKAGECONFIG[hda-verb] = "" +PACKAGECONFIG[hdajackretask] = ",,gtk+3" +PACKAGECONFIG[hdajacksensetest] = ",,glib-2.0" +PACKAGECONFIG[hdspconf] = ",,fltk" +PACKAGECONFIG[hdsploader] = "" +PACKAGECONFIG[hdspmixer] = ",,fltk" +PACKAGECONFIG[ld10k1] = "" +PACKAGECONFIG[mixartloader] = "" +PACKAGECONFIG[pcxhrloader] = "" +PACKAGECONFIG[qlo10k1] = ",,qt-x11-free" +PACKAGECONFIG[rmedigicontrol] = ",,gtk+" +PACKAGECONFIG[sb16_csp] = "" +PACKAGECONFIG[seq--sbiload] = "" +PACKAGECONFIG[sscape_ctl] = "" +PACKAGECONFIG[us428control] = "" +PACKAGECONFIG[usx2yloader] = "" +PACKAGECONFIG[vxloader] = "" + +# At the time of writing pyalsa is not packaged for OE, so this is not expected +# to work. +PACKAGECONFIG[hwmixvolume] = ",,,python-core python-pygobject pyalsa" + +python do_configure() { + for subdir in d.getVar("PACKAGECONFIG").split(): + subdir = subdir.replace("--", "/") + bb.note("Configuring %s" % subdir) + dd = d.createCopy() + dd.setVar("S", os.path.join(d.getVar("S"), subdir)) + bb.build.exec_func("autotools_do_configure", dd) +} + +python do_compile() { + for subdir in d.getVar("PACKAGECONFIG").split(): + subdir = subdir.replace("--", "/") + bb.note("Compiling %s" % subdir) + dd = d.createCopy() + dd.setVar("S", os.path.join(d.getVar("S"), subdir)) + bb.build.exec_func("autotools_do_compile", dd) +} + +python do_install() { + for subdir in d.getVar("PACKAGECONFIG").split(): + subdir = subdir.replace("--", "/") + bb.note("Installing %s" % subdir) + dd = d.createCopy() + dd.setVar("S", os.path.join(d.getVar("S"), subdir)) + bb.build.exec_func("autotools_do_install", dd) + + # Just remove bash-needing init script that isn't installed as an init script + try: + os.remove(oe.path.join(d.getVar("D"), d.getVar("sbindir"), "ld10k1d")) + except: + pass +} + +FILES_${PN} += "${datadir}" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb deleted file mode 100644 index 26542fbbb..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "ALSA topology configuration files" -DESCRIPTION = "Provides a method for audio drivers to load their mixers, \ -routing, PCMs and capabilities from user space at runtime without changing \ -any driver source code." -HOMEPAGE = "https://alsa-project.org" -BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" - -SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[sha256sum] = "55e0e6e42eca4cc7656c257af2440cdc65b83689dca49fc60ca0194db079ed07" - -inherit allarch - -do_install() { - install -d "${D}${datadir}/alsa" - cp -r "${S}/topology" "${D}${datadir}/alsa" -} - -PACKAGES = "${PN}" - -FILES_${PN} = "*" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb new file mode 100644 index 000000000..c96826c4b --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb @@ -0,0 +1,23 @@ +SUMMARY = "ALSA topology configuration files" +DESCRIPTION = "Provides a method for audio drivers to load their mixers, \ +routing, PCMs and capabilities from user space at runtime without changing \ +any driver source code." +HOMEPAGE = "https://alsa-project.org" +BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" + +SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" +SRC_URI[sha256sum] = "f7c5bae1545abcd73824bc97f4e72c340e11abea188ba0f1c06f5e0ad776b179" +# Something went wrong at upstream tarballing + +inherit allarch + +do_install() { + install -d "${D}${datadir}/alsa" + cp -r "${S}/topology" "${D}${datadir}/alsa" +} + +PACKAGES = "${PN}" + +FILES_${PN} = "*" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb deleted file mode 100644 index 32cf41c8f..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "ALSA Use Case Manager configuration" -DESCRIPTION = "This package contains ALSA Use Case Manager configuration \ -of audio input/output names and routing for specific audio hardware. \ -They can be used with the alsaucm tool. " -HOMEPAGE = "https://alsa-project.org" -BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" - -SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[sha256sum] = "2c3b535c77dcb9aaf62a61f4f8324f1ab184162f105f7ec9ed1e37c742fcd340" - -inherit allarch - -do_install() { - install -d "${D}${datadir}/alsa" - cp -r "${S}/ucm" "${D}${datadir}/alsa" - cp -r "${S}/ucm2" "${D}${datadir}/alsa" -} - -PACKAGES = "${PN}" - -FILES_${PN} = "*" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.5.1.bb new file mode 100644 index 000000000..4d5f3742f --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.5.1.bb @@ -0,0 +1,24 @@ +SUMMARY = "ALSA Use Case Manager configuration" +DESCRIPTION = "This package contains ALSA Use Case Manager configuration \ +of audio input/output names and routing for specific audio hardware. \ +They can be used with the alsaucm tool. " +HOMEPAGE = "https://alsa-project.org" +BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" + +SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" +SRC_URI[sha256sum] = "5841a444166dcbf479db751303dbc3556f685085ac7e00f0c9e7755676195d97" +# Something went wrong at upstream tarballing + +inherit allarch + +do_install() { + install -d "${D}${datadir}/alsa" + cp -r "${S}/ucm" "${D}${datadir}/alsa" + cp -r "${S}/ucm2" "${D}${datadir}/alsa" +} + +PACKAGES = "${PN}" + +FILES_${PN} = "*" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb deleted file mode 100644 index 048fef68a..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb +++ /dev/null @@ -1,25 +0,0 @@ -require alsa-utils.inc - -SUMMARY = "Shell scripts that show help info and create ALSA configuration files" -PROVIDES = "alsa-utils-alsaconf" - -FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:" - -PACKAGES = "${PN}" -RDEPENDS_${PN} += "bash" - -FILES_${PN} = "${sbindir}/alsaconf \ - ${sbindir}/alsa-info.sh \ - ${sbindir}/alsabat-test.sh \ - " - -S = "${WORKDIR}/alsa-utils-${PV}" - -do_install() { - install -d ${D}${sbindir} - install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/ - install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/ - if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then - install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/ - fi -} diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.5.1.bb new file mode 100644 index 000000000..048fef68a --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.5.1.bb @@ -0,0 +1,25 @@ +require alsa-utils.inc + +SUMMARY = "Shell scripts that show help info and create ALSA configuration files" +PROVIDES = "alsa-utils-alsaconf" + +FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:" + +PACKAGES = "${PN}" +RDEPENDS_${PN} += "bash" + +FILES_${PN} = "${sbindir}/alsaconf \ + ${sbindir}/alsa-info.sh \ + ${sbindir}/alsabat-test.sh \ + " + +S = "${WORKDIR}/alsa-utils-${PV}" + +do_install() { + install -d ${D}${sbindir} + install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/ + install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/ + if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then + install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/ + fi +} diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils.inc b/poky/meta/recipes-multimedia/alsa/alsa-utils.inc index f2e8133d2..733bb2456 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils.inc +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils.inc @@ -24,7 +24,7 @@ PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook # alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2" -SRC_URI[sha256sum] = "98ffc2d599de0577d423a48fa5f20a992ca0b82d812ed1f2e58ade49ac6da426" +SRC_URI[sha256sum] = "9c169ae37a49295f9b97b92ace772803daf6b6510a19574e0b78f87e562118d0" # On build machines with python-docutils (not python3-docutils !!) installed # rst2man (not rst2man.py) is detected and compile fails with diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb deleted file mode 100644 index 3430288da..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb +++ /dev/null @@ -1,2 +0,0 @@ -require alsa-utils.inc - diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.5.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.5.1.bb new file mode 100644 index 000000000..3430288da --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.5.1.bb @@ -0,0 +1,2 @@ +require alsa-utils.inc + diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb index 664fc6066..3ed009bbb 100644 --- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb +++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb @@ -129,6 +129,7 @@ EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r2', '--disable-mi EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r6', '--disable-mips64r2 --disable-mips32r2', '', d)}" EXTRA_OECONF_append_mips = " --extra-libs=-latomic --disable-mips32r5 --disable-mipsdsp --disable-mipsdspr2 \ --disable-loongson2 --disable-loongson3 --disable-mmi --disable-msa --disable-msa2" +EXTRA_OECONF_append_riscv32 = " --extra-libs=-latomic" # gold crashes on x86, another solution is to --disable-asm but thats more hacky # ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 diff --git a/poky/meta/recipes-multimedia/libogg/libogg_1.3.4.bb b/poky/meta/recipes-multimedia/libogg/libogg_1.3.4.bb deleted file mode 100644 index c4004619b..000000000 --- a/poky/meta/recipes-multimedia/libogg/libogg_1.3.4.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Ogg bitstream and framing libary" -DESCRIPTION = "libogg is the bitstream and framing library \ -for the Ogg project. It provides functions which are \ -necessary to codec libraries like libvorbis." -HOMEPAGE = "http://xiph.org/" -BUGTRACKER = "https://trac.xiph.org/newticket" -SECTION = "libs" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ - file://include/ogg/ogg.h;beginline=1;endline=11;md5=eda812856f13a3b1326eb8f020cc3b0b" - -SRC_URI = "http://downloads.xiph.org/releases/ogg/${BP}.tar.xz" - -SRC_URI[md5sum] = "eadef24aad6e3e8379ba0d14971fd64a" -SRC_URI[sha256sum] = "c163bc12bc300c401b6aa35907ac682671ea376f13ae0969a220f7ddf71893fe" - -inherit autotools pkgconfig diff --git a/poky/meta/recipes-multimedia/libogg/libogg_1.3.5.bb b/poky/meta/recipes-multimedia/libogg/libogg_1.3.5.bb new file mode 100644 index 000000000..b4f02e404 --- /dev/null +++ b/poky/meta/recipes-multimedia/libogg/libogg_1.3.5.bb @@ -0,0 +1,17 @@ +SUMMARY = "Ogg bitstream and framing libary" +DESCRIPTION = "libogg is the bitstream and framing library \ +for the Ogg project. It provides functions which are \ +necessary to codec libraries like libvorbis." +HOMEPAGE = "http://xiph.org/" +BUGTRACKER = "https://trac.xiph.org/newticket" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ + file://include/ogg/ogg.h;beginline=1;endline=11;md5=eda812856f13a3b1326eb8f020cc3b0b" + +SRC_URI = "http://downloads.xiph.org/releases/ogg/${BP}.tar.xz" + +SRC_URI[md5sum] = "3178c98341559657a15b185bf5d700a5" +SRC_URI[sha256sum] = "c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705" + +inherit autotools pkgconfig diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.27.2.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.27.2.bb deleted file mode 100644 index 9a91cc89d..000000000 --- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.27.2.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" -DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ -mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ -and also can write the decoded audio to WAV." -HOMEPAGE = "http://mpg123.de/" -BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" -SECTION = "multimedia" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169" - -SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" -SRC_URI[sha256sum] = "52f6ceb962c05db0c043bb27acf5a721381f5f356ac4610e5221f50293891b04" - -UPSTREAM_CHECK_REGEX = "mpg123-(?P\d+(\.\d+)+)\.tar" - -inherit autotools pkgconfig - -# The options should be mutually exclusive for configuration script. -# If both alsa and pulseaudio are specified (as in the default distro features) -# pulseaudio takes precedence. -PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" - -PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" -PACKAGECONFIG[esd] = ",,esound" -PACKAGECONFIG[jack] = ",,jack" -PACKAGECONFIG[openal] = ",,openal-soft" -PACKAGECONFIG[portaudio] = ",,portaudio-v19" -PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" -PACKAGECONFIG[sdl] = ",,libsdl2" - -# Following are possible sound output modules: -# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi -AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" -AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" - -EXTRA_OECONF = " \ - --enable-shared \ - --with-audio='${AUDIOMODS}' \ - ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ - ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ - ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-cpu=generic_nofpu', '', d)} \ -" -# Fails to build with thumb-1 (qemuarm) -#| {standard input}: Assembler messages: -#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' -#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' -#... -#| make[3]: *** [equalizer.lo] Error 1 -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.28.0.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.28.0.bb new file mode 100644 index 000000000..143a59ba6 --- /dev/null +++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.28.0.bb @@ -0,0 +1,52 @@ +SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" +DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ +mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ +and also can write the decoded audio to WAV." +HOMEPAGE = "http://mpg123.de/" +BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169" + +SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" +SRC_URI[sha256sum] = "e49466853685026da5d113dc7ff026b1b2ad0b57d78df693a446add9db88a7d5" + +UPSTREAM_CHECK_REGEX = "mpg123-(?P\d+(\.\d+)+)\.tar" + +inherit autotools pkgconfig + +# The options should be mutually exclusive for configuration script. +# If both alsa and pulseaudio are specified (as in the default distro features) +# pulseaudio takes precedence. +PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" + +PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" +PACKAGECONFIG[esd] = ",,esound" +PACKAGECONFIG[jack] = ",,jack" +PACKAGECONFIG[openal] = ",,openal-soft" +PACKAGECONFIG[portaudio] = ",,portaudio-v19" +PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" +PACKAGECONFIG[sdl] = ",,libsdl2" + +# Following are possible sound output modules: +# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi +AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" + +EXTRA_OECONF = " \ + --enable-shared \ + --with-audio='${AUDIOMODS}' \ + ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ + ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ + ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-cpu=generic_nofpu', '', d)} \ +" +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' +#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' +#... +#| make[3]: *** [equalizer.lo] Error 1 +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/poky/meta/recipes-sato/puzzles/puzzles_git.bb index 69c3faadc..44fa59700 100644 --- a/poky/meta/recipes-sato/puzzles/puzzles_git.bb +++ b/poky/meta/recipes-sato/puzzles/puzzles_git.bb @@ -2,7 +2,7 @@ SUMMARY = "Simon Tatham's Portable Puzzle Collection" DESCRIPTION = "Collection of small computer programs which implement one-player puzzle games." HOMEPAGE = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENCE;md5=93c2525113e094a4a744cf14d4de07e2" +LIC_FILES_CHKSUM = "file://LICENCE;md5=6e7d24cf1c949887ee9447a1e2a4a24c" # gtk support includes a bunch of x11 headers REQUIRED_DISTRO_FEATURES = "x11" @@ -17,7 +17,7 @@ SRC_URI = "git://git.tartarus.org/simon/puzzles.git;branch=main \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "c0da615a933a6676e2c6b957368067ca1bc10abd" +SRCREV = "8f3413c31ffd43c4ebde40894ac1b2f7cdf222c3" PE = "2" PV = "0.0+git${SRCPV}" diff --git a/poky/meta/recipes-sato/webkit/libwpe_1.10.0.bb b/poky/meta/recipes-sato/webkit/libwpe_1.10.0.bb deleted file mode 100644 index d90557e3a..000000000 --- a/poky/meta/recipes-sato/webkit/libwpe_1.10.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "General-purpose library specifically developed for the WPE-flavored port of WebKit." -HOMEPAGE = "https://github.com/WebPlatformForEmbedded/libwpe" -BUGTRACKER = "https://github.com/WebPlatformForEmbedded/libwpe/issues" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=371a616eb4903c6cb79e9893a5f615cc" -DEPENDS = "virtual/egl libxkbcommon" - -# Workaround build issue with RPi userland EGL libraries. -CFLAGS_append_rpi = " ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '-D_GNU_SOURCE', d)}" - -inherit cmake features_check - -REQUIRED_DISTRO_FEATURES = "opengl" - -SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz" -SRC_URI[sha256sum] = "2415e270d45e3595ed4052bc105f733744dc2d3677e12ff4a831e5029841084d" - -# This is a tweak of upstream-version-is-even needed because -# ipstream directory contains tarballs for other components as well. -UPSTREAM_CHECK_REGEX = "libwpe-(?P\d+\.(\d*[02468])+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-sato/webkit/libwpe_1.10.1.bb b/poky/meta/recipes-sato/webkit/libwpe_1.10.1.bb new file mode 100644 index 000000000..4680c1e95 --- /dev/null +++ b/poky/meta/recipes-sato/webkit/libwpe_1.10.1.bb @@ -0,0 +1,21 @@ +SUMMARY = "General-purpose library specifically developed for the WPE-flavored port of WebKit." +HOMEPAGE = "https://github.com/WebPlatformForEmbedded/libwpe" +BUGTRACKER = "https://github.com/WebPlatformForEmbedded/libwpe/issues" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=371a616eb4903c6cb79e9893a5f615cc" +DEPENDS = "virtual/egl libxkbcommon" + +# Workaround build issue with RPi userland EGL libraries. +CFLAGS_append_rpi = " ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '-D_GNU_SOURCE', d)}" + +inherit cmake features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "a327b3ffcf2356dbe8148c1db4bbdc5359d7e7163d177f67551a8393b144adf0" + +# This is a tweak of upstream-version-is-even needed because +# ipstream directory contains tarballs for other components as well. +UPSTREAM_CHECK_REGEX = "libwpe-(?P\d+\.(\d*[02468])+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.10.0.bb b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.10.0.bb new file mode 100644 index 000000000..38a32dad1 --- /dev/null +++ b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.10.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "WPE's backend based on a freedesktop.org stack." +HOMEPAGE = "https://github.com/Igalia/WPEBackend-fdo" +BUGTRACKER = "https://github.com/Igalia/WPEBackend-fdo/issues" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=1f62cef2e3645e3e74eb05fd389d7a66" +DEPENDS = "glib-2.0 libxkbcommon wayland virtual/egl libwpe libepoxy" + +DEPENDS_append_class-target = " wayland-native" + +inherit meson features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "b89dfd3500a4dec711132cd7bff72599e67d56a419d000730e14bb99547509cc" + +# This is a tweak of upstream-version-is-even needed because +# ipstream directory contains tarballs for other components as well. +UPSTREAM_CHECK_REGEX = "wpebackend-fdo-(?P\d+\.(\d*[02468])+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.4.bb b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.4.bb deleted file mode 100644 index 28b2a927a..000000000 --- a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.4.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "WPE's backend based on a freedesktop.org stack." -HOMEPAGE = "https://github.com/Igalia/WPEBackend-fdo" -BUGTRACKER = "https://github.com/Igalia/WPEBackend-fdo/issues" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=1f62cef2e3645e3e74eb05fd389d7a66" -DEPENDS = "glib-2.0 libxkbcommon wayland virtual/egl libwpe libepoxy" - -DEPENDS_append_class-target = " wayland-native" - -inherit meson features_check - -REQUIRED_DISTRO_FEATURES = "opengl" - -SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz" -SRC_URI[sha256sum] = "def59bed5e8cdabb65ffa76ee2eef349fba7b42a75dac80f3da5954b17f4074a" - -# This is a tweak of upstream-version-is-even needed because -# ipstream directory contains tarballs for other components as well. -UPSTREAM_CHECK_REGEX = "wpebackend-fdo-(?P\d+\.(\d*[02468])+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-support/atk/at-spi2-core_2.40.1.bb b/poky/meta/recipes-support/atk/at-spi2-core_2.40.1.bb deleted file mode 100644 index 83e1908ef..000000000 --- a/poky/meta/recipes-support/atk/at-spi2-core_2.40.1.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Assistive Technology Service Provider Interface (dbus core)" - -DESCRIPTION = "It provides a Service Provider Interface for the Assistive Technologies available on the GNOME platform and a library against which applications can be linked." - -HOMEPAGE = "https://wiki.linuxfoundation.org/accessibility/d-bus" -BUGTRACKER = "http://bugzilla.gnome.org/" -LICENSE = "LGPL-2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz" - -SRC_URI[sha256sum] = "9f66e3a4ee42db897af478a826b1366d7011a6d55ddb7e9d4bfeb3300ab23856" - -X11DEPENDS = "virtual/libx11 libxi libxtst" - -DEPENDS = "dbus glib-2.0" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}" - -inherit meson gtk-doc gettext systemd pkgconfig upstream-version-is-even gobject-introspection - -EXTRA_OEMESON = " -Dsystemd_user_dir=${systemd_user_unitdir} \ - -Ddbus_daemon=${bindir}/dbus-daemon \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '-Dx11=yes', '-Dx11=no', d)} \ -" - -GTKDOC_MESON_OPTION = "docs" - -GIR_MESON_OPTION = 'introspection' -GIR_MESON_ENABLE_FLAG = 'yes' -GIR_MESON_DISABLE_FLAG = 'no' - -FILES_${PN} += "${datadir}/dbus-1/services/*.service \ - ${datadir}/dbus-1/accessibility-services/*.service \ - ${datadir}/defaults/at-spi2 \ - ${systemd_user_unitdir}/at-spi-dbus-bus.service \ - " -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/atk/at-spi2-core_2.40.2.bb b/poky/meta/recipes-support/atk/at-spi2-core_2.40.2.bb new file mode 100644 index 000000000..ebd3ed49c --- /dev/null +++ b/poky/meta/recipes-support/atk/at-spi2-core_2.40.2.bb @@ -0,0 +1,39 @@ +SUMMARY = "Assistive Technology Service Provider Interface (dbus core)" + +DESCRIPTION = "It provides a Service Provider Interface for the Assistive Technologies available on the GNOME platform and a library against which applications can be linked." + +HOMEPAGE = "https://wiki.linuxfoundation.org/accessibility/d-bus" +BUGTRACKER = "http://bugzilla.gnome.org/" +LICENSE = "LGPL-2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz" + +SRC_URI[sha256sum] = "44dc17af943b0fd196c61c1e03b6c166960385cae96ccb5e95bdefffb6849f98" + +X11DEPENDS = "virtual/libx11 libxi libxtst" + +DEPENDS = "dbus glib-2.0" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}" + +inherit meson gtk-doc gettext systemd pkgconfig upstream-version-is-even gobject-introspection + +EXTRA_OEMESON = " -Dsystemd_user_dir=${systemd_user_unitdir} \ + -Ddbus_daemon=${bindir}/dbus-daemon \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '-Dx11=yes', '-Dx11=no', d)} \ +" + +GTKDOC_MESON_OPTION = "docs" + +GIR_MESON_OPTION = 'introspection' +GIR_MESON_ENABLE_FLAG = 'yes' +GIR_MESON_DISABLE_FLAG = 'no' + +FILES_${PN} += "${datadir}/dbus-1/services/*.service \ + ${datadir}/dbus-1/accessibility-services/*.service \ + ${datadir}/defaults/at-spi2 \ + ${systemd_user_unitdir}/at-spi-dbus-bus.service \ + " +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/boost/boost/0001-Fixes-wrong-type-for-mutex-in-regex-v5.patch b/poky/meta/recipes-support/boost/boost/0001-Fixes-wrong-type-for-mutex-in-regex-v5.patch new file mode 100644 index 000000000..a8305ff2e --- /dev/null +++ b/poky/meta/recipes-support/boost/boost/0001-Fixes-wrong-type-for-mutex-in-regex-v5.patch @@ -0,0 +1,54 @@ +From 6064875bff2e52ba63f01911eb4deb79259c5e3b Mon Sep 17 00:00:00 2001 +From: Carlos Miguel Ferreira +Date: Thu, 3 Jun 2021 23:10:37 +0100 +Subject: [PATCH] Fixes wrong type for mutex in regex v5 + +With the Boost.Regex to ehader-only library, the declaration +of a mutex that should have been changed from boost::static_mutex +to std::mutex was left behind. This was preventing regex from +being built for older arm platforms [1] + +[1]: https://github.com/openwrt/packages/issues/15725 + +Upstream-Status: Submitted [https://github.com/boostorg/regex/pull/132] + +Signed-off-by: Carlos Miguel Ferreira +Signed-off-by: Mingli Yu +--- + boost/regex/v5/mem_block_cache.hpp | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +diff --git a/boost/regex/v5/mem_block_cache.hpp b/boost/regex/v5/mem_block_cache.hpp +index 0af4eae1..eb3ec776 100644 +--- a/boost/regex/v5/mem_block_cache.hpp ++++ b/boost/regex/v5/mem_block_cache.hpp +@@ -85,10 +85,10 @@ struct mem_block_node + struct mem_block_cache + { + // this member has to be statically initialsed: +- mem_block_node* next; +- unsigned cached_blocks; ++ mem_block_node* next { nullptr }; ++ unsigned cached_blocks { 0 }; + #ifdef BOOST_HAS_THREADS +- boost::static_mutex mut; ++ std::mutex mut; + #endif + + ~mem_block_cache() +@@ -133,11 +133,7 @@ struct mem_block_cache + } + static mem_block_cache& instance() + { +-#ifdef BOOST_HAS_THREADS +- static mem_block_cache block_cache = { 0, 0, BOOST_STATIC_MUTEX_INIT, }; +-#else +- static mem_block_cache block_cache = { 0, 0, }; +-#endif ++ static mem_block_cache block_cache; + return block_cache; + } + }; +-- +2.29.2 + diff --git a/poky/meta/recipes-support/boost/boost_1.76.0.bb b/poky/meta/recipes-support/boost/boost_1.76.0.bb index 23b0ffc67..ae91b1c87 100644 --- a/poky/meta/recipes-support/boost/boost_1.76.0.bb +++ b/poky/meta/recipes-support/boost/boost_1.76.0.bb @@ -7,4 +7,5 @@ SRC_URI += " \ file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \ file://0001-dont-setup-compiler-flags-m32-m64.patch \ file://0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch \ + file://0001-Fixes-wrong-type-for-mutex-in-regex-v5.patch \ " diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_175.bb b/poky/meta/recipes-support/diffoscope/diffoscope_175.bb deleted file mode 100644 index 853f8dd3a..000000000 --- a/poky/meta/recipes-support/diffoscope/diffoscope_175.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "in-depth comparison of files, archives, and directories" -DESCRIPTION = "Tries to get to the bottom of what makes files or directories \ -different. It will recursively unpack archives of many kinds and transform \ -various binary formats into more human-readable form to compare them. \ -It can compare two tarballs, ISO images, or PDF just as easily." -HOMEPAGE = "https://diffoscope.org/" -BUGTRACKER = "https://salsa.debian.org/reproducible-builds/diffoscope/-/issues" -LICENSE = "GPL-3.0+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -PYPI_PACKAGE = "diffoscope" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "b87481752815140e35088647ccdea13297e41a2d72772e842590360b662f7533" - -RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic python3-rpm" - -# Dependencies don't build for musl -COMPATIBLE_HOST_libc-musl = 'null' - -do_install_append_class-native() { - create_wrapper ${D}${bindir}/diffoscope \ - MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \ - RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ - LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \ - RPM_ETCCONFIGDIR=${STAGING_DIR_NATIVE} -} - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_177.bb b/poky/meta/recipes-support/diffoscope/diffoscope_177.bb new file mode 100644 index 000000000..0d9061dda --- /dev/null +++ b/poky/meta/recipes-support/diffoscope/diffoscope_177.bb @@ -0,0 +1,30 @@ +SUMMARY = "in-depth comparison of files, archives, and directories" +DESCRIPTION = "Tries to get to the bottom of what makes files or directories \ +different. It will recursively unpack archives of many kinds and transform \ +various binary formats into more human-readable form to compare them. \ +It can compare two tarballs, ISO images, or PDF just as easily." +HOMEPAGE = "https://diffoscope.org/" +BUGTRACKER = "https://salsa.debian.org/reproducible-builds/diffoscope/-/issues" +LICENSE = "GPL-3.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +PYPI_PACKAGE = "diffoscope" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "8ac0cad150914bab2a53caa3f21876a78b092f3d2a36b9134874cd5c04a26b2e" + +RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic python3-rpm" + +# Dependencies don't build for musl +COMPATIBLE_HOST_libc-musl = 'null' + +do_install_append_class-native() { + create_wrapper ${D}${bindir}/diffoscope \ + MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ + LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \ + RPM_ETCCONFIGDIR=${STAGING_DIR_NATIVE} +} + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/enchant/enchant2_2.2.15.bb b/poky/meta/recipes-support/enchant/enchant2_2.2.15.bb deleted file mode 100644 index ed87f11a8..000000000 --- a/poky/meta/recipes-support/enchant/enchant2_2.2.15.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Enchant Spell checker API Library" -DESCRIPTION = "A library (and command-line program) that wraps a number of \ -different spelling libraries and programs with a consistent interface." -SECTION = "libs" -HOMEPAGE = "https://abiword.github.io/enchant/" -BUGTRACKER = "https://github.com/AbiWord/enchant/issues/" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS = "glib-2.0" - -inherit autotools pkgconfig - -SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz" -SRC_URI[sha256sum] = "3b0f2215578115f28e2a6aa549b35128600394304bd79d6f28b0d3b3d6f46c03" - -UPSTREAM_CHECK_URI = "https://github.com/AbiWord/enchant/releases" - -S = "${WORKDIR}/enchant-${PV}" - -EXTRA_OEMAKE = "pkgdatadir=${datadir}/enchant-2" - -PACKAGECONFIG ??= "aspell" -PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell" -PACKAGECONFIG[hunspell] = "--with-hunspell,--without-hunspell,hunspell,hunspell" - -FILES_${PN} += " \ - ${datadir}/enchant-2 \ - ${libdir}/enchant-2 \ -" -FILES_${PN}-staticdev += "${libdir}/enchant-2/*.a" diff --git a/poky/meta/recipes-support/enchant/enchant2_2.3.0.bb b/poky/meta/recipes-support/enchant/enchant2_2.3.0.bb new file mode 100644 index 000000000..5d0f10d0b --- /dev/null +++ b/poky/meta/recipes-support/enchant/enchant2_2.3.0.bb @@ -0,0 +1,31 @@ +SUMMARY = "Enchant Spell checker API Library" +DESCRIPTION = "A library (and command-line program) that wraps a number of \ +different spelling libraries and programs with a consistent interface." +SECTION = "libs" +HOMEPAGE = "https://abiword.github.io/enchant/" +BUGTRACKER = "https://github.com/AbiWord/enchant/issues/" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "glib-2.0" + +inherit autotools pkgconfig + +SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz" +SRC_URI[sha256sum] = "df68063b6c13b245fa7246b0e098a03e74f7a91c6d8947bc5c4f42ce55e2e41d" + +UPSTREAM_CHECK_URI = "https://github.com/AbiWord/enchant/releases" + +S = "${WORKDIR}/enchant-${PV}" + +EXTRA_OEMAKE = "pkgdatadir=${datadir}/enchant-2" + +PACKAGECONFIG ??= "aspell" +PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell" +PACKAGECONFIG[hunspell] = "--with-hunspell,--without-hunspell,hunspell,hunspell" + +FILES_${PN} += " \ + ${datadir}/enchant-2 \ + ${libdir}/enchant-2 \ +" +FILES_${PN}-staticdev += "${libdir}/enchant-2/*.a" diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb b/poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb deleted file mode 100644 index 350d0a018..000000000 --- a/poky/meta/recipes-support/gnutls/gnutls_3.7.1.bb +++ /dev/null @@ -1,69 +0,0 @@ -SUMMARY = "GNU Transport Layer Security Library" -DESCRIPTION = "a secure communications library implementing the SSL, \ -TLS and DTLS protocols and technologies around them." -HOMEPAGE = "https://gnutls.org/" -BUGTRACKER = "https://savannah.gnu.org/support/?group=gnutls" - -LICENSE = "GPLv3+ & LGPLv2.1+" -LICENSE_${PN} = "LGPLv2.1+" -LICENSE_${PN}-xx = "LGPLv2.1+" -LICENSE_${PN}-bin = "GPLv3+" -LICENSE_${PN}-openssl = "GPLv3+" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \ - file://doc/COPYING;md5=c678957b0c8e964aa6c70fd77641a71e \ - file://doc/COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343" - -DEPENDS = "nettle gmp virtual/libiconv libunistring" -DEPENDS_append_libc-musl = " argp-standalone" - -SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" - -SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \ - file://arm_eabi.patch \ - " - -SRC_URI[sha256sum] = "3777d7963eca5e06eb315686163b7b3f5045e2baac5e54e038ace9835e5cac6f" - -inherit autotools texinfo pkgconfig gettext lib_package gtk-doc - -PACKAGECONFIG ??= "libidn ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)}" - -# You must also have CONFIG_SECCOMP enabled in the kernel for -# seccomp to work. -PACKAGECONFIG[seccomp] = "--with-libseccomp-prefix=${STAGING_EXECPREFIXDIR},ac_cv_libseccomp=no,libseccomp" -PACKAGECONFIG[libidn] = "--with-idn,--without-idn,libidn2" -PACKAGECONFIG[libtasn1] = "--with-included-libtasn1=no,--with-included-libtasn1,libtasn1" -PACKAGECONFIG[p11-kit] = "--with-p11-kit,--without-p11-kit,p11-kit" -PACKAGECONFIG[tpm] = "--with-tpm,--without-tpm,trousers" - -EXTRA_OECONF = " \ - --enable-doc \ - --disable-libdane \ - --disable-guile \ - --disable-rpath \ - --enable-local-libopts \ - --enable-openssl-compatibility \ - --with-libpthread-prefix=${STAGING_DIR_HOST}${prefix} \ - --with-librt-prefix=${STAGING_DIR_HOST}${prefix} \ - --with-default-trust-store-file=${sysconfdir}/ssl/certs/ca-certificates.crt \ -" - -# Otherwise the tools try and use HOSTTOOLS_DIR/bash as a shell. -export POSIX_SHELL="${base_bindir}/sh" - -LDFLAGS_append_libc-musl = " -largp" - -do_configure_prepend() { - for dir in . lib; do - rm -f ${dir}/aclocal.m4 ${dir}/m4/libtool.m4 ${dir}/m4/lt*.m4 - done -} - -PACKAGES =+ "${PN}-openssl ${PN}-xx" - -FILES_${PN}-dev += "${bindir}/gnutls-cli-debug" -FILES_${PN}-openssl = "${libdir}/libgnutls-openssl.so.*" -FILES_${PN}-xx = "${libdir}/libgnutlsxx.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.7.2.bb b/poky/meta/recipes-support/gnutls/gnutls_3.7.2.bb new file mode 100644 index 000000000..430d1f2d7 --- /dev/null +++ b/poky/meta/recipes-support/gnutls/gnutls_3.7.2.bb @@ -0,0 +1,69 @@ +SUMMARY = "GNU Transport Layer Security Library" +DESCRIPTION = "a secure communications library implementing the SSL, \ +TLS and DTLS protocols and technologies around them." +HOMEPAGE = "https://gnutls.org/" +BUGTRACKER = "https://savannah.gnu.org/support/?group=gnutls" + +LICENSE = "GPLv3+ & LGPLv2.1+" +LICENSE_${PN} = "LGPLv2.1+" +LICENSE_${PN}-xx = "LGPLv2.1+" +LICENSE_${PN}-bin = "GPLv3+" +LICENSE_${PN}-openssl = "GPLv3+" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \ + file://doc/COPYING;md5=c678957b0c8e964aa6c70fd77641a71e \ + file://doc/COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343" + +DEPENDS = "nettle gmp virtual/libiconv libunistring" +DEPENDS_append_libc-musl = " argp-standalone" + +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" + +SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \ + file://arm_eabi.patch \ + " + +SRC_URI[sha256sum] = "646e6c5a9a185faa4cea796d378a1ba8e1148dbb197ca6605f95986a25af2752" + +inherit autotools texinfo pkgconfig gettext lib_package gtk-doc + +PACKAGECONFIG ??= "libidn ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)}" + +# You must also have CONFIG_SECCOMP enabled in the kernel for +# seccomp to work. +PACKAGECONFIG[seccomp] = "--with-libseccomp-prefix=${STAGING_EXECPREFIXDIR},ac_cv_libseccomp=no,libseccomp" +PACKAGECONFIG[libidn] = "--with-idn,--without-idn,libidn2" +PACKAGECONFIG[libtasn1] = "--with-included-libtasn1=no,--with-included-libtasn1,libtasn1" +PACKAGECONFIG[p11-kit] = "--with-p11-kit,--without-p11-kit,p11-kit" +PACKAGECONFIG[tpm] = "--with-tpm,--without-tpm,trousers" + +EXTRA_OECONF = " \ + --enable-doc \ + --disable-libdane \ + --disable-guile \ + --disable-rpath \ + --enable-local-libopts \ + --enable-openssl-compatibility \ + --with-libpthread-prefix=${STAGING_DIR_HOST}${prefix} \ + --with-librt-prefix=${STAGING_DIR_HOST}${prefix} \ + --with-default-trust-store-file=${sysconfdir}/ssl/certs/ca-certificates.crt \ +" + +# Otherwise the tools try and use HOSTTOOLS_DIR/bash as a shell. +export POSIX_SHELL="${base_bindir}/sh" + +LDFLAGS_append_libc-musl = " -largp" + +do_configure_prepend() { + for dir in . lib; do + rm -f ${dir}/aclocal.m4 ${dir}/m4/libtool.m4 ${dir}/m4/lt*.m4 + done +} + +PACKAGES =+ "${PN}-openssl ${PN}-xx" + +FILES_${PN}-dev += "${bindir}/gnutls-cli-debug" +FILES_${PN}-openssl = "${libdir}/libgnutls-openssl.so.*" +FILES_${PN}-xx = "${libdir}/libgnutlsxx.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch b/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch index d2653afb7..414e45a6f 100644 --- a/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch +++ b/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch @@ -1,4 +1,4 @@ -From 6aa15fe548e5b1d6ca3b373779beb7521ea95ba9 Mon Sep 17 00:00:00 2001 +From 897900f3f9084c5542097851323bba3f2691df20 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 15 Jan 2020 17:16:28 +0100 Subject: [PATCH] tests: do not statically link a test @@ -7,26 +7,27 @@ This fails on e.g. centos 7 Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + --- progs/Makefile | 2 +- tests/Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/progs/Makefile b/progs/Makefile -index 1d7fc7a..37db8f7 100644 +index 289186e..071a285 100644 --- a/progs/Makefile +++ b/progs/Makefile -@@ -42,7 +42,7 @@ endif - test: $(PROGS) +@@ -49,7 +49,7 @@ capsh: capsh.c capshdoc.h.cf $(DEPS) + $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) - tcapsh-static: capsh.c $(DEPS) + tcapsh-static: capsh.c capshdoc.h.cf $(DEPS) - $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) --static + $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) sudotest: test tcapsh-static sudo $(LDPATH) ./quicktest.sh diff --git a/tests/Makefile b/tests/Makefile -index 01f7589..094ec57 100644 +index 4a5f2f9..4266d86 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -22,7 +22,7 @@ ifeq ($(PTHREADS),yes) @@ -38,7 +39,7 @@ index 01f7589..094ec57 100644 DEPS=../libcap/libcap.a ifeq ($(PTHREADS),yes) DEPS += ../libcap/libpsx.a -@@ -106,7 +106,7 @@ noexploit: exploit.o $(DEPS) +@@ -113,7 +113,7 @@ noexploit: exploit.o $(DEPS) # This one runs in a chroot with no shared library files. noop: noop.c @@ -46,7 +47,4 @@ index 01f7589..094ec57 100644 + $(CC) $(CFLAGS) $< -o $@ clean: - rm -f psx_test libcap_psx_test libcap_launch_test *~ --- -2.17.1 - + rm -f psx_test libcap_psx_test libcap_launch_test uns_test *~ diff --git a/poky/meta/recipes-support/libcap/libcap_2.49.bb b/poky/meta/recipes-support/libcap/libcap_2.49.bb deleted file mode 100644 index eb9fc5b4b..000000000 --- a/poky/meta/recipes-support/libcap/libcap_2.49.bb +++ /dev/null @@ -1,73 +0,0 @@ -SUMMARY = "Library for getting/setting POSIX.1e capabilities" -DESCRIPTION = "A library providing the API to access POSIX capabilities. \ -These allow giving various kinds of specific privileges to individual \ -users, without giving them full root permissions." -HOMEPAGE = "http://sites.google.com/site/fullycapable/" -# no specific GPL version required -LICENSE = "BSD | GPLv2" -LIC_FILES_CHKSUM = "file://License;md5=e2370ba375efe9e1a095c26d37e483b8" - -DEPENDS = "hostperl-runtime-native gperf-native" - -SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \ - file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \ - file://0002-tests-do-not-run-target-executables.patch \ - file://0001-tests-do-not-statically-link-a-test.patch \ - " -SRC_URI[sha256sum] = "e98bc4d93645082ec787730b0fd1a712b38882465c505777de17c338831ee181" - -UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" - -inherit lib_package - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" -PACKAGECONFIG_class-native ??= "" - -PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam" - -EXTRA_OEMAKE = " \ - INDENT= \ - lib='${baselib}' \ - RAISE_SETFCAP=no \ - DYNAMIC=yes \ - BUILD_GPERF=yes \ -" - -EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}" - -do_compile() { - unset CFLAGS BUILD_CFLAGS - oe_runmake \ - ${PACKAGECONFIG_CONFARGS} \ - AR="${AR}" \ - CC="${CC}" \ - RANLIB="${RANLIB}" \ - COPTS="${CFLAGS}" \ - BUILD_COPTS="${BUILD_CFLAGS}" -} - -do_install() { - oe_runmake install \ - ${PACKAGECONFIG_CONFARGS} \ - DESTDIR="${D}" \ - prefix="${prefix}" \ - SBINDIR="${sbindir}" -} - -do_install_append() { - # Move the library to base_libdir - install -d ${D}${base_libdir} - if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then - mv ${D}${libdir}/libcap* ${D}${base_libdir} - if [ -d ${D}${libdir}/security ]; then - mv ${D}${libdir}/security ${D}${base_libdir} - fi - fi -} - -FILES_${PN}-dev += "${base_libdir}/*.so" - -# pam files -FILES_${PN} += "${base_libdir}/security/*.so" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libcap/libcap_2.50.bb b/poky/meta/recipes-support/libcap/libcap_2.50.bb new file mode 100644 index 000000000..15137f0ac --- /dev/null +++ b/poky/meta/recipes-support/libcap/libcap_2.50.bb @@ -0,0 +1,73 @@ +SUMMARY = "Library for getting/setting POSIX.1e capabilities" +DESCRIPTION = "A library providing the API to access POSIX capabilities. \ +These allow giving various kinds of specific privileges to individual \ +users, without giving them full root permissions." +HOMEPAGE = "http://sites.google.com/site/fullycapable/" +# no specific GPL version required +LICENSE = "BSD | GPLv2" +LIC_FILES_CHKSUM = "file://License;md5=e2370ba375efe9e1a095c26d37e483b8" + +DEPENDS = "hostperl-runtime-native gperf-native" + +SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \ + file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \ + file://0002-tests-do-not-run-target-executables.patch \ + file://0001-tests-do-not-statically-link-a-test.patch \ + " +SRC_URI[sha256sum] = "47a57b8bd238b84c93c921a9b4ff82337551dbcb0cca071316aadf3e23b19261" + +UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" + +inherit lib_package + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" +PACKAGECONFIG_class-native ??= "" + +PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam" + +EXTRA_OEMAKE = " \ + INDENT= \ + lib='${baselib}' \ + RAISE_SETFCAP=no \ + DYNAMIC=yes \ + BUILD_GPERF=yes \ +" + +EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}" + +do_compile() { + unset CFLAGS BUILD_CFLAGS + oe_runmake \ + ${PACKAGECONFIG_CONFARGS} \ + AR="${AR}" \ + CC="${CC}" \ + RANLIB="${RANLIB}" \ + COPTS="${CFLAGS}" \ + BUILD_COPTS="${BUILD_CFLAGS}" +} + +do_install() { + oe_runmake install \ + ${PACKAGECONFIG_CONFARGS} \ + DESTDIR="${D}" \ + prefix="${prefix}" \ + SBINDIR="${sbindir}" +} + +do_install_append() { + # Move the library to base_libdir + install -d ${D}${base_libdir} + if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then + mv ${D}${libdir}/libcap* ${D}${base_libdir} + if [ -d ${D}${libdir}/security ]; then + mv ${D}${libdir}/security ${D}${base_libdir} + fi + fi +} + +FILES_${PN}-dev += "${base_libdir}/*.so" + +# pam files +FILES_${PN} += "${base_libdir}/security/*.so" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.9.2.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.9.2.bb deleted file mode 100644 index 34735ea5d..000000000 --- a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.9.2.bb +++ /dev/null @@ -1,61 +0,0 @@ -SUMMARY = "General purpose cryptographic library based on the code from GnuPG" -DESCRIPTION = "A cryptography library developed as a separated module of GnuPG. \ -It can also be used independently of GnuPG, but depends on its error-reporting \ -library Libgpg-error." -HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/" -BUGTRACKER = "https://bugs.g10code.com/gnupg/index" -SECTION = "libs" - -# helper program gcryptrnd and getrandom are under GPL, rest LGPL -LICENSE = "GPLv2+ & LGPLv2.1+ & GPLv3+" -LICENSE_${PN} = "LGPLv2.1+" -LICENSE_${PN}-dev = "GPLv2+ & LGPLv2.1+" -LICENSE_dumpsexp-dev = "GPLv3+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \ - file://LICENSES;md5=2dae15d91a37cfde72fe9eae75f8ea14 \ - " - -DEPENDS = "libgpg-error" - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ - file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \ - file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \ - file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ - file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ - file://0001-Makefile.am-add-a-missing-space.patch \ - " -SRC_URI[sha256sum] = "b2c10d091513b271e47177274607b1ffba3d95b188bbfa8797f948aec9053c5a" - -# Below whitelisted CVEs are disputed and not affecting crypto libraries for any distro. -CVE_CHECK_WHITELIST += "CVE-2018-12433 CVE-2018-12438" - -BINCONFIG = "${bindir}/libgcrypt-config" - -inherit autotools texinfo binconfig-disabled pkgconfig - -EXTRA_OECONF = "--disable-asm" -EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" - -PACKAGECONFIG ??= "capabilities" -PACKAGECONFIG[capabilities] = "--with-capabilities,--without-capabilities,libcap" - -do_configure_prepend () { - # Else this could be used in preference to the one in aclocal-copy - rm -f ${S}/m4/gpg-error.m4 -} - -# libgcrypt.pc is added locally and thus installed here -do_install_append() { - install -d ${D}/${libdir}/pkgconfig - install -m 0644 ${B}/src/libgcrypt.pc ${D}/${libdir}/pkgconfig/ -} - -PACKAGES =+ "dumpsexp-dev" - -FILES_${PN}-dev += "${bindir}/hmac256" -FILES_dumpsexp-dev += "${bindir}/dumpsexp" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.9.3.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.9.3.bb new file mode 100644 index 000000000..fd3d8e09f --- /dev/null +++ b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.9.3.bb @@ -0,0 +1,61 @@ +SUMMARY = "General purpose cryptographic library based on the code from GnuPG" +DESCRIPTION = "A cryptography library developed as a separated module of GnuPG. \ +It can also be used independently of GnuPG, but depends on its error-reporting \ +library Libgpg-error." +HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/" +BUGTRACKER = "https://bugs.g10code.com/gnupg/index" +SECTION = "libs" + +# helper program gcryptrnd and getrandom are under GPL, rest LGPL +LICENSE = "GPLv2+ & LGPLv2.1+ & GPLv3+" +LICENSE_${PN} = "LGPLv2.1+" +LICENSE_${PN}-dev = "GPLv2+ & LGPLv2.1+" +LICENSE_dumpsexp-dev = "GPLv3+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \ + file://LICENSES;md5=42fa35a25e138166cc40588387f9159d \ + " + +DEPENDS = "libgpg-error" + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ + file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \ + file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \ + file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ + file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ + file://0001-Makefile.am-add-a-missing-space.patch \ + " +SRC_URI[sha256sum] = "97ebe4f94e2f7e35b752194ce15a0f3c66324e0ff6af26659bbfb5ff2ec328fd" + +# Below whitelisted CVEs are disputed and not affecting crypto libraries for any distro. +CVE_CHECK_WHITELIST += "CVE-2018-12433 CVE-2018-12438" + +BINCONFIG = "${bindir}/libgcrypt-config" + +inherit autotools texinfo binconfig-disabled pkgconfig + +EXTRA_OECONF = "--disable-asm" +EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" + +PACKAGECONFIG ??= "capabilities" +PACKAGECONFIG[capabilities] = "--with-capabilities,--without-capabilities,libcap" + +do_configure_prepend () { + # Else this could be used in preference to the one in aclocal-copy + rm -f ${S}/m4/gpg-error.m4 +} + +# libgcrypt.pc is added locally and thus installed here +do_install_append() { + install -d ${D}/${libdir}/pkgconfig + install -m 0644 ${B}/src/libgcrypt.pc ${D}/${libdir}/pkgconfig/ +} + +PACKAGES =+ "dumpsexp-dev" + +FILES_${PN}-dev += "${bindir}/hmac256" +FILES_dumpsexp-dev += "${bindir}/dumpsexp" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libksba/libksba_1.5.1.bb b/poky/meta/recipes-support/libksba/libksba_1.5.1.bb deleted file mode 100644 index aa296c6b9..000000000 --- a/poky/meta/recipes-support/libksba/libksba_1.5.1.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Easy API to create and parse X.509 and CMS related objects" -DESCRIPTION = "A library to make the tasks of working with X.509 certificates, \ -CMS data and related objects more easy. It provides a highlevel interface to \ -the implemented protocols and presents the data in a consistent way. The \ -library does not rely on another cryptographic library but provides \ -hooks for easy integration with Libgcrypt. " -HOMEPAGE = "http://www.gnupg.org/related_software/libksba/" -LICENSE = "GPLv3+ & (GPLv2+ | LGPLv3+)" -LICENSE_${PN} = "GPLv2+ | LGPLv3+" -LICENSE_${PN}-doc = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=fd541d83f75d038c4e0617b672ed8bda \ - file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.GPLv3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \ - file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ - " - -DEPENDS = "libgpg-error" - -BINCONFIG = "${bindir}/ksba-config" - -inherit autotools binconfig-disabled pkgconfig texinfo - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://ksba-add-pkgconfig-support.patch" - -SRC_URI[sha256sum] = "b0f4c65e4e447d9a2349f6b8c0e77a28be9531e4548ba02c545d1f46dc7bf921" - -do_configure_prepend () { - # Else these could be used in preference to those in aclocal-copy - rm -f ${S}/m4/gpg-error.m4 -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libksba/libksba_1.6.0.bb b/poky/meta/recipes-support/libksba/libksba_1.6.0.bb new file mode 100644 index 000000000..552007d6c --- /dev/null +++ b/poky/meta/recipes-support/libksba/libksba_1.6.0.bb @@ -0,0 +1,34 @@ +SUMMARY = "Easy API to create and parse X.509 and CMS related objects" +DESCRIPTION = "A library to make the tasks of working with X.509 certificates, \ +CMS data and related objects more easy. It provides a highlevel interface to \ +the implemented protocols and presents the data in a consistent way. The \ +library does not rely on another cryptographic library but provides \ +hooks for easy integration with Libgcrypt. " +HOMEPAGE = "http://www.gnupg.org/related_software/libksba/" +LICENSE = "GPLv3+ & (GPLv2+ | LGPLv3+)" +LICENSE_${PN} = "GPLv2+ | LGPLv3+" +LICENSE_${PN}-doc = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=fd541d83f75d038c4e0617b672ed8bda \ + file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.GPLv3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \ + file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + " + +DEPENDS = "libgpg-error" + +BINCONFIG = "${bindir}/ksba-config" + +inherit autotools binconfig-disabled pkgconfig texinfo + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://ksba-add-pkgconfig-support.patch" + +SRC_URI[sha256sum] = "dad683e6f2d915d880aa4bed5cea9a115690b8935b78a1bbe01669189307a48b" + +do_configure_prepend () { + # Else these could be used in preference to those in aclocal-copy + rm -f ${S}/m4/gpg-error.m4 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/liburcu/liburcu_0.12.2.bb b/poky/meta/recipes-support/liburcu/liburcu_0.12.2.bb deleted file mode 100644 index b493e939c..000000000 --- a/poky/meta/recipes-support/liburcu/liburcu_0.12.2.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Userspace RCU (read-copy-update) library" -DESCRIPTION = "A userspace RCU (read-copy-update) library. This data \ -synchronization library provides read-side access which scales linearly \ -with the number of cores. " -HOMEPAGE = "http://lttng.org/urcu" -BUGTRACKER = "http://lttng.org/project/issues" - -LICENSE = "LGPLv2.1+ & MIT-style" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \ - file://include/urcu/urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \ - file://include/urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b" - -SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2" - -SRC_URI[md5sum] = "d94347df78e3f1aa744745eb85787df5" -SRC_URI[sha256sum] = "4eefc11e4f6c212fc7d84d871e1cc139da0669a46ff3fda557a6fdd4d74ca67b" - -S = "${WORKDIR}/userspace-rcu-${PV}" -inherit autotools multilib_header - -CPPFLAGS_append_riscv64 = " -pthread -D_REENTRANT" - -do_install_append() { - oe_multilib_header urcu/config.h -} diff --git a/poky/meta/recipes-support/liburcu/liburcu_0.13.0.bb b/poky/meta/recipes-support/liburcu/liburcu_0.13.0.bb new file mode 100644 index 000000000..c9fef8978 --- /dev/null +++ b/poky/meta/recipes-support/liburcu/liburcu_0.13.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "Userspace RCU (read-copy-update) library" +DESCRIPTION = "A userspace RCU (read-copy-update) library. This data \ +synchronization library provides read-side access which scales linearly \ +with the number of cores. " +HOMEPAGE = "http://lttng.org/urcu" +BUGTRACKER = "http://lttng.org/project/issues" + +LICENSE = "LGPLv2.1+ & MIT-style" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \ + file://include/urcu/urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \ + file://include/urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b" + +SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2" + +SRC_URI[md5sum] = "8cb75dbb05774c03e66c63cb3186dd59" +SRC_URI[sha256sum] = "cbb20dbe1a892c2a4d8898bac4316176e585392693d498766ccbbc68cf20ba20" + +S = "${WORKDIR}/userspace-rcu-${PV}" +inherit autotools multilib_header + +CPPFLAGS_append_riscv64 = " -pthread -D_REENTRANT" + +do_install_append() { + oe_multilib_header urcu/config.h +} diff --git a/poky/meta/recipes-support/nettle/nettle_3.7.2.bb b/poky/meta/recipes-support/nettle/nettle_3.7.2.bb deleted file mode 100644 index f8f336008..000000000 --- a/poky/meta/recipes-support/nettle/nettle_3.7.2.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "A low level cryptographic library" -DESCRIPTION = "Nettle is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space." -HOMEPAGE = "http://www.lysator.liu.se/~nisse/nettle/" -DESCRIPTION = "It tries to solve a problem of providing a common set of \ -cryptographic algorithms for higher-level applications by implementing a \ -context-independent set of cryptographic algorithms" -SECTION = "libs" -LICENSE = "LGPLv3+ | GPLv2+" - -LIC_FILES_CHKSUM = "file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://serpent-decrypt.c;beginline=14;endline=36;md5=ca0d220bc413e1842ecc507690ce416e \ - file://serpent-set-key.c;beginline=14;endline=36;md5=ca0d220bc413e1842ecc507690ce416e" - -DEPENDS += "gmp" - -SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ - file://Add-target-to-only-build-tests-not-run-them.patch \ - file://run-ptest \ - file://check-header-files-of-openssl-only-if-enable_.patch \ - " - -SRC_URI_append_class-target = "\ - file://dlopen-test.patch \ - " - -SRC_URI[sha256sum] = "8d2a604ef1cde4cd5fb77e422531ea25ad064679ff0adf956e78b3352e0ef162" - -UPSTREAM_CHECK_REGEX = "nettle-(?P\d+(\.\d+)+)\.tar" - -inherit autotools ptest multilib_header - -EXTRA_AUTORECONF += "--exclude=aclocal" - -EXTRA_OECONF = "--disable-openssl" - -do_compile_ptest() { - oe_runmake buildtest -} - -do_install_append() { - oe_multilib_header nettle/version.h -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/testsuite/ - install ${S}/testsuite/gold-bug.txt ${D}${PTEST_PATH}/testsuite/ - install ${S}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ - # tools can be found in PATH, not in ../tools/ - sed -i -e 's|../tools/||' ${D}${PTEST_PATH}/testsuite/*-test - install ${B}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ -} - -RDEPENDS_${PN}-ptest += "${PN}-dev" -INSANE_SKIP_${PN}-ptest += "dev-deps" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/nettle/nettle_3.7.3.bb b/poky/meta/recipes-support/nettle/nettle_3.7.3.bb new file mode 100644 index 000000000..031500d74 --- /dev/null +++ b/poky/meta/recipes-support/nettle/nettle_3.7.3.bb @@ -0,0 +1,57 @@ +SUMMARY = "A low level cryptographic library" +DESCRIPTION = "Nettle is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space." +HOMEPAGE = "http://www.lysator.liu.se/~nisse/nettle/" +DESCRIPTION = "It tries to solve a problem of providing a common set of \ +cryptographic algorithms for higher-level applications by implementing a \ +context-independent set of cryptographic algorithms" +SECTION = "libs" +LICENSE = "LGPLv3+ | GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://serpent-decrypt.c;beginline=14;endline=36;md5=ca0d220bc413e1842ecc507690ce416e \ + file://serpent-set-key.c;beginline=14;endline=36;md5=ca0d220bc413e1842ecc507690ce416e" + +DEPENDS += "gmp" + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ + file://Add-target-to-only-build-tests-not-run-them.patch \ + file://run-ptest \ + file://check-header-files-of-openssl-only-if-enable_.patch \ + " + +SRC_URI_append_class-target = "\ + file://dlopen-test.patch \ + " + +SRC_URI[sha256sum] = "661f5eb03f048a3b924c3a8ad2515d4068e40f67e774e8a26827658007e3bcf0" + +UPSTREAM_CHECK_REGEX = "nettle-(?P\d+(\.\d+)+)\.tar" + +inherit autotools ptest multilib_header + +EXTRA_AUTORECONF += "--exclude=aclocal" + +EXTRA_OECONF = "--disable-openssl" + +do_compile_ptest() { + oe_runmake buildtest +} + +do_install_append() { + oe_multilib_header nettle/version.h +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/testsuite/ + install ${S}/testsuite/gold-bug.txt ${D}${PTEST_PATH}/testsuite/ + install ${S}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ + # tools can be found in PATH, not in ../tools/ + sed -i -e 's|../tools/||' ${D}${PTEST_PATH}/testsuite/*-test + install ${B}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ +} + +RDEPENDS_${PN}-ptest += "${PN}-dev" +INSANE_SKIP_${PN}-ptest += "dev-deps" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/p11-kit/p11-kit_0.23.22.bb b/poky/meta/recipes-support/p11-kit/p11-kit_0.23.22.bb deleted file mode 100644 index 623afccb5..000000000 --- a/poky/meta/recipes-support/p11-kit/p11-kit_0.23.22.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Provides a way to load and enumerate PKCS#11 modules" -DESCRIPTION = " Provides a standard configuration setup for installing PKCS#11 modules in such a way that they're discoverable. Also solves problems with coordinating the use of PKCS#11 by different components or libraries living in the same process." -HOMEPAGE = "https://p11-glue.github.io/p11-glue/p11-kit.html" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50" - -inherit meson gettext pkgconfig gtk-doc bash-completion manpages - -DEPENDS = "libtasn1 libtasn1-native libffi" - -DEPENDS_append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}" - -SRC_URI = "git://github.com/p11-glue/p11-kit;branch=0.23" -SRCREV = "bd97afbfe28d5fbbde95ce36ff7a8834fc0291ee" -S = "${WORKDIR}/git" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native" -PACKAGECONFIG[trust-paths] = "-Dtrust_paths=/etc/ssl/certs/ca-certificates.crt,,,ca-certificates" - -GTKDOC_MESON_OPTION = 'gtk_doc' - -FILES_${PN} += " \ - ${libdir}/p11-kit-proxy.so \ - ${libdir}/pkcs11/*.so \ - ${libdir}/pkcs11/*.la \ - ${systemd_user_unitdir}/*" - -# PN contains p11-kit-proxy.so, a symlink to a loadable module -INSANE_SKIP_${PN} = "dev-so" - -BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-support/p11-kit/p11-kit_0.24.0.bb b/poky/meta/recipes-support/p11-kit/p11-kit_0.24.0.bb new file mode 100644 index 000000000..6759168b3 --- /dev/null +++ b/poky/meta/recipes-support/p11-kit/p11-kit_0.24.0.bb @@ -0,0 +1,32 @@ +SUMMARY = "Provides a way to load and enumerate PKCS#11 modules" +DESCRIPTION = " Provides a standard configuration setup for installing PKCS#11 modules in such a way that they're discoverable. Also solves problems with coordinating the use of PKCS#11 by different components or libraries living in the same process." +HOMEPAGE = "https://p11-glue.github.io/p11-glue/p11-kit.html" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50" + +inherit meson gettext pkgconfig gtk-doc bash-completion manpages + +DEPENDS = "libtasn1 libtasn1-native libffi" + +DEPENDS_append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}" + +SRC_URI = "git://github.com/p11-glue/p11-kit" +SRCREV = "34826623f58399b24c21f1788e2cdaea34521b7b" +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native" +PACKAGECONFIG[trust-paths] = "-Dtrust_paths=/etc/ssl/certs/ca-certificates.crt,,,ca-certificates" + +GTKDOC_MESON_OPTION = 'gtk_doc' + +FILES_${PN} += " \ + ${libdir}/p11-kit-proxy.so \ + ${libdir}/pkcs11/*.so \ + ${libdir}/pkcs11/*.la \ + ${systemd_user_unitdir}/*" + +# PN contains p11-kit-proxy.so, a symlink to a loadable module +INSANE_SKIP_${PN} = "dev-so" + +BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.12.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.12.bb deleted file mode 100644 index 967370098..000000000 --- a/poky/meta/recipes-support/rng-tools/rng-tools_6.12.bb +++ /dev/null @@ -1,60 +0,0 @@ -SUMMARY = "Random number generator daemon" -DESCRIPTION = "Check and feed random data from hardware device to kernel" -AUTHOR = "Philipp Rumpf, Jeff Garzik , \ - Henrique de Moraes Holschuh " -HOMEPAGE = "https://github.com/nhorman/rng-tools" -BUGTRACKER = "https://github.com/nhorman/rng-tools/issues" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "sysfsutils openssl" - -SRC_URI = "\ - git://github.com/nhorman/rng-tools.git \ - file://init \ - file://default \ - file://rngd.service \ -" -SRCREV = "a2cd12bc253a014328b87137559fd4e1ab296d9b" - -S = "${WORKDIR}/git" - -inherit autotools update-rc.d systemd pkgconfig - -EXTRA_OECONF = "--without-rtlsdr" - -PACKAGECONFIG ??= "libjitterentropy" -PACKAGECONFIG_libc-musl = "libargp libjitterentropy" - -PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone," -PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy" -PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl" -PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl" - -INITSCRIPT_NAME = "rng-tools" -INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ." - -SYSTEMD_SERVICE_${PN} = "rngd.service" - -# Refer autogen.sh in rng-tools -do_configure_prepend() { - cp ${S}/README.md ${S}/README -} - -do_install_append() { - install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools - install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools - install -Dm 0644 ${WORKDIR}/rngd.service \ - ${D}${systemd_system_unitdir}/rngd.service - sed -i \ - -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - -e 's,@SBINDIR@,${sbindir},g' \ - ${D}${sysconfdir}/init.d/rng-tools \ - ${D}${systemd_system_unitdir}/rngd.service - - if [ "${@bb.utils.contains('PACKAGECONFIG', 'nistbeacon', 'yes', 'no', d)}" = "yes" ]; then - sed -i \ - -e '/^IPAddressDeny=any/d' \ - -e '/^RestrictAddressFamilies=/ s/$/ AF_INET AF_INET6/' \ - ${D}${systemd_system_unitdir}/rngd.service - fi -} diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.13.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.13.bb new file mode 100644 index 000000000..fb2fd63c5 --- /dev/null +++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.13.bb @@ -0,0 +1,60 @@ +SUMMARY = "Random number generator daemon" +DESCRIPTION = "Check and feed random data from hardware device to kernel" +AUTHOR = "Philipp Rumpf, Jeff Garzik , \ + Henrique de Moraes Holschuh " +HOMEPAGE = "https://github.com/nhorman/rng-tools" +BUGTRACKER = "https://github.com/nhorman/rng-tools/issues" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "sysfsutils openssl" + +SRC_URI = "\ + git://github.com/nhorman/rng-tools.git \ + file://init \ + file://default \ + file://rngd.service \ +" +SRCREV = "d8dac0e8bede73e42b3d59f3b48c662ad0032e8c" + +S = "${WORKDIR}/git" + +inherit autotools update-rc.d systemd pkgconfig + +EXTRA_OECONF = "--without-rtlsdr" + +PACKAGECONFIG ??= "libjitterentropy" +PACKAGECONFIG_libc-musl = "libargp libjitterentropy" + +PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone," +PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy" +PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl" +PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl" + +INITSCRIPT_NAME = "rng-tools" +INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ." + +SYSTEMD_SERVICE_${PN} = "rngd.service" + +# Refer autogen.sh in rng-tools +do_configure_prepend() { + cp ${S}/README.md ${S}/README +} + +do_install_append() { + install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools + install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools + install -Dm 0644 ${WORKDIR}/rngd.service \ + ${D}${systemd_system_unitdir}/rngd.service + sed -i \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${sysconfdir}/init.d/rng-tools \ + ${D}${systemd_system_unitdir}/rngd.service + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'nistbeacon', 'yes', 'no', d)}" = "yes" ]; then + sed -i \ + -e '/^IPAddressDeny=any/d' \ + -e '/^RestrictAddressFamilies=/ s/$/ AF_INET AF_INET6/' \ + ${D}${systemd_system_unitdir}/rngd.service + fi +} diff --git a/poky/scripts/oe-time-dd-test.sh b/poky/scripts/oe-time-dd-test.sh index 46b218b76..ccdd55e66 100755 --- a/poky/scripts/oe-time-dd-test.sh +++ b/poky/scripts/oe-time-dd-test.sh @@ -24,6 +24,13 @@ uptime timeout ${TIMEOUT} dd if=/dev/zero of=oe-time-dd-test.dat bs=1024 count=$1 conv=fsync if [ $? -ne 0 ]; then echo "Timeout used: ${TIMEOUT}" + echo "start: top output" top -c -b -n1 -w 512 + echo "end: top output" + echo "start: iostat" + iostat -y -z -x 5 1 + echo "end: iostat" + echo "start: cooker log" tail -30 tmp*/log/cooker/*/console-latest.log + echo "end: cooker log" fi diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu index e2dc529ba..1f332ef52 100755 --- a/poky/scripts/runqemu +++ b/poky/scripts/runqemu @@ -18,6 +18,7 @@ import shutil import glob import configparser import signal +import time class RunQemuError(Exception): """Custom exception to raise on known errors.""" @@ -1201,8 +1202,10 @@ class BaseConfig(object): tmpfsdir = os.environ.get("RUNQEMU_TMPFS_DIR", None) if self.snapshot and tmpfsdir: newrootfs = os.path.join(tmpfsdir, os.path.basename(self.rootfs)) + "." + str(os.getpid()) + logger.info("Copying rootfs to %s" % newrootfs) + copy_start = time.time() shutil.copyfile(self.rootfs, newrootfs) - #print("Copying rootfs to tmpfs: %s" % newrootfs) + logger.info("Copy done in %s seconds" % (time.time() - copy_start)) self.rootfs = newrootfs # Don't need a second copy now! self.snapshot = False -- cgit v1.2.3