summaryrefslogtreecommitdiff
path: root/poky/bitbake
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2022-02-25 23:34:39 +0300
committerAndrew Geissler <andrew@geissonator.com>2022-04-01 17:11:17 +0300
commit7e0e3c0c6a2cd4e76ebca17ed16a37155992025e (patch)
treea95a4a4e69705650aae4f048c1fdf90749f551f5 /poky/bitbake
parent0b74d07dc0e30403ff5928c63dabfbbd6eb40c49 (diff)
downloadopenbmc-7e0e3c0c6a2cd4e76ebca17ed16a37155992025e.tar.xz
subtree updates feb 25 2022
poky: 27ff420543..49168f5d55: Ahsan Hussain (1): staging: use relative path in sysroot_stage_dir() Alejandro Hernandez Samaniego (5): core-image-tiny-initramfs: Mark recipe as 32 bit ARM compatible kernel.bbclass: Allow initramfs to be built from a separate multiconfig busybox: Add shell arithmetic to work with poky-tiny newlib: Upgrade 4.1.0 -> 4.2.0 documentation: Add multiconfig initramfs configuration: Alex Stewart (1): sudo: add /etc/sudoers to sudo-lib conffiles Alexander Kanavin (84): ruby: do not parallel install bind: upgrade 9.16.24 -> 9.16.25 ifupdown: upgrade 0.8.36 -> 0.8.37 ethtool: upgrade 5.15 -> 5.16 webkitgtk: upgrade 2.34.3 -> 2.34.4 debianutils: upgrade 5.5 -> 5.7 diffoscope: upgrade 200 -> 201 libbsd: upgrade 0.11.3 -> 0.11.5 libical: upgrade 3.0.12 -> 3.0.13 zstd: update 1.5.0 -> 1.5.2 rust: update 1.58.0 -> 1.58.1 wpa-supplicant: update 2.9 -> 2.10 ltp: update 20210927 -> 20220121 gnutls: update 3.7.2 -> 3.7.3 libusb1: correct SRC_URI gobject-introspection: replace prelink-rtld with objdump -p util-linux: update 2.37.2 -> 2.37.3 cmake: update 3.22.1 -> 3.22.2 git: merge .inc into .bb git: build manpages from source subject to manpages PACKAGECONFIG git: update 2.34.1 -> 2.35.1 python3-pycryptodome: update 3.12.0 -> 3.14.0 at: update 3.2.2 -> 3.2.4 sudo: update 1.9.8p2 -> 1.9.9 seatd: add recipe weston: upgrade 9.0.0 -> 10.0.0 xf86-input-libinput: update 1.2.0 -> 1.2.1 glib-2.0: upgrade 2.70.2 -> 2.70.3 lua: upgrade 5.4.3 -> 5.4.4 mmc-utils: upgrade to latest revision python3-cython: upgrade 0.29.26 -> 0.29.27 python3-hypothesis: upgrade 6.36.0 -> 6.36.1 python3-pip: upgrade 21.3.1 -> 22.0.2 cups: upgrade 2.4.0 -> 2.4.1 stress-ng: upgrade 0.13.10 -> 0.13.11 mesa: upgrade 21.3.4 -> 21.3.5 piglit: upgrade to latest revision puzzles: upgrade to latest revision diffoscope: upgrade 201 -> 202 libcap: upgrade 2.62 -> 2.63 libusb1: upgrade 1.0.24 -> 1.0.25 re2c: upgrade 2.2 -> 3.0 libgpg-error: update 1.43 -> 1.44 harfbuzz: upgrade 3.2.0 -> 3.3.1 qemu: replace a gtk wrapper with directly setting environment from runqemu runqemu: preload uninative libraries when host gl drivers are in use git: restore reproducibility on centos 7 insane.bbclass: use multiprocessing for collecting 'objdump -p' output llvm: update 12.0.1 -> 13.0.1 python3-numpy: update 1.22.1 -> 1.22.2 sstate: additional debugging when fetch fails occur sstate: fix up additional debugging when fetch fails occur ruby: correctly set native/target dependencies core-image-weston-sdk: synchronize with core-image-sato-sdk gstreamer1.0: disable flaky gstbin:test_watch_for_state_change test weston-init: disable systemd watchdog option webkitgtk: drop patch merged upstream man-db: update 2.10.0 -> 2.10.1 webkitgtk: remove rejected patch vulkan: update 1.2.198 -> 1.3.204 vulkan-samples: update to latest revision xkeyboard-config: update 2.34 -> 2.35.1 libgit2: update 1.3.0 -> 1.4.0 util-linux: upgrade 2.37.3 -> 2.37.4 python3-tomli: upgrade 2.0.0 -> 2.0.1 repo: upgrade 2.20 -> 2.21 help2man: upgrade 1.48.5 -> 1.49.1 meson: upgrade 0.61.1 -> 0.61.2 mmc-utils: upgrade to latest revision python3-dtschema: upgrade 2021.12 -> 2022.1 python3-pytest: upgrade 7.0.0 -> 7.0.1 vala: upgrade 0.54.6 -> 0.54.7 gi-docgen: upgrade 2021.8 -> 2022.1 pango: upgrade 1.48.10 -> 1.50.4 piglit: upgrade to latest revision shaderc: upgrade 2022.0 -> 2022.1 gst-examples: upgrade 1.18.5 -> 1.18.6 libical: upgrade 3.0.13 -> 3.0.14 diffoscope: upgrade 202 -> 204 gdb: update 11.1 -> 11.2 weston-init: replace deprecated/disabled fbdev with drm backend devtool: explicitly set main or master branches in upgrades when available base/staging: use HOST_PREFIX, not TARGET_PREFIX insane: use HOST_ variables, not TARGET_ to determine the cross system Alexandru Ardelean (1): libsndfile1: bump to version 1.0.31 Andrej Valek (3): busybox: refresh defconfig oeqa: qemu: create missing directory for _write_dump dhcpcd: add option to set DBDIR location Andres Beltran (1): create-spdx: add support for SDKs Andrey Zhizhikin (1): waffle: add wayland-protocols when building with wayland Bruce Ashfield (18): linux-yocto/5.15: update to v5.15.15 linux-yocto/5.10: update to v5.10.92 x86: fix defconfig configuration warnings linux-yocto/5.15: update to v5.15.16 linux-yocto/5.10: update to v5.10.93 linux-libc-headers: update to v5.16 qemuarm64: Add tiny ktype to qemuarm64 bsp lttng-modules: fix build against v5.17+ linux-yocto-dev: update to v5.17+ linux-yocto/5.15: update to v5.15.19 linux-yocto/5.10: update to v5.10.96 lttng-modules: update devupstream to latest 2.13 linux-yocto/5.15: update to v5.15.22 linux-yocto/5.10: update to v5.10.99 linux-yocto/5.15: ppc/riscv: fix build with binutils 2.3.8 linux-yocto/5.10: ppc/riscv: fix build with binutils 2.3.8 linux-yocto/5.10: fix dssall build error with binutils 2.3.8 linux-yocto/5.15: fix dssall build error with binutils 2.3.8 Carlos Rafael Giani (1): libxml2: Backport python3-lxml workaround patch Changhyeok Bae (1): connman: update 1.40 -> 1.41 Changqing Li (2): mdadm: fix testcase 00multipath failure nghttp2: fix for multilib support Chen Qi (1): mdadm: install mdcheck Christian Eggers (5): sdk: fix search for dynamic loader mc: fix build if ncurses have been configured without wide characters curl: configure with '--without-ssl' if ssl is disabled gcsections: add nativesdk-cairo to exclude list dev-manual: update example from kernel.bbclass Daiane Angolini (1): classes/lib/useradd: The option -P is deprecated Daniel Gomez (2): bitbake: contrib: Fix hash server Dockerfile dependencies bitbake: asyncrpc: Fix attribute errors Daniel Müller (1): scripts/runqemu-ifdown: Don't treat the last iptables command as special Denys Dmytriyenko (2): wayland-protocols: upgrade 1.24 -> 1.25 yocto-check-layer: add ability to perform tests from a global bbclass Florian Amstutz (1): devtool: deploy-target: Remove stripped binaries in pseudo context Hongxu Jia (1): glibc: fix create thread failed in unprivileged process Joe Slater (1): virglrenderer: fix CVE-2022-0135 and -0175 Jon Mason (1): linux-yocto-dev: add qemuriscv32 Jose Quaresma (18): icecc.bbclass: replace deprecated bash command substitution spirv-headers: bump to b42ba6 spirv-tools: upgrade 2021.4 -> 2022.1 glslang: upgrade 11.7.1 -> 11.8.0 shaderc: upgrade 2021.3 -> 2021.4 shaderc: upgrade 2021.4 -> 2022.0 gstreamer1.0: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-plugins-base: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-plugins-good: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-plugins-bad: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-plugins-ugly: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-rtsp-server: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-libav: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-vaapi: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-omx: upgrade 1.18.5 -> 1.20.0 gstreamer1.0-python: upgrade 1.18.5 -> 1.20.0 gst-devtools: upgrade 1.18.5 -> 1.20.0 gstreamer1.0: update licenses of all modules Joshua Watt (4): classes/create-spdx: Add packageSupplier field classes/create-spdx: Remove unnecessary package spdx: Add set helper for list properties bitbake: msg: Ensure manually created loggers have the once filter Justin Bronder (1): initramfs-framework: unmount automounts before switch_root Kai Kang (2): toolchain-scripts.bbclass: use double quotes for exported PS1 webkitgtk: 2.34.4 -> 2.34.5 Khem Raj (17): ffmpeg: Remove --disable-msa2 mips option systemd: Forward port musl patches ruby: Fix build on riscv/musl musl: Update to latest master libstd-rs: Apply patches to right version of libc image-prelink: Remove bbclass qemuppc64.conf: Remove commented prelink use meta: Remove libsegfault and catchsegv man-db: Fix build with clang diffutils: Link with libbcrypt on mingw binutils: Upgrade to 2.38 release opensbi: Upgrade to 1.0 u-boot: Fix RISCV build with binutils 2.38 libgit2: Upgrade to 1.4.1 grub: Fix build with bintutils 2.38 on riscv boost: Fix build on 32bit arches with 64bit time_t defaults scripts/documentation-audit: Use renamed LICENSE_FLAGS_ACCEPTED variable Konrad Weihmann (2): ruby: fix DEPENDS append gmp: fix EXTRA_OECONF for mipsarchr6 Kory Maincent (1): icu: fix make_icudata dependencies Lee Chee Yang (1): libarchive : update to 3.5.3 LiweiSong (1): qemu: add tpm string section to qemu acpi table Luna Gräfje (1): tune-cortexa72: Fix a misspelt override in PACKAGE_EXTRA_ARCHS Marek Vasut (1): kernel-fitimage: Add missing dependency for UBOOT_ENV Markus Niebel (1): kmscube: depend on virtual/libgbm Markus Volk (2): libical: build gobject and vala introspection seatd: build systemd backend if DISTRO_FEATURE systemd is set Marta Rybczynska (1): bitbake: lib/bb: fix exit when found renamed variables Martin Beeger (1): cmake: remove bogus CMAKE_LDFLAGS_FLAGS definition from toolchain file Martin Jansa (2): systemd: fix DeprecationWarning about regexps icecc.bbclass: fix syntax error Matthias Klein (1): boost: add json lib Michael Halstead (3): uninative: Upgrade to 3.5 releases: update to include 3.1.14 releases: update to include 3.4.2 Michael Opdenacker (8): migration-3.5: mention task specific network access dev-manual: stop mentioning the Angstrom distribution dev-manual: new "working with pre-compiled libraries" section manuals: improve references to classes manuals: propose https for SSTATE_MIRRORS ref-manual: add usage details about ccache.bbclass ref-manual: update TCLIBC description manuals: add 3.4 and 3.4.1 release notes after migration information Oleksandr Kravchuk (1): ell: update to 0.48 Oleksandr Suvorov (1): depmodwrapper-cross: add config directory option Pavel Zhukov (3): systemd: allow to create directory whose path contains symlink systemd: enable KeepConfiguration= when running on network filesystem patch.py: Prevent git repo reinitialization Peter Kjellerstedt (21): sstate: A third fix for for touching files inside pseudo devtool: sdk-update: Remove an unnecessary \n from SSTATE_MIRRORS sstatetests: Correct a typo in a comment glibc-tests: Correct PACKAGE_DEBUG_SPLIT_STYLE test-manual: Correct two references to BB_SKIP_NETTESTS package: Split out package_debug_vars from split_and_strip_files package: Make package_debug_vars() return a dict package: Pass dv (debug_vars) around instead of individual vars bitbake: bitbake-user-manual: Remove unnecessary \n from a PREMIRRORS example bitbake: tests/fetch: Skip the crate tests if network tests are disabled bitbake: tests/fetch: Remove unnecessary \n from mirror variables bitbake: tests/fetch: Improve the verbose messages for skipped tests bitbake: tests/fetch: Unify how git commands are run bitbake: tests/fetch: Only set the Git user name/email if they are not already set bitbake: tests/fetch: Make test_npm_premirrors work with the current fetcher bitbake: fetch2: Correct handling of replacing the basename in URIs bitbake: fetch2: npm: Put all downloaded files in the npm2 directory poky.conf: Remove unnecessary \n from PREMIRRORS local.conf.sample: Remove unnecessary \n from the SSTATE_MIRRORS example manuals: Remove unnecessary \n from SSTATE_MIRRORS examples oeqa/selftest/bblogging: Add logging tests for bb.build.exec_func with shell/python code Pgowda (2): glibc : Fix CVE-2021-3998 glibc : Fix CVE-2021-3999 Quentin Schulz (2): docs: point to renamed BB_BASEHASH_IGNORE_VARS variable docs: fix hardcoded link warning messages Richard Purdie (65): lttng-tools: upgrade 2.13.2 -> 2.13.4 gcc: Drop stdlib++ option patch staging: Add extra hash handling code abi_version/sstate: Bump for hash equivalence fix prelink: Drop support for it glibc: Drop prelink patch oqea/runtime/oe_syslog: Improve test vim: Upgrade 4269 -> 4134 binutils: Add fix for CVE-2021-45078 glibc: Upgrade to 2.35 patchelf: Fix corrupted file mode patch buildtools: Allow testsdk to access the network scriptutils: Fix handling of srcuri urls default-distrovars.inc: Switch connectivity check to a yoctoproject.org page bitbake: tests/fetch: Add missing branch param for git urls oeqa/buildtools: Switch to our webserver instead of example.com openssl: Add perl functionality test to do_configure ltp: Disable proc01 test bitbake: fetch2/cooker: Fix source revision handling with floating upstreams bitbake: data_smart: Fix overrides file/line message additions bitbake: cooker: Improve parsing failure from handled exception usability bitbake: msg: Add bb.warnonce() and bb.erroronce() log methods bitbake: data_smart: Add hasOverrides method to public datastore API selftest/bbtests: Add tests for git floating tag resolution oeqa/selftest/bbtests: Update to match changed bitbake output features_check/insane: Use hasOverrides datastore method recipeutils: Add missing get_srcrev() call archiver: Fix typo bitbake: utils: Fix environment decorator logic error bitbake: fetch2: Abstract fetcher environment to a function core-image-testmaster: Rename to core-image-testcontroller scripts: Add a conversion script to use SPDX license names meta/meta-selftest/meta-skeleton: Update LICENSE variable to use SPDX license identifiers oeqa/selftest/bbtests: Update after license changes sstate: Setup fetcher environment in advance expat: Upgrade 2.4.4 -> 2.4.5 expat: Upgrade 2.4.5 -> 2.4.6 perl: Improve and update module RPDEPENDS libxml-parser-perl: Add missing RDEPENDS vim: Upgrade 8.2.4314 -> 8.2.4424 tiff: Add backports for two CVEs from upstream bitbake: utils: Ensure shell function failure in python logging is correct oeqa/selftest/bblogging: Split the test cases up for ease of testing bitbake: data_smart/cookerdata: Add variable remapping support bitbake: data_smart: Allow rename mechanism to show full expressions bitbake: data_smart: Add support to BB_RENAMED_VARIABLES for custom strings bitbake: bitbake: Bump version to 1.53.1 sanity.conf: Require bitbake version 1.53.1 layer.conf: Update to use kirkstone meta/scripts: Change BB_ENV_EXTRA_WHITE -> BB_ENV_PASSTHROUGH_ADDITIONS meta/scripts: Handle bitbake variable renaming bitbake.conf: Add entries for renamed variables meta/scripts: Automated conversion of OE renamed variables icecc: Improve variables/terminology bitbake.conf: Add entries to warn on usage of removed variables layer.conf: Update to kirkstone namespace bitbake: data_smart: Avoid exceptions for non string data bitbake: tests/fetch: Update for master -> main change upstream python3targetconfig: Use for nativesdk too licenses: Fix logic error introduced in rename pip_install_wheel: Recompile modified files pip_install_wheel: Use --ignore-installed for pip python3-pip: Don't change shebang python3-pip: Improve reproducibility python3-numpy: Fix pyc determinism issue Robert Joslyn (1): dev-manual/common-tasks: Fix typo Robert Yang (1): bitbake: bitbake: bitbake-worker: Preserve network non-local uid Ross Burton (21): tiff: backport fix for CVE-2022-22844 yocto-check-layer: add debug output for the layers that were found openssl: export OPENSSL_MODULES in the wrapper expat: upgrade to 2.4.4 vim: upgrade to patch 4269 core-image-sato-sdk: allocate more memory when in qemu oeqa/runtime/stap: improve systemtap test systemtap: backport buffer size tuning patches strace: remove obsolete musl-on-MIPS patch strace: skip a number of load-sensitive tests yocto-check-layer: check for duplicate layers when finding layers common-licences: remove ambiguous "BSD" license newlib: fix license checksums oeqa/selftest: test that newlib can build cmake: stop FetchContent from fetching content kernel: make kernel-base recommend kernel-image, not depend poky-tiny: don't skip core-image-base and core-image-full-cmdline poky-tiny: set QB_DEFAULT_FSTYPE correctly coreutils: remove obsolete ignored CVE list cve-check: get_cve_info should open the database read-only oeqa/controllers: update for MasterImageHardwareTarget->Controller... Rudolf J Streif (1): linux-firmware: Add CLM blob to linux-firmware-bcm4373 package Saul Wold (13): recipetool: Fix circular reference in SRC_URI create-spdx: Get SPDX-License-Identifier from source blacklist: Replace class with SKIP_RECIPE variable dnf: Use renamed SKIP_RECIPE varFlag multilib: Use renamed SKIP_RECIPE varFlag imagefeatures: selftest: Change variable to be more descriptive scripts: Add convert-variable-renames script for inclusive language variable renaming meta: Rename LICENSE_FLAGS variable poky-tiny: Use renamed SKIP_RECIPES varFlag Rename LICENSE_FLAGS variable meta: Further LICENSE_FLAGS variable updates package: rename LICENSE_EXCLUSION license.py: rename variables Scott Murray (13): bitbake: bitbake: Rename basehas and taskhash filtering variables bitbake: bitbake: Rename environment filtering variables bitbake: bitbake: Rename configuration hash filtering variable bitbake: bitbake: Rename setscene enforce filtering variable bitbake: bitbake: Rename allowed multiple provider variable bitbake: lib: Replace remaining "blacklist"/"whitelist" usage bitbake: lib/bb: Replace "abort" usage in task handling bitbake: lib/bb: Replace "ABORT" action in BB_DISKMON_DIRS bitbake: bitbake: Replace remaining "abort" usage local.conf/oeqa: Update BB_DISKMON_DIRS use meta-poky: Update BB_DISKMON_DIRS use scripts: fix file writing in convert-variable-renames scripts: fix file writing in convert-spdx-licenses Sean Anderson (1): libpcap: Disable DPDK explicitly Stefan Herbrechtsmeier (12): cve-check: create directory of CVE_CHECK_MANIFEST before copy systemd: Add link-udev-shared PACKAGECONFIG systemd: Minimize udev package size if DISTRO_FEATURES doen't contain sysvinit gcc-target: fix glob to remove gcc-<version> binary gcc-target: move cc1plus to g++ package wic: partition: Support valueless keys in sourceparams wic: rawcopy: Add support for packed images selftest: wic: Remove requirement of syslinux from test_rawcopy_plugin selftest: wic: Add rawcopy plugin unpack test selftest: wic: Disable graphic of qemu to support WSL classes: rootfs-postcommands: avoid exception in overlayfs_qa_check files: overlayfs-create-dirs: split ExecStart into two commands Tamizharasan Kumar (2): linux-yocto/5.10: update genericx86* machines to v5.10.99 linux-yocto/5.15: update genericx86* machines to v5.15.22 Tim Orling (43): python3-hypothesis: upgrade 6.35.0 -> 6.36.0 python3-setuptools-scm: upgrade 6.3.2 -> 6.4.2 python3-pyparsing: upgrade 3.0.6 -> 3.0.7 python3-importlib-metadata: upgrade 4.10.0 -> 4.10.1 python3-wheel: move 0.37.1 from meta-python python3-flit-core: add recipe for 3.6.0 python3-flit-core: SUMMARY DESCRIPTION HOMEPAGE python3-flit-core: inherit pip_install_wheel flit_core.bbclass: add helper for newer python packaging python3-wheel: inherit flit_core pip_install_wheel.bbclass: add helper class python3-wheel-native: install ${bindir}/wheel setuptools_build_meta.bbclass: add helper class python3-pip: inherit setuptools_build_meta python3-pip-native: install scripts in ${bindir} python3-attrs: inherit setuptools_build_meta python3-git: inherit setuptools_build_meta python3-pytest: inherit setuptools_build_meta python3-setuptools-scm: inherit setuptools_build_meta python3-zipp: inherit setuptools_build_meta python3-iniconfig: inherit setuptools_build_meta python3-py: inherit setuptools_build_meta python3-pluggy: inherit setuptools_build_meta python3-setuptools: inherit setuptools_base_meta setuptools3.bbclass: refactor for wheels python3-more-itertools: set PIP_INSTALL_PACKAGE meson: inherit setuptools_build_meta python3-libarchive-c: set PIP_INSTALL_PACKAGE python3-smartypants: patch hash bang to python3 python3-scons: merge -native recipe python3-subunit: merge inc; set PIP_INSTALL_PACKAGE python3-magic: set PIP_INSTALL_PACKAGE bmap-tools: set PIP_INSTALL_PACKAGE, BASEVER asciidoc: set PIP_INSTALL_PACKAGE gi-docgen: set PIP_INSTALL_PACKAGE python3-numpy: set PIP_INSTALL_PACKAGE python3-dbusmock: set PIP_INSTALL_PACKAGE python3-mako: inherit setuptools_build_meta python3-packaging: inherit setuptools_build_meta python3-nose: drop recipe disutils*.bbclasses: move to meta-python selftest: drop distutils3 test from recipetool pip_install_wheel: improved wheel filename guess Tom Hochstein (1): xwayland: Add xkbcomp runtime dependency Yi Zhao (2): glibc: unify wordsize.h between arm and aarch64 glibc: fix multilib headers conflict for arm Zoltán Böszörményi (2): qemuboot: Fix build error if UNINATIVE_LOADER is unset gtk-icon-cache: Allow using gtk4 Zygmunt Krynicki (13): bitbake: fetch2/wget: move loop-invariant load of BB_ORIGENV bitbake: cooker: Fix typo "isn't" and "tuples" bitbake: cookerdata: Fix typo "normally" bitbake: daemonize: Fix typo "separate" bitbake: event: Fix typo "asynchronous" and "occasionally" bitbake: fetch2: Fix typo "conform" and "processed" bitbake: fetch2/git: Remove duplicate "the" bitbake: persist_data: Fix typo "committed" bitbake: process: Fix typo: "process" bitbake: progress: Fix typo "wherever" bitbake: tinfoil: Fix typo "receive" and "something" bitbake: utils: Fix typo "dependency" and "spawning" bitbake: wget: Fix grammar "can happen" pgowda (1): gcc : Fix CVE-2021-46195 wangmy (44): libwebp: 1.2.1 -> 1.2.2 python3-libarchive-c: upgrade 3.2 -> 4.0 lighttpd: upgrade 1.4.63 -> 1.4.64 nfs-utils: upgrade 2.5.4 -> 2.6.1 libmodulemd: upgrade 2.13.0 -> 2.14.0 libxcrypt: upgrade 4.4.27 -> 4.4.28 lzip: upgrade 1.22 -> 1.23 libxkbcommon: upgrade 1.3.1 -> 1.4.0 man-db: upgrade 2.9.4 -> 2.10.0 gdbm: upgrade 1.22 -> 1.23 harfbuzz: upgrade 3.3.1 -> 3.3.2 findutils: upgrade 4.8.0 -> 4.9.0 python3-magic: upgrade 0.4.24 -> 0.4.25 python3-pycryptodome: upgrade 3.14.0 -> 3.14.1 python3-pytest: upgrade 6.2.5 -> 7.0.0 python3-pip: upgrade 22.0.2 -> 22.0.3 python3-pyelftools: upgrade 0.27 -> 0.28 screen: upgrade 4.8.0 -> 4.9.0 ed: upgrade 1.17 -> 1.18 autoconf-archive: upgrade 2021.02.19 -> 2022.02.11 gpgme: upgrade 1.16.0 -> 1.17.0 glib-2.0: upgrade 2.70.3 -> 2.70.4 harfbuzz: upgrade 3.3.2 -> 3.4.0 python3-hypothesis: upgrade 6.36.1 -> 6.36.2 python3-pathlib2: upgrade 2.3.6 -> 2.3.7 python3-pbr: upgrade 5.8.0 -> 5.8.1 python3-ruamel-yaml: upgrade 0.17.20 -> 0.17.21 linux-firmware: upgrade 20211216 -> 20220209 rng-tools: upgrade 6.14 -> 6.15 mesa: upgrade 21.3.5 -> 21.3.6 go: upgrade 1.17.6 -> 1.17.7 libhandy: Use upstream regex to check version of upgrade. libva-utils: upgrade 2.13.0 -> 2.14.0 patchelf: upgrade 0.14.3 -> 0.14.5 quilt: upgrade 0.66 -> 0.67 ruby: upgrade 3.1.0 -> 3.1.1 wireless-regdb: upgrade 2021.08.28 -> 2022.02.18 bind: upgrade 9.16.25 -> 9.16.26 flac: upgrade 1.3.3 -> 1.3.4 init-system-helpers: upgrade 1.60 -> 1.62 libdrm: upgrade 2.4.109 -> 2.4.110 python3-hypothesis: upgrade 6.36.2 -> 6.37.2 python3-markupsafe: upgrade 2.0.1 -> 2.1.0 asciidoc: upgrade 10.1.1 -> 10.1.3 meta-raspberrypi: 836755370f..e39a0a570c: Andrei Gherzan (13): README.md: Add contributing section Move the python3-adafruit recipes depending on meta-oe to dynamic layers README.md: Don't advertise meta-oe dependency docs: Detail the merging process of patches sent through the mailing list ci: Define an action for building a local docker image ci: Define an action for cleaning dangling image ci: Define an action for cleaning/removing an image ci: Introduce workflow for compliance ci: Introduce workflow Yocto operations/builds ci: Add workflow to cancel redundant workflows ci: Add git mirror workflow ci: No need for checkout step in mirror workflow ci: Use the current stable version for the mirror action Aníbal Limón (1): gstreamer1.0-plugins-good: Update bbappend to 1.20 Bernhard Guillon (1): rpi-base.inc: enable i2c-gpio overlay Devendra Tewari (1): linux-raspberrypi: Upgrade to 5.10.83 Khem Raj (7): raspberrypi4-64: Switch to using cortexa72-crc default tune picamera-libs,python3-picamera: Limit visibility to 32 bit rpi machines rpi-gpio: Replace setuptool3 instead of distutils3 python3-adafruit-blinka: Disable on musl linux-raspberrypi: Add recipe for 5.15 LTS kernel rpi-default-versions: Use 5.15 as default kernel layers: Bump to use kirkstone Martin Jansa (4): sdcard_image-rpi: fix DeprecationWarning gstreamer1.0-plugins-bad: remove libmms PACKAGECONFIG and add gpl meta: update variable names meta: update license names Mauro Anjo (1): machine: add Pi Zero 2 W 32bits Michal Toman (1): rpi-base.inc: Add vc4-fkms-v3d-pi4 overlay Mingli Yu (1): xserver-xorg: remove xshmfence configure option Otto Esko (2): recipes-bsp: Add support for gpio-shutdown Add documentation for gpio-shutdown Paul Barker (1): raspberrypi4-64: Switch to cortexa72 tune bhargavthriler (1): python3-picamera: Add picamera library meta-openembedded: 6b63095946..cf0ed42391: Alejandro Hernandez Samaniego (1): remmina: Upgrade to 1.4.23 Alexander Kanavin (4): libvncserver: disable ffmpeg support due to incompatiblility with ffmpeg 5.0 opencv: update 4.5.2 -> 4.5.5 minidlna: update 1.2.1 -> 1.3.0 mpd: update 0.22.9 -> 0.23.5 An?bal Lim?n (2): python3-apt: add new recipe version 2.3.0 unattended-upgrades: add new recipe version 2.6 Andreas Müller (1): All layers: Follow oe-core's variable name changes Andrej Valek (1): nodejs: add option to use openssl legacy providers Carlos Rafael Giani (3): pipewire: Upgrade to 0.3.45 wireplumber: Add recipe wireplumber: Improve configuration Changqing Li (1): python3-psutil: fix test failure Christian Eggers (5): ebtables: remove perl from RDEPENDS graphviz: native: create /usr/lib/graphviz/config6 in populate_sysroot boost-sml: add new recipe python3-dt-schema: remove recipe graphviz: added PACKAGECONFIG for librsvg Clément Péron (1): networking: add new netsniff-ng recipe version 0.6.8 Daniel Gomez (1): opencv: Update contrib 4.5.2 -> 4.5.5 Devendra Tewari (1): libcamera: add pkg-config files Fabio Estevam (2): rtc-tools: Add a recipe rtc-tools: Update to 2022.02 Gianfranco Costamagna (4): vboxguestdrivers: upgrade 6.1.30 -> 6.1.32 boinc-client: Update to 7.18.1 mosquitto: upgrade 2.0.12 -> 2.0.14 websocketpp: Apply upstream proposed patch to fix a Scons 4.2.0+ build failure Jan Luebbe (1): snappy: use main branch to fix fetch failure Jan Vermaete (2): netdata: upgrade 1.32.1 -> 1.33.0 netdata: version bump 1.33.0 -> 1.33.1 Justin Bronder (4): yaml-cpp: bump 0.7.0 googlebenchmark: add 1.6.1 python3-pytest-forked: add 1.4.0 python3-pytest-xdist: add 2.5.0 Kai Kang (1): openjpeg: fix CVE-2021-29338 Kartikey Rameshbhai Parmar (1): imagemagick: update SRC_URI branch to main Khem Raj (46): xfce4-datetime-setter: Fix build with meson 0.61+ gerbera: Upgrade to 1.9.2 iotop: Disable LTO with clang/rv64 spdlog: Update the external fmt patch dlt-daemon: Bump to latest revision on master evolution-data-server: Disable g-i data generation gerbera: Fix build with fmt 8.1+ php: Update to 8.1.2 postgresql: Fix build on riscv libcec: Fix type mismatch for return value of LibCecBootloader() gparted: Do not use NULL where boolean is expected python3-pyruvate: Fix build with mips python3-pyruvate: Fix build with riscv64/musl pcp: Disable parallel compile gst-shark: Upgrade to 0.7.3.1 crda: Fix buffer overflow in sscanf open-vm-tools: Fix build with musl openldap: Fix build with musl gimp: Disable vector icons on x86 with clang libjs-jquery-icheck: Use hardcoded SHA for srcrev smarty: Upgrade to 4.1.0 dhcp-relay: Package needed shared libs from bind gimp: Disable vector icons with clang on arm capnproto: Fix build on mips packagegroup-meta-oe: Add googlebenchmark packagegroup-meta-python: Add python3-pytest-forked and python3-pytest-xdist ntopng: Avoid linking libm statically libsigc++-3: Upgrade to 3.2.0 geany-plugins: Fix build with libgit2 1.4+ recipes: Use renamed SKIP_RECIPE varFlag recipes: Use new CVE_CHECK_IGNORE variable meta-oe: Use new variable SYSROOT_DIRS_IGNORE layers: Bump to use kirkstone capnproto: Link with libatomic on rv32 iotop: Disable lto with clang for rv32 glibmm: Add recipe for 2.70.0 cairomm: Add recipe for cairomm 1.16 pangomm: Add recipe for pangomm-2.48 atkmm: Add new recipe for 2.36+ libxml++: Upgrade to 2.42.1 release libxml++-5.0: Add recipe for libxml++ 5.0 Revert "libcamera: add pkg-config files" python3-blinker: Migrate to use pytest instead of nose for testing python3-oauthlib: Drop redundant nose dependency netplan: Add knob to enable tests openldap: Use renamed variable CVE_CHECK_IGNORE Leon Anavi (23): python3-imageio: Upgrade 2.14.0 -> 2.14.1 python3-pandas: Upgrade 1.3.5 -> 1.4.0 python3-aenum: Upgrade 3.1.6 -> 3.1.8 python3-redis: Upgrade 4.0.2 -> 4.1.1 python3-jdatetime: Upgrade 3.8.1 -> 3.8.2 python3-bandit: Upgrade 1.7.1 -> 1.7.2 python3-fasteners: Upgrade 0.17.2 -> 0.17.3 python3-ansi2html: Upgrade 1.6.0 -> 1.7.0 python3-coverage: Upgrade 6.2 -> 6.3 python3-imageio: Upgrade 2.14.1 -> 2.15.0 python3-humanize: Upgrade 3.13.1 -> 3.14.0 python3-bitarray: Upgrade 2.3.5 -> 2.3.6 python3-itsdangerous: Upgrade 2.0.1 -> 2.1.0 python3-croniter: Upgrade 1.2.0 -> 1.3.4 python3-distro: Upgrade 1.6.0 -> 1.7.0 python3-click: Upgrade 8.0.3 -> 8.0.4 python3-ordered-set: Upgrade 4.0.2 -> 4.1.0 python3-bitarray: Upgrade 2.3.6 -> 2.3.7 python3-pandas: Upgrade 1.4.0 -> 1.4.1 python3-unidiff: Upgrade 0.7.0 -> 0.7.3 python3-langtable: Upgrade to release 0.0.57 python3-cmd2: Upgrade 2.3.3 -> 2.4.0 python3-coverage: Upgrade 6.3 -> 6.3.2 Marek Vasut (1): freerdp: Update to FreeRDP 2.5.0 Mark Jonas (1): mbedtls: Upgrade to 2.28.0 Markus Volk (12): geary: initial add recipe packagegroup-gnome-apps.bb: add geary folks: add PACKAGECONFIG for import_tool and inspect_tool geary: use sha hash for SRCREV; fix identation folks: make some dependencies optional evolution-data-server: try to fix g-i data generation folks: dont build tests as they are not installed anyway gvfs: upgrade 1.48.1 -> 1.49.1 libxfce4util: inherit vala xfconf: inherit vala libxfce4ui: disable vala xfce4-panel: disable vala Martin Jansa (1): Fix DeprecationWarning about regexps Matsunaga-Shinji (1): openldap: add CVE-2015-3276 to allowlist Matthias Klein (1): gpsd-machine-conf: set precise BSD-3-Clause license Mingli Yu (5): plymouth: switch to KillMode=mixed lxdm: remove conflicts setting plymouth: add extra kernel parameter opencv: disable sse4.1 and sse4.2 on x86 plymouth: Add the retain-splash option Oleksandr Kravchuk (4): redis: add recipe for 7.0-rc1 iwd: update to 1.24 fping: update to 5.1 capnproto: update to 0.9.1 Peter Bergin (1): pipewire: fix build error when pipewire-jack is used Peter Griffin (1): libcamera: update meson options to build pipeline handlers & cam utility Randy MacLeod (1): rsyslog: update to 8.2202 Robert Joslyn (1): hwdata: Update to 0.356 Ross Burton (16): python3-jsonpath-rw: set correct license concurrencykit: use precise BSD licence version pkcs11-helper: update homepage pkcs11-helper: set precise BSD license spice: set correct LICENSE poppler-data: set precise BSD license openipmi: use precise BSD license s-nail: add a maintained mail(1) fork minidlna: use precise BSD license smartmontools: use s-nail mailx: remove spice-protocol: upgrade to 1.14.3 libjs-jquery: remove fwupd-efi: upgrade to 1.2 fping: set precise license concurrencykit: enable 32- and 64-bit Arm targets Sakib Sajal (1): nss: uprev v3.73.1 -> v3.74 Sam Van Den Berge (1): libiio: use setuptools functions instead of distutils Thomas Perrot (1): breakpad: fix branch for gtest in SRC_URI Tim Orling (2): python3-wheel: drop; moved to oe-core python3-test-generator: drop recipe Trevor Gamblin (1): phoronix-test-suite: upgrade 9.2.1 -> 10.8.1 Wang Mingyu (39): ndpi: upgrade 4.0 -> 4.2 ntopng: upgrade 5.0 -> 5.2.1 python3-werkzeug: upgrade 2.0.2 -> 2.0.3 python3-twisted: upgrade 21.7.0 -> 22.1.0 python3-natsort: upgrade 8.0.2 -> 8.1.0 xfsdump: upgrade 3.1.9 -> 3.1.10 mm-common: upgrade 1.0.3 -> 1.0.4 fsverity-utils: upgrade 1.4 -> 1.5 libgee: upgrade 0.20.4 -> 0.20.5 libqmi: upgrade 1.30.2 -> 1.30.4 libcrypt-openssl-guess-perl: upgrade 0.14 -> 0.15 gjs: upgrade 1.70.0 -> 1.70.1 dnf-plugin-tui: Fix a bug of multilib libwacom: upgrade 1.12 -> 2.1.0 gedit: upgrade 40.1 -> 41.0 gnome-autoar: upgrade 0.4.2 -> 0.4.3 libwnck3: upgrade 40.0 -> 40.1 iscsi-initiator-utils: upgrade 2.1.5 -> 2.1.6 iotop: upgrade 1.20 -> 1.21 inotify-tools: upgrade 3.21.9.6 -> 3.22.1.0 gnuplot: upgrade 5.4.2 -> 5.4.3 libxmlb: upgrade 0.3.6 -> 0.3.7 libgusb: upgrade 0.3.9 -> 0.3.10 monit: upgrade 5.30.0 -> 5.31.0 libjcat: upgrade 0.1.9 -> 0.1.10 libio-socket-ssl-perl: upgrade 2.073 -> 2.074 mpv: upgrade 0.34.0 -> 0.34.1 php: upgrade 8.1.2 -> 8.1.3 nano: upgrade 6.0 -> 6.2 rdma-core: upgrade 38.0 -> 39.0 netplan: upgrade 0.103 -> 0.104 nautilus: upgrade 41.1 -> 41.2 zchunk: upgrade 1.1.16 -> 1.2.0 tree: upgrade 2.0.1 -> 2.0.2 soci: upgrade 4.0.2 -> 4.0.3 remmina: upgrade 1.4.23 -> 1.4.24 wolfssl: upgrade 5.1.0- > 5.2.0 tcpreplay: upgrade 4.4.0 -> 4.4.1 spice-protocol: upgrade 0.14.3 -> 0.14.4 Xu Huan (15): python3-multidict: upgrade 5.2.0 -> 6.0.2 python3-pulsectl upgrade 21.10.5 -> 22.1.3 python3-pyephem: upgrade 4.1.1 -> 4.1.3 python3-pytest-timeout: upgrade 2.0.2 -> 2.1.0 python3-pywbemtools: upgrade 0.9.0 -> 0.9.1 python3-requests-oauthlib: upgrade 1.3.0 -> 1.3.1 python3-sqlalchemy: upgrade 1.4.29 -> 1.4.31 python3-oauthlib: upgrade 3.1.1 -> 3.2.0 python3-pyudev: upgrade 0.22.0 -> 0.23.2 python3-pyopenssl: upgrade 21.0.0 -> 22.0.0 python3-alembic upgrade 1.7.5 -> 1.7.6 python3-autobahn: upgrade 21.11.1 -> 22.1.1 python3-flask: upgrade 2.0.2 -> 2.0.3 python3-imageio: upgrade 2.15.0 -> 2.16.0 python3-jdatetime: upgrade 3.8.2 -> 4.0.0 Yi Zhao (5): phpmyadmin: upgrade 5.1.1 -> 5.1.2 tcpdump: upgrade 4.99.0 -> 4.99.1 tcpslice: upgrade 1.2a3 -> 1.5 tcpreplay: update HOMEPAGE samba: upgrade 4.14.11 -> 4.14.12 Zheng Ruoqin (6): libjs-jquery: Upgrade to 3.3.1. protobuf: upgrade 3.19.3 -> 3.19.4 phpmyadmin: upgrade 5.1.2 -> 5.1.3 postgresql: upgrade 14.1 -> 14.2 pugixml: upgrade 1.11.4 -> 1.12 poppler: upgrade 22.01.0 -> 22.02.0 wangmy (14): fatcat: upgrade 1.1.0 -> 1.1.1 libnma: upgrade 1.8.32 -> 1.8.34 botan: upgrade 2.18.2 -> 2.19.1 cgdb: upgrade 0.7.1 -> 0.8.0 ddrescue: upgrade 1.25 -> 1.26 hostapd: upgrade 2.9 -> 2.10 libcereal: upgrade 1.3.0 -> 1.3.1 ser2net: upgrade 4.3.4 -> 4.3.5 dlt-daemon: upgrade 2.18.7 -> 2.18.8 devilspie2: upgrade 0.43 -> 0.44 opensaf: upgrade 5.21.09 -> 5.22.01 tcpreplay: upgrade 4.3.4 -> 4.4.0 lcms: upgrade 2.12 -> 2.13.1 libcgi-perl: upgrade 4.53 -> 4.54 meta-security: c20b35b527..6cc8dde794: Akshay Bhat (2): meta-hardening: Fix override syntax scap-security-guide: Fix openembedded platform tests Anton Antonov (1): Upgrade parsec-tool to 0.5.1 Armin Kuster (11): google-authenticator-libpam: update to 1.09 packagegroup-security-tpm2.bb: remove dynamic pkgs tpm2-pkcs11_1.7.0: Drop dstat from DPENDS lkrg-module: update to 0.9.2 suricata: update to 6.0.4 tpm2-tss: update to 3.1.0 parsec-service: fix compile issue. layer.conf: Update to use kirkstone recipes: Use renamed SKIP_RECIPE varFlag chipsec: fix WARNING smack: Use new CVE_CHECK_IGNORE variable Patrick Williams (1): tpm2-pkcs11: fix RDEPENDS variable Yi Zhao (1): samhain: upgrade 4.4.3 -> 4.4.6 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I270425c8a022f2e281a28ea19fdfae47aa375551
Diffstat (limited to 'poky/bitbake')
-rwxr-xr-xpoky/bitbake/bin/bitbake2
-rwxr-xr-xpoky/bitbake/bin/bitbake-worker9
-rwxr-xr-xpoky/bitbake/bin/toaster6
-rw-r--r--poky/bitbake/contrib/hashserv/Dockerfile6
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst10
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst18
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst51
-rw-r--r--poky/bitbake/lib/bb/__init__.py15
-rw-r--r--poky/bitbake/lib/bb/asyncrpc/__init__.py2
-rw-r--r--poky/bitbake/lib/bb/cooker.py32
-rw-r--r--poky/bitbake/lib/bb/cookerdata.py33
-rw-r--r--poky/bitbake/lib/bb/daemonize.py2
-rw-r--r--poky/bitbake/lib/bb/data.py12
-rw-r--r--poky/bitbake/lib/bb/data_smart.py72
-rw-r--r--poky/bitbake/lib/bb/event.py6
-rw-r--r--poky/bitbake/lib/bb/fetch2/__init__.py29
-rw-r--r--poky/bitbake/lib/bb/fetch2/git.py8
-rw-r--r--poky/bitbake/lib/bb/fetch2/npm.py10
-rw-r--r--poky/bitbake/lib/bb/fetch2/npmsw.py2
-rw-r--r--poky/bitbake/lib/bb/fetch2/wget.py12
-rwxr-xr-xpoky/bitbake/lib/bb/main.py2
-rw-r--r--poky/bitbake/lib/bb/monitordisk.py17
-rw-r--r--poky/bitbake/lib/bb/msg.py33
-rw-r--r--poky/bitbake/lib/bb/parse/ast.py4
-rw-r--r--poky/bitbake/lib/bb/persist_data.py2
-rw-r--r--poky/bitbake/lib/bb/process.py2
-rw-r--r--poky/bitbake/lib/bb/progress.py2
-rw-r--r--poky/bitbake/lib/bb/runqueue.py50
-rw-r--r--poky/bitbake/lib/bb/siggen.py66
-rw-r--r--poky/bitbake/lib/bb/taskdata.py10
-rw-r--r--poky/bitbake/lib/bb/tests/fetch.py292
-rw-r--r--poky/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf2
-rw-r--r--poky/bitbake/lib/bb/tests/runqueue.py8
-rw-r--r--poky/bitbake/lib/bb/tinfoil.py4
-rw-r--r--poky/bitbake/lib/bb/ui/knotty.py16
-rw-r--r--poky/bitbake/lib/bb/utils.py44
-rw-r--r--poky/bitbake/lib/bblayers/action.py2
-rw-r--r--poky/bitbake/lib/layerindexlib/__init__.py4
-rw-r--r--poky/bitbake/lib/layerindexlib/cooker.py2
-rw-r--r--poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py4
-rw-r--r--poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py12
-rw-r--r--poky/bitbake/lib/toaster/toastergui/templates/projectconf.html10
-rw-r--r--poky/bitbake/lib/toaster/toastergui/views.py18
43 files changed, 565 insertions, 378 deletions
diff --git a/poky/bitbake/bin/bitbake b/poky/bitbake/bin/bitbake
index dcabeae1f4..5cff9f9cb6 100755
--- a/poky/bitbake/bin/bitbake
+++ b/poky/bitbake/bin/bitbake
@@ -28,7 +28,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
-__version__ = "1.53.0"
+__version__ = "1.53.1"
if __name__ == "__main__":
if __version__ != bb.__version__:
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index 3aaf3c2444..9d850ec77c 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -262,8 +262,11 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN"), taskname.replace("do_", "")))
if not the_data.getVarFlag(taskname, 'network', False):
- logger.debug("Attempting to disable network")
- bb.utils.disable_network(uid, gid)
+ if bb.utils.is_local_uid(uid):
+ logger.debug("Attempting to disable network for %s" % taskname)
+ bb.utils.disable_network(uid, gid)
+ else:
+ logger.debug("Skipping disable network for %s since %s is not a local uid." % (taskname, uid))
# exported_vars() returns a generator which *cannot* be passed to os.environ.update()
# successfully. We also need to unset anything from the environment which shouldn't be there
@@ -437,7 +440,7 @@ class BitbakeWorker(object):
def handle_cookercfg(self, data):
self.cookercfg = pickle.loads(data)
self.databuilder = bb.cookerdata.CookerDataBuilder(self.cookercfg, worker=True)
- self.databuilder.parseBaseConfiguration()
+ self.databuilder.parseBaseConfiguration(worker=True)
self.data = self.databuilder.data
def handle_extraconfigdata(self, data):
diff --git a/poky/bitbake/bin/toaster b/poky/bitbake/bin/toaster
index 6b90ee187e..558a819570 100755
--- a/poky/bitbake/bin/toaster
+++ b/poky/bitbake/bin/toaster
@@ -33,7 +33,7 @@ databaseCheck()
$MANAGE migrate --noinput || retval=1
if [ $retval -eq 1 ]; then
- echo "Failed migrations, aborting system start" 1>&2
+ echo "Failed migrations, halting system start" 1>&2
return $retval
fi
# Make sure that checksettings can pick up any value for TEMPLATECONF
@@ -41,7 +41,7 @@ databaseCheck()
$MANAGE checksettings --traceback || retval=1
if [ $retval -eq 1 ]; then
- printf "\nError while checking settings; aborting\n"
+ printf "\nError while checking settings; exiting\n"
return $retval
fi
@@ -248,7 +248,7 @@ fi
# 3) the sqlite db if that is being used.
# 4) pid's we need to clean up on exit/shutdown
export TOASTER_DIR=$TOASTERDIR
-export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE TOASTER_DIR"
+export BB_ENV_PASSTHROUGH_ADDITIONS="$BB_ENV_PASSTHROUGH_ADDITIONS TOASTER_DIR"
# Determine the action. If specified by arguments, fine, if not, toggle it
if [ "$CMD" = "start" ] ; then
diff --git a/poky/bitbake/contrib/hashserv/Dockerfile b/poky/bitbake/contrib/hashserv/Dockerfile
index d6fc728f37..74b4a3be1d 100644
--- a/poky/bitbake/contrib/hashserv/Dockerfile
+++ b/poky/bitbake/contrib/hashserv/Dockerfile
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2021 Joshua Watt <JPEWhacker@gmail.com>
-#
+#
# Dockerfile to build a bitbake hash equivalence server container
#
# From the root of the bitbake repository, run:
@@ -15,5 +15,9 @@ RUN apk add --no-cache python3
COPY bin/bitbake-hashserv /opt/bbhashserv/bin/
COPY lib/hashserv /opt/bbhashserv/lib/hashserv/
+COPY lib/bb /opt/bbhashserv/lib/bb/
+COPY lib/codegen.py /opt/bbhashserv/lib/codegen.py
+COPY lib/ply /opt/bbhashserv/lib/ply/
+COPY lib/bs4 /opt/bbhashserv/lib/bs4/
ENTRYPOINT ["/opt/bbhashserv/bin/bitbake-hashserv"]
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 7b37f6615a..088eb818d6 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
@@ -79,8 +79,8 @@ directives.
Prior to parsing configuration files, BitBake looks at certain
variables, including:
-- :term:`BB_ENV_WHITELIST`
-- :term:`BB_ENV_EXTRAWHITE`
+- :term:`BB_ENV_PASSTHROUGH`
+- :term:`BB_ENV_PASSTHROUGH_ADDITIONS`
- :term:`BB_PRESERVE_ENV`
- :term:`BB_ORIGENV`
- :term:`BITBAKE_UI`
@@ -228,7 +228,7 @@ and then reload it.
Where possible, subsequent BitBake commands reuse this cache of recipe
information. The validity of this cache is determined by first computing
a checksum of the base configuration data (see
-:term:`BB_HASHCONFIG_WHITELIST`) and
+:term:`BB_HASHCONFIG_IGNORE_VARS`) and
then checking if the checksum matches. If that checksum matches what is
in the cache and the recipe and class files have not changed, BitBake is
able to use the cache. BitBake then reloads the cached information about
@@ -477,7 +477,7 @@ changes because it should not affect the output for target packages. The
simplistic approach for excluding the working directory is to set it to
some fixed value and create the checksum for the "run" script. BitBake
goes one step better and uses the
-:term:`BB_HASHBASE_WHITELIST` variable
+:term:`BB_BASEHASH_IGNORE_VARS` variable
to define a list of variables that should never be included when
generating the signatures.
@@ -538,7 +538,7 @@ in a list of global variable dependency excludes - variables never
included in any checksum. This example uses variables from OpenEmbedded
to help illustrate the concept::
- BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
+ BB_BASEHASH_IGNORE_VARS ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
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 8496e1da53..174cac7818 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
@@ -1343,8 +1343,8 @@ the build machine cannot influence the build.
.. note::
By default, BitBake cleans the environment to include only those
- things exported or listed in its whitelist to ensure that the build
- environment is reproducible and consistent. You can prevent this
+ things exported or listed in its passthrough list to ensure that the
+ build environment is reproducible and consistent. You can prevent this
"cleaning" by setting the :term:`BB_PRESERVE_ENV` variable.
Consequently, if you do want something to get passed into the build task
@@ -1352,14 +1352,14 @@ environment, you must take these two steps:
#. Tell BitBake to load what you want from the environment into the
datastore. You can do so through the
- :term:`BB_ENV_WHITELIST` and
- :term:`BB_ENV_EXTRAWHITE` variables. For
+ :term:`BB_ENV_PASSTHROUGH` and
+ :term:`BB_ENV_PASSTHROUGH_ADDITIONS` variables. For
example, assume you want to prevent the build system from accessing
- your ``$HOME/.ccache`` directory. The following command "whitelists"
- the environment variable ``CCACHE_DIR`` causing BitBake to allow that
- variable into the datastore::
+ your ``$HOME/.ccache`` directory. The following command adds the
+ the environment variable ``CCACHE_DIR`` to BitBake's passthrough
+ list to allow that variable into the datastore::
- export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR"
+ export BB_ENV_PASSTHROUGH_ADDITIONS="$BB_ENV_PASSTHROUGH_ADDITIONS CCACHE_DIR"
#. Tell BitBake to export what you have loaded into the datastore to the
task environment of every running task. Loading something from the
@@ -1376,7 +1376,7 @@ environment, you must take these two steps:
A side effect of the previous steps is that BitBake records the
variable as a dependency of the build process in things like the
setscene checksums. If doing so results in unnecessary rebuilds of
- tasks, you can whitelist the variable so that the setscene code
+ tasks, you can also flag the variable so that the setscene code
ignores the dependency when it creates checksums.
Sometimes, it is useful to be able to obtain information from the
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 1bb55fc501..59a9de2fb8 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
@@ -138,7 +138,7 @@ overview of their function and contents.
where:
<action> is:
- ABORT: Immediately abort the build when
+ HALT: Immediately halt the build when
a threshold is broken.
STOPTASKS: Stop the build after the currently
executing tasks have finished when
@@ -169,13 +169,13 @@ overview of their function and contents.
Here are some examples::
- BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
+ BB_DISKMON_DIRS = "HALT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
- BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
+ BB_DISKMON_DIRS = "HALT,${TMPDIR},,100K"
The first example works only if you also set the
:term:`BB_DISKMON_WARNINTERVAL`
- variable. This example causes the build system to immediately abort
+ variable. This example causes the build system to immediately halt
when either the disk space in ``${TMPDIR}`` drops below 1 Gbyte or
the available free inodes drops below 100 Kbytes. Because two
directories are provided with the variable, the build system also
@@ -189,7 +189,7 @@ overview of their function and contents.
directory drops below 1 Gbyte. No disk monitoring occurs for the free
inodes in this case.
- The final example immediately aborts the build when the number of
+ The final example immediately halts the build when the number of
free inodes in the ``${TMPDIR}`` directory drops below 100 Kbytes. No
disk space monitoring for the directory itself occurs in this case.
@@ -236,23 +236,23 @@ overview of their function and contents.
based on the interval occur each time a respective interval is
reached beyond the initial warning (i.e. 1 Gbytes and 100 Kbytes).
- :term:`BB_ENV_EXTRAWHITE`
- Specifies an additional set of variables to allow through (whitelist)
- from the external environment into BitBake's datastore. This list of
- variables are on top of the internal list set in
- :term:`BB_ENV_WHITELIST`.
+ :term:`BB_ENV_PASSTHROUGH_ADDITIONS`
+ Specifies an additional set of variables to allow through from the
+ external environment into BitBake's datastore. This list of variables
+ are on top of the internal list set in
+ :term:`BB_ENV_PASSTHROUGH`.
.. note::
You must set this variable in the external environment in order
for it to work.
- :term:`BB_ENV_WHITELIST`
- Specifies the internal whitelist of variables to allow through from
+ :term:`BB_ENV_PASSTHROUGH`
+ Specifies the internal list of variables to allow through from
the external environment into BitBake's datastore. If the value of
this variable is not specified (which is the default), the following
list is used: :term:`BBPATH`, :term:`BB_PRESERVE_ENV`,
- :term:`BB_ENV_WHITELIST`, and :term:`BB_ENV_EXTRAWHITE`.
+ :term:`BB_ENV_PASSTHROUGH`, and :term:`BB_ENV_PASSTHROUGH_ADDITIONS`.
.. note::
@@ -337,7 +337,7 @@ overview of their function and contents.
For example usage, see :term:`BB_GIT_SHALLOW`.
- :term:`BB_HASHBASE_WHITELIST`
+ :term:`BB_BASEHASH_IGNORE_VARS`
Lists variables that are excluded from checksum and dependency data.
Variables that are excluded can therefore change without affecting
the checksum mechanism. A common example would be the variable for
@@ -358,7 +358,7 @@ overview of their function and contents.
However, the more accurate the data returned, the more efficient the
build will be.
- :term:`BB_HASHCONFIG_WHITELIST`
+ :term:`BB_HASHCONFIG_IGNORE_VARS`
Lists variables that are excluded from base configuration checksum,
which is used to determine if the cache can be reused.
@@ -452,8 +452,9 @@ overview of their function and contents.
:term:`BB_ORIGENV`
Contains a copy of the original external environment in which BitBake
- was run. The copy is taken before any whitelisted variable values are
- filtered into BitBake's datastore.
+ was run. The copy is taken before any variable values configured to
+ pass through from the external environment are filtered into BitBake's
+ datastore.
.. note::
@@ -461,8 +462,8 @@ overview of their function and contents.
queried using the normal datastore operations.
:term:`BB_PRESERVE_ENV`
- Disables whitelisting and instead allows all variables through from
- the external environment into BitBake's datastore.
+ Disables environment filtering and instead allows all variables through
+ from the external environment into BitBake's datastore.
.. note::
@@ -734,7 +735,7 @@ overview of their function and contents.
"
This next example shows an error message that occurs because invalid
- entries are found, which cause parsing to abort::
+ entries are found, which cause parsing to fail::
ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
/work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
@@ -1053,7 +1054,7 @@ overview of their function and contents.
upstream source, and then locations specified by :term:`MIRRORS` in that
order.
- :term:`MULTI_PROVIDER_WHITELIST`
+ :term:`BB_MULTI_PROVIDER_ALLOWED`
Allows you to suppress BitBake warnings caused when building two
separate recipes that provide the same output.
@@ -1179,10 +1180,10 @@ overview of their function and contents.
your configuration::
PREMIRRORS:prepend = "\
- git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
- ftp://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
- http://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
- https://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n"
+ git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
+ ftp://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
+ http://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
+ https://.*/.* http://downloads.yoctoproject.org/mirror/sources/"
These changes cause the build system to intercept Git, FTP, HTTP, and
HTTPS requests and direct them to the ``http://`` sources mirror. You can
diff --git a/poky/bitbake/lib/bb/__init__.py b/poky/bitbake/lib/bb/__init__.py
index e01b8d5256..506f74dc47 100644
--- a/poky/bitbake/lib/bb/__init__.py
+++ b/poky/bitbake/lib/bb/__init__.py
@@ -9,7 +9,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-__version__ = "1.53.0"
+__version__ = "1.53.1"
import sys
if sys.version_info < (3, 6, 0):
@@ -71,6 +71,13 @@ class BBLoggerMixin(object):
def verbnote(self, msg, *args, **kwargs):
return self.log(logging.INFO + 2, msg, *args, **kwargs)
+ def warnonce(self, msg, *args, **kwargs):
+ return self.log(logging.WARNING - 1, msg, *args, **kwargs)
+
+ def erroronce(self, msg, *args, **kwargs):
+ return self.log(logging.ERROR - 1, msg, *args, **kwargs)
+
+
Logger = logging.getLoggerClass()
class BBLogger(Logger, BBLoggerMixin):
def __init__(self, name, *args, **kwargs):
@@ -157,9 +164,15 @@ def verbnote(*args):
def warn(*args):
mainlogger.warning(''.join(args))
+def warnonce(*args):
+ mainlogger.warnonce(''.join(args))
+
def error(*args, **kwargs):
mainlogger.error(''.join(args), extra=kwargs)
+def erroronce(*args):
+ mainlogger.erroronce(''.join(args))
+
def fatal(*args, **kwargs):
mainlogger.critical(''.join(args), extra=kwargs)
raise BBHandledException()
diff --git a/poky/bitbake/lib/bb/asyncrpc/__init__.py b/poky/bitbake/lib/bb/asyncrpc/__init__.py
index b2bec31ab2..c2f2b3c00b 100644
--- a/poky/bitbake/lib/bb/asyncrpc/__init__.py
+++ b/poky/bitbake/lib/bb/asyncrpc/__init__.py
@@ -28,4 +28,4 @@ def chunkify(msg, max_chunk):
from .client import AsyncClient, Client
-from .serv import AsyncServer, AsyncServerConnection
+from .serv import AsyncServer, AsyncServerConnection, ClientError, ServerError
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index 08e45e79d0..0133a3278f 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -199,7 +199,7 @@ class BBCooker:
self.inotify_modified_files = []
- def _process_inotify_updates(server, cooker, abort):
+ def _process_inotify_updates(server, cooker, halt):
cooker.process_inotify_updates()
return 1.0
@@ -505,7 +505,7 @@ class BBCooker:
logger.debug("Base environment change, triggering reparse")
self.reset()
- def runCommands(self, server, data, abort):
+ def runCommands(self, server, data, halt):
"""
Run any queued asynchronous command
This is done by the idle handler so it runs in true context rather than
@@ -578,7 +578,7 @@ class BBCooker:
if pkgs_to_build[0] in set(ignore.split()):
bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0])
- taskdata, runlist = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True)
+ taskdata, runlist = self.buildTaskData(pkgs_to_build, None, self.configuration.halt, allowincomplete=True)
mc = runlist[0][0]
fn = runlist[0][3]
@@ -607,7 +607,7 @@ class BBCooker:
data.emit_env(env, envdata, True)
logger.plain(env.getvalue())
- # emit the metadata which isnt valid shell
+ # emit the metadata which isn't valid shell
for e in sorted(envdata.keys()):
if envdata.getVarFlag(e, 'func', False) and envdata.getVarFlag(e, 'python', False):
logger.plain("\npython %s () {\n%s}\n", e, envdata.getVar(e, False))
@@ -616,7 +616,7 @@ class BBCooker:
self.disableDataTracking()
self.reset()
- def buildTaskData(self, pkgs_to_build, task, abort, allowincomplete=False):
+ def buildTaskData(self, pkgs_to_build, task, halt, allowincomplete=False):
"""
Prepare a runqueue and taskdata object for iteration over pkgs_to_build
"""
@@ -663,7 +663,7 @@ class BBCooker:
localdata = {}
for mc in self.multiconfigs:
- taskdata[mc] = bb.taskdata.TaskData(abort, skiplist=self.skiplist, allowincomplete=allowincomplete)
+ taskdata[mc] = bb.taskdata.TaskData(halt, skiplist=self.skiplist, allowincomplete=allowincomplete)
localdata[mc] = data.createCopy(self.databuilder.mcdata[mc])
bb.data.expandKeys(localdata[mc])
@@ -737,7 +737,7 @@ class BBCooker:
Prepare a runqueue and taskdata object for iteration over pkgs_to_build
"""
- # We set abort to False here to prevent unbuildable targets raising
+ # We set halt to False here to prevent unbuildable targets raising
# an exception when we're just generating data
taskdata, runlist = self.buildTaskData(pkgs_to_build, task, False, allowincomplete=True)
@@ -1425,7 +1425,7 @@ class BBCooker:
# Setup taskdata structure
taskdata = {}
- taskdata[mc] = bb.taskdata.TaskData(self.configuration.abort)
+ taskdata[mc] = bb.taskdata.TaskData(self.configuration.halt)
taskdata[mc].add_provider(self.databuilder.mcdata[mc], self.recipecaches[mc], item)
if quietlog:
@@ -1441,11 +1441,11 @@ class BBCooker:
rq = bb.runqueue.RunQueue(self, self.data, self.recipecaches, taskdata, runlist)
- def buildFileIdle(server, rq, abort):
+ def buildFileIdle(server, rq, halt):
msg = None
interrupted = 0
- if abort or self.state == state.forceshutdown:
+ if halt or self.state == state.forceshutdown:
rq.finish_runqueue(True)
msg = "Forced shutdown"
interrupted = 2
@@ -1487,10 +1487,10 @@ class BBCooker:
Attempt to build the targets specified
"""
- def buildTargetsIdle(server, rq, abort):
+ def buildTargetsIdle(server, rq, halt):
msg = None
interrupted = 0
- if abort or self.state == state.forceshutdown:
+ if halt or self.state == state.forceshutdown:
rq.finish_runqueue(True)
msg = "Forced shutdown"
interrupted = 2
@@ -1533,7 +1533,7 @@ class BBCooker:
bb.event.fire(bb.event.BuildInit(packages), self.data)
- taskdata, runlist = self.buildTaskData(targets, task, self.configuration.abort)
+ taskdata, runlist = self.buildTaskData(targets, task, self.configuration.halt)
buildname = self.data.getVar("BUILDNAME", False)
@@ -1763,7 +1763,7 @@ class CookerCollectFiles(object):
def __init__(self, priorities, mc=''):
self.mc = mc
self.bbappends = []
- # Priorities is a list of tupples, with the second element as the pattern.
+ # Priorities is a list of tuples, with the second element as the pattern.
# We need to sort the list with the longest pattern first, and so on to
# the shortest. This allows nested layers to be properly evaluated.
self.bbfile_config_priorities = sorted(priorities, key=lambda tup: tup[1], reverse=True)
@@ -2167,6 +2167,8 @@ class CookerParser(object):
self.total)
bb.event.fire(event, self.cfgdata)
+ else:
+ bb.error("Parsing halted due to errors")
for process in self.processes:
self.parser_quit.put(None)
@@ -2257,7 +2259,7 @@ class CookerParser(object):
return False
except bb.BBHandledException as exc:
self.error += 1
- logger.error('Failed to parse recipe: %s' % exc.recipe)
+ logger.debug('Failed to parse recipe: %s' % exc.recipe)
self.shutdown(clean=False, force=True)
return False
except ParsingFailure as exc:
diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py
index 397b43dfa7..fe5696c704 100644
--- a/poky/bitbake/lib/bb/cookerdata.py
+++ b/poky/bitbake/lib/bb/cookerdata.py
@@ -57,7 +57,7 @@ class ConfigParameters(object):
def updateToServer(self, server, environment):
options = {}
- for o in ["abort", "force", "invalidate_stamp",
+ for o in ["halt", "force", "invalidate_stamp",
"dry_run", "dump_signatures",
"extra_assume_provided", "profile",
"prefile", "postfile", "server_timeout",
@@ -124,7 +124,7 @@ class CookerConfiguration(object):
self.prefile = []
self.postfile = []
self.cmd = None
- self.abort = True
+ self.halt = True
self.force = False
self.profile = False
self.nosetscene = False
@@ -247,6 +247,9 @@ class CookerDataBuilder(object):
self.savedenv = bb.data.init()
for k in cookercfg.env:
self.savedenv.setVar(k, cookercfg.env[k])
+ if k in bb.data_smart.bitbake_renamed_vars:
+ bb.error('Variable %s from the shell environment has been renamed to %s' % (k, bb.data_smart.bitbake_renamed_vars[k]))
+ bb.fatal("Exiting to allow enviroment variables to be corrected")
filtered_keys = bb.utils.approved_variables()
bb.data.inheritFromOS(self.basedata, self.savedenv, filtered_keys)
@@ -258,12 +261,12 @@ class CookerDataBuilder(object):
self.data = self.basedata
self.mcdata = {}
- def parseBaseConfiguration(self):
+ def parseBaseConfiguration(self, worker=False):
data_hash = hashlib.sha256()
try:
self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
- if self.data.getVar("BB_WORKERCONTEXT", False) is None:
+ if self.data.getVar("BB_WORKERCONTEXT", False) is None and not worker:
bb.fetch.fetcher_init(self.data)
bb.parse.init_parser(self.data)
bb.codeparser.parser_cache_init(self.data)
@@ -307,6 +310,26 @@ class CookerDataBuilder(object):
logger.exception("Error parsing configuration files")
raise bb.BBHandledException()
+
+ # Handle obsolete variable names
+ d = self.data
+ renamedvars = d.getVarFlags('BB_RENAMED_VARIABLES') or {}
+ renamedvars.update(bb.data_smart.bitbake_renamed_vars)
+ issues = False
+ for v in renamedvars:
+ if d.getVar(v) != None or d.hasOverrides(v):
+ issues = True
+ loginfo = {}
+ history = d.varhistory.get_variable_refs(v)
+ for h in history:
+ for line in history[h]:
+ loginfo = {'file' : h, 'line' : line}
+ bb.data.data_smart._print_rename_error(v, loginfo, renamedvars)
+ if not history:
+ bb.data.data_smart._print_rename_error(v, loginfo, renamedvars)
+ if issues:
+ raise bb.BBHandledException()
+
# Create a copy so we can reset at a later date when UIs disconnect
self.origdata = self.data
self.data = bb.data.createCopy(self.origdata)
@@ -428,7 +451,7 @@ class CookerDataBuilder(object):
for bbclass in bbclasses:
data = _inherit(bbclass, data)
- # Nomally we only register event handlers at the end of parsing .bb files
+ # Normally we only register event handlers at the end of parsing .bb files
# We register any handlers we've found so far here...
for var in data.getVar('__BBHANDLERS', False) or []:
handlerfn = data.getVarFlag(var, "filename", False)
diff --git a/poky/bitbake/lib/bb/daemonize.py b/poky/bitbake/lib/bb/daemonize.py
index 40fabd0c0a..4957bfd4b8 100644
--- a/poky/bitbake/lib/bb/daemonize.py
+++ b/poky/bitbake/lib/bb/daemonize.py
@@ -82,7 +82,7 @@ def createDaemon(function, logfile):
sys.stdout = so
# Have stdout and stderr be the same so log output matches chronologically
- # and there aren't two seperate buffers
+ # and there aren't two separate buffers
sys.stderr = sys.stdout
try:
diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py
index ee5557abfa..5d02bab99b 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -369,7 +369,7 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
#bb.note("Variable %s references %s and calls %s" % (key, str(deps), str(execs)))
#d.setVarFlag(key, "vardeps", deps)
-def generate_dependencies(d, whitelist):
+def generate_dependencies(d, ignored_vars):
keys = set(key for key in d if not key.startswith("__"))
shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False))
@@ -384,7 +384,7 @@ def generate_dependencies(d, whitelist):
newdeps = deps[task]
seen = set()
while newdeps:
- nextdeps = newdeps - whitelist
+ nextdeps = newdeps - ignored_vars
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
@@ -395,7 +395,7 @@ def generate_dependencies(d, whitelist):
#print "For %s: %s" % (task, str(deps[task]))
return tasklist, deps, values
-def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
+def generate_dependency_hash(tasklist, gendeps, lookupcache, ignored_vars, fn):
taskdeps = {}
basehash = {}
@@ -408,7 +408,7 @@ def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
else:
data = [data]
- gendeps[task] -= whitelist
+ gendeps[task] -= ignored_vars
newdeps = gendeps[task]
seen = set()
while newdeps:
@@ -416,9 +416,9 @@ def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
- if dep in whitelist:
+ if dep in ignored_vars:
continue
- gendeps[dep] -= whitelist
+ gendeps[dep] -= ignored_vars
newdeps |= gendeps[dep]
newdeps -= seen
diff --git a/poky/bitbake/lib/bb/data_smart.py b/poky/bitbake/lib/bb/data_smart.py
index 543372d153..8d3825f398 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -33,6 +33,18 @@ __expand_python_regexp__ = re.compile(r"\${@.+?}")
__whitespace_split__ = re.compile(r'(\s)')
__override_regexp__ = re.compile(r'[a-z0-9]+')
+bitbake_renamed_vars = {
+ "BB_ENV_WHITELIST": "BB_ENV_PASSTHROUGH",
+ "BB_ENV_EXTRAWHITE": "BB_ENV_PASSTHROUGH_ADDITIONS",
+ "BB_HASHBASE_WHITELIST": "BB_BASEHASH_IGNORE_VARS",
+ "BB_HASHCONFIG_WHITELIST": "BB_HASHCONFIG_IGNORE_VARS",
+ "BB_HASHTASK_WHITELIST": "BB_TASKHASH_IGNORE_TASKS",
+ "BB_SETSCENE_ENFORCE_WHITELIST": "BB_SETSCENE_ENFORCE_IGNORE_TASKS",
+ "MULTI_PROVIDER_WHITELIST": "BB_MULTI_PROVIDER_ALLOWED",
+ "BB_STAMP_WHITELIST": "is a deprecated variable and support has been removed",
+ "BB_STAMP_POLICY": "is a deprecated variable and support has been removed",
+}
+
def infer_caller_details(loginfo, parent = False, varval = True):
"""Save the caller the trouble of specifying everything."""
# Save effort.
@@ -336,6 +348,16 @@ class VariableHistory(object):
lines.append(line)
return lines
+ def get_variable_refs(self, var):
+ """Return a dict of file/line references"""
+ var_history = self.variable(var)
+ refs = {}
+ for event in var_history:
+ if event['file'] not in refs:
+ refs[event['file']] = []
+ refs[event['file']].append(event['line'])
+ return refs
+
def get_variable_items_files(self, var):
"""
Use variable history to map items added to a list variable and
@@ -370,6 +392,23 @@ class VariableHistory(object):
else:
self.variables[var] = []
+def _print_rename_error(var, loginfo, renamedvars, fullvar=None):
+ info = ""
+ if "file" in loginfo:
+ info = " file: %s" % loginfo["file"]
+ if "line" in loginfo:
+ info += " line: %s" % loginfo["line"]
+ if fullvar and fullvar != var:
+ info += " referenced as: %s" % fullvar
+ if info:
+ info = " (%s)" % info.strip()
+ renameinfo = renamedvars[var]
+ if " " in renameinfo:
+ # A space signals a string to display instead of a rename
+ bb.erroronce('Variable %s %s%s' % (var, renameinfo, info))
+ else:
+ bb.erroronce('Variable %s has been renamed to %s%s' % (var, renameinfo, info))
+
class DataSmart(MutableMapping):
def __init__(self):
self.dict = {}
@@ -377,6 +416,8 @@ class DataSmart(MutableMapping):
self.inchistory = IncludeHistory()
self.varhistory = VariableHistory(self)
self._tracking = False
+ self._var_renames = {}
+ self._var_renames.update(bitbake_renamed_vars)
self.expand_cache = {}
@@ -488,18 +529,26 @@ class DataSmart(MutableMapping):
else:
self.initVar(var)
+ def hasOverrides(self, var):
+ return var in self.overridedata
def setVar(self, var, value, **loginfo):
#print("var=" + str(var) + " val=" + str(value))
if not var.startswith("__anon_") and ("_append" in var or "_prepend" in var or "_remove" in var):
info = "%s" % var
- if "filename" in loginfo:
- info += " file: %s" % loginfo[filename]
- if "lineno" in loginfo:
- info += " line: %s" % loginfo[lineno]
+ if "file" in loginfo:
+ info += " file: %s" % loginfo["file"]
+ if "line" in loginfo:
+ info += " line: %s" % loginfo["line"]
bb.fatal("Variable %s contains an operation using the old override syntax. Please convert this layer/metadata before attempting to use with a newer bitbake." % info)
+ shortvar = var.split(":", 1)[0]
+ if shortvar in self._var_renames:
+ _print_rename_error(shortvar, loginfo, self._var_renames, fullvar=var)
+ # Mark that we have seen a renamed variable
+ self.setVar("_FAILPARSINGERRORHANDLED", True)
+
self.expand_cache = {}
parsing=False
if 'parsing' in loginfo:
@@ -685,6 +734,14 @@ class DataSmart(MutableMapping):
def setVarFlag(self, var, flag, value, **loginfo):
self.expand_cache = {}
+ if var == "BB_RENAMED_VARIABLES":
+ self._var_renames[flag] = value
+
+ if var in self._var_renames:
+ _print_rename_error(var, loginfo, self._var_renames)
+ # Mark that we have seen a renamed variable
+ self.setVar("_FAILPARSINGERRORHANDLED", True)
+
if 'op' not in loginfo:
loginfo['op'] = "set"
loginfo['flag'] = flag
@@ -924,6 +981,7 @@ class DataSmart(MutableMapping):
data.inchistory = self.inchistory.copy()
data._tracking = self._tracking
+ data._var_renames = self._var_renames
data.overrides = None
data.overridevars = copy.copy(self.overridevars)
@@ -946,7 +1004,7 @@ class DataSmart(MutableMapping):
value = self.getVar(variable, False)
for key in keys:
referrervalue = self.getVar(key, False)
- if referrervalue and ref in referrervalue:
+ if referrervalue and isinstance(referrervalue, str) and ref in referrervalue:
self.setVar(key, referrervalue.replace(ref, value))
def localkeys(self):
@@ -1012,10 +1070,10 @@ class DataSmart(MutableMapping):
d = self.createCopy()
bb.data.expandKeys(d)
- config_whitelist = set((d.getVar("BB_HASHCONFIG_WHITELIST") or "").split())
+ config_ignore_vars = set((d.getVar("BB_HASHCONFIG_IGNORE_VARS") or "").split())
keys = set(key for key in iter(d) if not key.startswith("__"))
for key in keys:
- if key in config_whitelist:
+ if key in config_ignore_vars:
continue
value = d.getVar(key, False) or ""
diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py
index 0454c75332..df020551e3 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -40,7 +40,7 @@ class HeartbeatEvent(Event):
"""Triggered at regular time intervals of 10 seconds. Other events can fire much more often
(runQueueTaskStarted when there are many short tasks) or not at all for long periods
of time (again runQueueTaskStarted, when there is just one long-running task), so this
- event is more suitable for doing some task-independent work occassionally."""
+ event is more suitable for doing some task-independent work occasionally."""
def __init__(self, time):
Event.__init__(self)
self.time = time
@@ -486,7 +486,7 @@ class BuildCompleted(BuildBase, OperationCompleted):
BuildBase.__init__(self, n, p, failures)
class DiskFull(Event):
- """Disk full case build aborted"""
+ """Disk full case build halted"""
def __init__(self, dev, type, freespace, mountpoint):
Event.__init__(self)
self._dev = dev
@@ -764,7 +764,7 @@ class LogHandler(logging.Handler):
class MetadataEvent(Event):
"""
Generic event that target for OE-Core classes
- to report information during asynchrous execution
+ to report information during asynchronous execution
"""
def __init__(self, eventtype, eventdata):
Event.__init__(self)
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index d37174185a..5dfe5ff360 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -113,7 +113,7 @@ class MissingParameterError(BBFetchException):
self.args = (missing, url)
class ParameterError(BBFetchException):
- """Exception raised when a url cannot be proccessed due to invalid parameters."""
+ """Exception raised when a url cannot be processed due to invalid parameters."""
def __init__(self, message, url):
msg = "URL: '%s' has invalid parameters. %s" % (url, message)
self.url = url
@@ -182,7 +182,7 @@ class URI(object):
Some notes about relative URIs: while it's specified that
a URI beginning with <scheme>:// should either be directly
followed by a hostname or a /, the old URI handling of the
- fetch2 library did not comform to this. Therefore, this URI
+ fetch2 library did not conform to this. Therefore, this URI
class has some kludges to make sure that URIs are parsed in
a way comforming to bitbake's current usage. This URI class
supports the following:
@@ -199,7 +199,7 @@ class URI(object):
file://hostname/absolute/path.diff (would be IETF compliant)
Note that the last case only applies to a list of
- "whitelisted" schemes (currently only file://), that requires
+ explicitly allowed schemes (currently only file://), that requires
its URIs to not have a network location.
"""
@@ -473,10 +473,13 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
basename = os.path.basename(ud.localpath)
if basename:
uri_basename = os.path.basename(uri_decoded[loc])
- if uri_basename and basename != uri_basename and result_decoded[loc].endswith(uri_basename):
- result_decoded[loc] = result_decoded[loc].replace(uri_basename, basename)
- elif not result_decoded[loc].endswith(basename):
- result_decoded[loc] = os.path.join(result_decoded[loc], basename)
+ # Prefix with a slash as a sentinel in case
+ # result_decoded[loc] does not contain one.
+ path = "/" + result_decoded[loc]
+ if uri_basename and basename != uri_basename and path.endswith("/" + uri_basename):
+ result_decoded[loc] = path[1:-len(uri_basename)] + basename
+ elif not path.endswith("/" + basename):
+ result_decoded[loc] = os.path.join(path[1:], basename)
else:
return None
result = encodeurl(result_decoded)
@@ -762,6 +765,7 @@ def get_srcrev(d, method_name='sortable_revision'):
that fetcher provides a method with the given name and the same signature as sortable_revision.
"""
+ d.setVar("__BBSEENSRCREV", "1")
recursion = d.getVar("__BBINSRCREV")
if recursion:
raise FetchError("There are recursive references in fetcher variables, likely through SRC_URI")
@@ -847,6 +851,17 @@ FETCH_EXPORT_VARS = ['HOME', 'PATH',
'AWS_SECRET_ACCESS_KEY',
'AWS_DEFAULT_REGION']
+def get_fetcher_environment(d):
+ newenv = {}
+ origenv = d.getVar("BB_ORIGENV")
+ for name in bb.fetch2.FETCH_EXPORT_VARS:
+ value = d.getVar(name)
+ if not value and origenv:
+ value = origenv.getVar(name)
+ if value:
+ newenv[name] = value
+ return newenv
+
def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
"""
Run cmd returning the command output
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index 30da8e95b7..b3c5e6dacc 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -399,7 +399,7 @@ class Git(FetchMethod):
if self._contains_lfs(ud, d, ud.clonedir) and self._need_lfs(ud):
# Unpack temporary working copy, use it to run 'git checkout' to force pre-fetching
- # of all LFS blobs needed at the the srcrev.
+ # of all LFS blobs needed at the srcrev.
#
# It would be nice to just do this inline here by running 'git-lfs fetch'
# on the bare clonedir, but that operation requires a working copy on some
@@ -727,6 +727,12 @@ class Git(FetchMethod):
"""
Compute the HEAD revision for the url
"""
+ if not d.getVar("__BBSEENSRCREV"):
+ raise bb.fetch2.FetchError("Recipe uses a floating tag/branch without a fixed SRCREV yet doesn't call bb.fetch2.get_srcrev() (use SRCPV in PV for OE).")
+
+ # Ensure we mark as not cached
+ bb.fetch2.get_autorev(d)
+
output = self._lsremote(ud, d, "")
# Tags of the form ^{} may not work, need to fallback to other form
if ud.unresolvedrev[name][:5] == "refs/" or ud.usehead:
diff --git a/poky/bitbake/lib/bb/fetch2/npm.py b/poky/bitbake/lib/bb/fetch2/npm.py
index b3a3a444ee..8f7c10ac9b 100644
--- a/poky/bitbake/lib/bb/fetch2/npm.py
+++ b/poky/bitbake/lib/bb/fetch2/npm.py
@@ -52,9 +52,13 @@ def npm_filename(package, version):
"""Get the filename of a npm package"""
return npm_package(package) + "-" + version + ".tgz"
-def npm_localfile(package, version):
+def npm_localfile(package, version=None):
"""Get the local filename of a npm package"""
- return os.path.join("npm2", npm_filename(package, version))
+ if version is not None:
+ filename = npm_filename(package, version)
+ else:
+ filename = package
+ return os.path.join("npm2", filename)
def npm_integrity(integrity):
"""
@@ -157,7 +161,7 @@ class Npm(FetchMethod):
# Using the 'downloadfilename' parameter as local filename
# or the npm package name.
if "downloadfilename" in ud.parm:
- ud.localfile = d.expand(ud.parm["downloadfilename"])
+ ud.localfile = npm_localfile(d.expand(ud.parm["downloadfilename"]))
else:
ud.localfile = npm_localfile(ud.package, ud.version)
diff --git a/poky/bitbake/lib/bb/fetch2/npmsw.py b/poky/bitbake/lib/bb/fetch2/npmsw.py
index 879ba5de0f..a8c4d3528f 100644
--- a/poky/bitbake/lib/bb/fetch2/npmsw.py
+++ b/poky/bitbake/lib/bb/fetch2/npmsw.py
@@ -117,7 +117,7 @@ class NpmShrinkWrap(FetchMethod):
# Handle http tarball sources
elif version.startswith("http") and integrity:
- localfile = os.path.join("npm2", os.path.basename(version))
+ localfile = npm_localfile(os.path.basename(version))
uri = URI(version)
uri.params["downloadfilename"] = localfile
diff --git a/poky/bitbake/lib/bb/fetch2/wget.py b/poky/bitbake/lib/bb/fetch2/wget.py
index 253cabce75..b3a3de571a 100644
--- a/poky/bitbake/lib/bb/fetch2/wget.py
+++ b/poky/bitbake/lib/bb/fetch2/wget.py
@@ -228,7 +228,7 @@ class Wget(FetchMethod):
# We let the request fail and expect it to be
# tried once more ("try_again" in check_status()),
# with the dead connection removed from the cache.
- # If it still fails, we give up, which can happend for bad
+ # If it still fails, we give up, which can happen for bad
# HTTP proxy settings.
fetch.connection_cache.remove_connection(h.host, h.port)
raise urllib.error.URLError(err)
@@ -315,15 +315,7 @@ class Wget(FetchMethod):
# Avoid tramping the environment too much by using bb.utils.environment
# to scope the changes to the build_opener request, which is when the
# environment lookups happen.
- newenv = {}
- for name in bb.fetch2.FETCH_EXPORT_VARS:
- value = d.getVar(name)
- if not value:
- origenv = d.getVar("BB_ORIGENV")
- if origenv:
- value = origenv.getVar(name)
- if value:
- newenv[name] = value
+ newenv = bb.fetch2.get_fetcher_environment(d)
with bb.utils.environment(**newenv):
import ssl
diff --git a/poky/bitbake/lib/bb/main.py b/poky/bitbake/lib/bb/main.py
index 639fc1885d..93eda3632e 100755
--- a/poky/bitbake/lib/bb/main.py
+++ b/poky/bitbake/lib/bb/main.py
@@ -127,7 +127,7 @@ def create_bitbake_parser():
help="Execute tasks from a specific .bb recipe directly. WARNING: Does "
"not handle any dependencies from other recipes.")
- parser.add_option("-k", "--continue", action="store_false", dest="abort", default=True,
+ parser.add_option("-k", "--continue", action="store_false", dest="halt", default=True,
help="Continue as much as possible after an error. While the target that "
"failed and anything depending on it cannot be built, as much as "
"possible will be built before stopping.")
diff --git a/poky/bitbake/lib/bb/monitordisk.py b/poky/bitbake/lib/bb/monitordisk.py
index 98f2109ed2..8d8cfbb937 100644
--- a/poky/bitbake/lib/bb/monitordisk.py
+++ b/poky/bitbake/lib/bb/monitordisk.py
@@ -76,7 +76,12 @@ def getDiskData(BBDirs):
return None
action = pathSpaceInodeRe.group(1)
- if action not in ("ABORT", "STOPTASKS", "WARN"):
+ if action == "ABORT":
+ # Emit a deprecation warning
+ logger.warnonce("The BB_DISKMON_DIRS \"ABORT\" action has been been renamed to \"HALT\", update configuration")
+ action = "HALT"
+
+ if action not in ("HALT", "STOPTASKS", "WARN"):
printErr("Unknown disk space monitor action: %s" % action)
return None
@@ -177,7 +182,7 @@ class diskMonitor:
# use them to avoid printing too many warning messages
self.preFreeS = {}
self.preFreeI = {}
- # This is for STOPTASKS and ABORT, to avoid printing the message
+ # This is for STOPTASKS and HALT, to avoid printing the message
# repeatedly while waiting for the tasks to finish
self.checked = {}
for k in self.devDict:
@@ -219,8 +224,8 @@ class diskMonitor:
self.checked[k] = True
rq.finish_runqueue(False)
bb.event.fire(bb.event.DiskFull(dev, 'disk', freeSpace, path), self.configuration)
- elif action == "ABORT" and not self.checked[k]:
- logger.error("Immediately abort since the disk space monitor action is \"ABORT\"!")
+ elif action == "HALT" and not self.checked[k]:
+ logger.error("Immediately halt since the disk space monitor action is \"HALT\"!")
self.checked[k] = True
rq.finish_runqueue(True)
bb.event.fire(bb.event.DiskFull(dev, 'disk', freeSpace, path), self.configuration)
@@ -245,8 +250,8 @@ class diskMonitor:
self.checked[k] = True
rq.finish_runqueue(False)
bb.event.fire(bb.event.DiskFull(dev, 'inode', freeInode, path), self.configuration)
- elif action == "ABORT" and not self.checked[k]:
- logger.error("Immediately abort since the disk space monitor action is \"ABORT\"!")
+ elif action == "HALT" and not self.checked[k]:
+ logger.error("Immediately halt since the disk space monitor action is \"HALT\"!")
self.checked[k] = True
rq.finish_runqueue(True)
bb.event.fire(bb.event.DiskFull(dev, 'inode', freeInode, path), self.configuration)
diff --git a/poky/bitbake/lib/bb/msg.py b/poky/bitbake/lib/bb/msg.py
index 291b38ff7f..c95a874beb 100644
--- a/poky/bitbake/lib/bb/msg.py
+++ b/poky/bitbake/lib/bb/msg.py
@@ -30,7 +30,9 @@ class BBLogFormatter(logging.Formatter):
PLAIN = logging.INFO + 1
VERBNOTE = logging.INFO + 2
ERROR = logging.ERROR
+ ERRORONCE = logging.ERROR - 1
WARNING = logging.WARNING
+ WARNONCE = logging.WARNING - 1
CRITICAL = logging.CRITICAL
levelnames = {
@@ -42,7 +44,9 @@ class BBLogFormatter(logging.Formatter):
PLAIN : '',
VERBNOTE: 'NOTE',
WARNING : 'WARNING',
+ WARNONCE : 'WARNING',
ERROR : 'ERROR',
+ ERRORONCE : 'ERROR',
CRITICAL: 'ERROR',
}
@@ -58,7 +62,9 @@ class BBLogFormatter(logging.Formatter):
PLAIN : BASECOLOR,
VERBNOTE: BASECOLOR,
WARNING : YELLOW,
+ WARNONCE : YELLOW,
ERROR : RED,
+ ERRORONCE : RED,
CRITICAL: RED,
}
@@ -121,6 +127,23 @@ class BBLogFilter(object):
return True
return False
+class LogFilterShowOnce(logging.Filter):
+ def __init__(self):
+ self.seen_warnings = set()
+ self.seen_errors = set()
+
+ def filter(self, record):
+ msg = record.msg
+ if record.levelno == bb.msg.BBLogFormatter.WARNONCE:
+ if record.msg in self.seen_warnings:
+ return False
+ self.seen_warnings.add(record.msg)
+ if record.levelno == bb.msg.BBLogFormatter.ERRORONCE:
+ if record.msg in self.seen_errors:
+ return False
+ self.seen_errors.add(record.msg)
+ return True
+
class LogFilterGEQLevel(logging.Filter):
def __init__(self, level):
self.strlevel = str(level)
@@ -206,6 +229,7 @@ def logger_create(name, output=sys.stderr, level=logging.INFO, preserve_handlers
"""Standalone logger creation function"""
logger = logging.getLogger(name)
console = logging.StreamHandler(output)
+ console.addFilter(bb.msg.LogFilterShowOnce())
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
if color == 'always' or (color == 'auto' and output.isatty()):
format.enable_color()
@@ -293,10 +317,17 @@ def setLoggingConfig(defaultconfig, userconfigfile=None):
# Convert all level parameters to integers in case users want to use the
# bitbake defined level names
- for h in logconfig["handlers"].values():
+ for name, h in logconfig["handlers"].items():
if "level" in h:
h["level"] = bb.msg.stringToLevel(h["level"])
+ # Every handler needs its own instance of the once filter.
+ once_filter_name = name + ".showonceFilter"
+ logconfig.setdefault("filters", {})[once_filter_name] = {
+ "()": "bb.msg.LogFilterShowOnce",
+ }
+ h.setdefault("filters", []).append(once_filter_name)
+
for l in logconfig["loggers"].values():
if "level" in l:
l["level"] = bb.msg.stringToLevel(l["level"])
diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py
index 31bcc8e7ac..4b1b44ce19 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -333,6 +333,10 @@ def runAnonFuncs(d):
def finalize(fn, d, variant = None):
saved_handlers = bb.event.get_handlers().copy()
try:
+ # Found renamed variables. Exit immediately
+ if d.getVar("_FAILPARSINGERRORHANDLED", False) == True:
+ raise bb.BBHandledException()
+
for var in d.getVar('__BBHANDLERS', False) or []:
# try to add the handler
handlerfn = d.getVarFlag(var, "filename", False)
diff --git a/poky/bitbake/lib/bb/persist_data.py b/poky/bitbake/lib/bb/persist_data.py
index 49c9a0d510..9e20a837a4 100644
--- a/poky/bitbake/lib/bb/persist_data.py
+++ b/poky/bitbake/lib/bb/persist_data.py
@@ -63,7 +63,7 @@ class SQLTable(collections.abc.MutableMapping):
"""
Decorator that starts a database transaction and creates a database
cursor for performing queries. If no exception is thrown, the
- database results are commited. If an exception occurs, the database
+ database results are committed. If an exception occurs, the database
is rolled back. In all cases, the cursor is closed after the
function ends.
diff --git a/poky/bitbake/lib/bb/process.py b/poky/bitbake/lib/bb/process.py
index af5d804a1d..be2c15a188 100644
--- a/poky/bitbake/lib/bb/process.py
+++ b/poky/bitbake/lib/bb/process.py
@@ -142,7 +142,7 @@ def _logged_communicate(pipe, log, input, extrafiles):
while pipe.poll() is None:
read_all_pipes(log, rin, outdata, errdata)
- # Pocess closed, drain all pipes...
+ # Process closed, drain all pipes...
read_all_pipes(log, rin, outdata, errdata)
finally:
log.flush()
diff --git a/poky/bitbake/lib/bb/progress.py b/poky/bitbake/lib/bb/progress.py
index 52d704d642..9518be77fb 100644
--- a/poky/bitbake/lib/bb/progress.py
+++ b/poky/bitbake/lib/bb/progress.py
@@ -148,7 +148,7 @@ class MultiStageProgressReporter:
for tasks made up of python code spread across multiple
classes / functions - the progress reporter object can
be passed around or stored at the object level and calls
- to next_stage() and update() made whereever needed.
+ to next_stage() and update() made wherever needed.
"""
def __init__(self, d, stage_weights, debug=False):
"""
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 8ae3fe85f1..a7a84630d7 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -385,9 +385,9 @@ class RunQueueData:
self.rq = rq
self.warn_multi_bb = False
- self.multi_provider_whitelist = (cfgData.getVar("MULTI_PROVIDER_WHITELIST") or "").split()
- self.setscenewhitelist = get_setscene_enforce_whitelist(cfgData, targets)
- self.setscenewhitelist_checked = False
+ self.multi_provider_allowed = (cfgData.getVar("BB_MULTI_PROVIDER_ALLOWED") or "").split()
+ self.setscene_ignore_tasks = get_setscene_enforce_ignore_tasks(cfgData, targets)
+ self.setscene_ignore_tasks_checked = False
self.setscene_enforce = (cfgData.getVar('BB_SETSCENE_ENFORCE') == "1")
self.init_progress_reporter = bb.progress.DummyMultiStageProcessProgressReporter()
@@ -485,7 +485,7 @@ class RunQueueData:
msgs.append(" Task %s (dependent Tasks %s)\n" % (dep, self.runq_depends_names(self.runtaskentries[dep].depends)))
msgs.append("\n")
if len(valid_chains) > 10:
- msgs.append("Aborted dependency loops search after 10 matches.\n")
+ msgs.append("Halted dependency loops search after 10 matches.\n")
raise TooManyLoops
continue
scan = False
@@ -989,7 +989,7 @@ class RunQueueData:
# Check to make sure we still have tasks to run
if not self.runtaskentries:
- if not taskData[''].abort:
+ if not taskData[''].halt:
bb.msg.fatal("RunQueue", "All buildable tasks have been run but the build is incomplete (--continue mode). Errors for the tasks that failed will have been printed above.")
else:
bb.msg.fatal("RunQueue", "No active tasks and not in --continue mode?! Please report this bug.")
@@ -1048,7 +1048,7 @@ class RunQueueData:
for prov in prov_list:
if len(prov_list[prov]) < 2:
continue
- if prov in self.multi_provider_whitelist:
+ if prov in self.multi_provider_allowed:
continue
seen_pn = []
# If two versions of the same PN are being built its fatal, we don't support it.
@@ -1424,7 +1424,7 @@ class RunQueue:
"""
Run the tasks in a queue prepared by rqdata.prepare()
Upon failure, optionally try to recover the build using any alternate providers
- (if the abort on failure configuration option isn't set)
+ (if the halt on failure configuration option isn't set)
"""
retval = True
@@ -1929,7 +1929,7 @@ class RunQueueExecute:
bb.event.fire(runQueueTaskFailed(task, self.stats, exitcode, self.rq, fakeroot_log=("".join(fakeroot_log) or None)), self.cfgData)
- if self.rqdata.taskData[''].abort:
+ if self.rqdata.taskData[''].halt:
self.rq.state = runQueueCleanUp
def task_skip(self, task, reason):
@@ -2107,9 +2107,9 @@ class RunQueueExecute:
if task is not None:
(mc, fn, taskname, taskfn) = split_tid_mcfn(task)
- if self.rqdata.setscenewhitelist is not None:
- if self.check_setscenewhitelist(task):
- self.task_fail(task, "setscene whitelist")
+ if self.rqdata.setscene_ignore_tasks is not None:
+ if self.check_setscene_ignore_tasks(task):
+ self.task_fail(task, "setscene ignore_tasks")
return True
if task in self.tasks_covered:
@@ -2392,7 +2392,7 @@ class RunQueueExecute:
self.tasks_scenequeue_done.remove(tid)
for dep in self.sqdata.sq_covered_tasks[tid]:
if dep in self.runq_complete and dep not in self.runq_tasksrun:
- bb.error("Task %s marked as completed but now needing to rerun? Aborting build." % dep)
+ bb.error("Task %s marked as completed but now needing to rerun? Halting build." % dep)
self.failed_tids.append(tid)
self.rq.state = runQueueCleanUp
return
@@ -2501,11 +2501,11 @@ class RunQueueExecute:
self.scenequeue_updatecounters(task)
def sq_check_taskfail(self, task):
- if self.rqdata.setscenewhitelist is not None:
+ if self.rqdata.setscene_ignore_tasks is not None:
realtask = task.split('_setscene')[0]
(mc, fn, taskname, taskfn) = split_tid_mcfn(realtask)
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
- if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist):
+ if not check_setscene_enforce_ignore_tasks(pn, taskname, self.rqdata.setscene_ignore_tasks):
logger.error('Task %s.%s failed' % (pn, taskname + "_setscene"))
self.rq.state = runQueueCleanUp
@@ -2568,8 +2568,8 @@ class RunQueueExecute:
#bb.note("Task %s: " % task + str(taskdepdata).replace("], ", "],\n"))
return taskdepdata
- def check_setscenewhitelist(self, tid):
- # Check task that is going to run against the whitelist
+ def check_setscene_ignore_tasks(self, tid):
+ # Check task that is going to run against the ignore tasks list
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
# Ignore covered tasks
if tid in self.tasks_covered:
@@ -2583,7 +2583,7 @@ class RunQueueExecute:
return False
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
- if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist):
+ if not check_setscene_enforce_ignore_tasks(pn, taskname, self.rqdata.setscene_ignore_tasks):
if tid in self.rqdata.runq_setscene_tids:
msg = ['Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname)]
else:
@@ -2710,7 +2710,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
if tid in rqdata.runq_setscene_tids:
pass
elif sq_revdeps_squash[tid]:
- bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, aborting. Please report this problem.")
+ bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, halting. Please report this problem.")
else:
del sq_revdeps_squash[tid]
rqdata.init_progress_reporter.update(taskcounter)
@@ -3070,12 +3070,12 @@ class runQueuePipe():
print("Warning, worker left partial message: %s" % self.queue)
self.input.close()
-def get_setscene_enforce_whitelist(d, targets):
+def get_setscene_enforce_ignore_tasks(d, targets):
if d.getVar('BB_SETSCENE_ENFORCE') != '1':
return None
- whitelist = (d.getVar("BB_SETSCENE_ENFORCE_WHITELIST") or "").split()
+ ignore_tasks = (d.getVar("BB_SETSCENE_ENFORCE_IGNORE_TASKS") or "").split()
outlist = []
- for item in whitelist[:]:
+ for item in ignore_tasks[:]:
if item.startswith('%:'):
for (mc, target, task, fn) in targets:
outlist.append(target + ':' + item.split(':')[1])
@@ -3083,12 +3083,12 @@ def get_setscene_enforce_whitelist(d, targets):
outlist.append(item)
return outlist
-def check_setscene_enforce_whitelist(pn, taskname, whitelist):
+def check_setscene_enforce_ignore_tasks(pn, taskname, ignore_tasks):
import fnmatch
- if whitelist is not None:
+ if ignore_tasks is not None:
item = '%s:%s' % (pn, taskname)
- for whitelist_item in whitelist:
- if fnmatch.fnmatch(item, whitelist_item):
+ for ignore_tasks in ignore_tasks:
+ if fnmatch.fnmatch(item, ignore_tasks):
return True
return False
return True
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index e0ec736dff..ebba452592 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -172,8 +172,8 @@ class SignatureGeneratorBasic(SignatureGenerator):
self.gendeps = {}
self.lookupcache = {}
self.setscenetasks = set()
- self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST") or "").split())
- self.taskwhitelist = None
+ self.basehash_ignore_vars = set((data.getVar("BB_BASEHASH_IGNORE_VARS") or "").split())
+ self.taskhash_ignore_tasks = None
self.init_rundepcheck(data)
checksum_cache_file = data.getVar("BB_HASH_CHECKSUM_CACHE_FILE")
if checksum_cache_file:
@@ -188,18 +188,18 @@ class SignatureGeneratorBasic(SignatureGenerator):
self.tidtopn = {}
def init_rundepcheck(self, data):
- self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None
- if self.taskwhitelist:
- self.twl = re.compile(self.taskwhitelist)
+ self.taskhash_ignore_tasks = data.getVar("BB_TASKHASH_IGNORE_TASKS") or None
+ if self.taskhash_ignore_tasks:
+ self.twl = re.compile(self.taskhash_ignore_tasks)
else:
self.twl = None
def _build_data(self, fn, d):
ignore_mismatch = ((d.getVar("BB_HASH_IGNORE_MISMATCH") or '') == '1')
- tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d, self.basewhitelist)
+ tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d, self.basehash_ignore_vars)
- taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, self.basewhitelist, fn)
+ taskdeps, basehash = bb.data.generate_dependency_hash(tasklist, gendeps, lookupcache, self.basehash_ignore_vars, fn)
for task in tasklist:
tid = fn + ":" + task
@@ -253,7 +253,8 @@ class SignatureGeneratorBasic(SignatureGenerator):
def rundep_check(self, fn, recipename, task, dep, depname, dataCaches):
# Return True if we should keep the dependency, False to drop it
- # We only manipulate the dependencies for packages not in the whitelist
+ # We only manipulate the dependencies for packages not in the ignore
+ # list
if self.twl and not self.twl.search(recipename):
# then process the actual dependencies
if self.twl.search(depname):
@@ -372,15 +373,15 @@ class SignatureGeneratorBasic(SignatureGenerator):
data = {}
data['task'] = task
- data['basewhitelist'] = self.basewhitelist
- data['taskwhitelist'] = self.taskwhitelist
+ data['basehash_ignore_vars'] = self.basehash_ignore_vars
+ data['taskhash_ignore_tasks'] = self.taskhash_ignore_tasks
data['taskdeps'] = self.taskdeps[fn][task]
data['basehash'] = self.basehash[tid]
data['gendeps'] = {}
data['varvals'] = {}
data['varvals'][task] = self.lookupcache[fn][task]
for dep in self.taskdeps[fn][task]:
- if dep in self.basewhitelist:
+ if dep in self.basehash_ignore_vars:
continue
data['gendeps'][dep] = self.gendeps[fn][dep]
data['varvals'][dep] = self.lookupcache[fn][dep]
@@ -583,7 +584,7 @@ class SignatureGeneratorUniHashMixIn(object):
if self.setscenetasks and tid not in self.setscenetasks:
return
- # This can happen if locked sigs are in action. Detect and just abort
+ # This can happen if locked sigs are in action. Detect and just exit
if taskhash != self.taskhash[tid]:
return
@@ -794,6 +795,16 @@ def clean_basepaths_list(a):
b.append(clean_basepath(x))
return b
+# Handled renamed fields
+def handle_renames(data):
+ if 'basewhitelist' in data:
+ data['basehash_ignore_vars'] = data['basewhitelist']
+ del data['basewhitelist']
+ if 'taskwhitelist' in data:
+ data['taskhash_ignore_tasks'] = data['taskwhitelist']
+ del data['taskwhitelist']
+
+
def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False):
output = []
@@ -819,13 +830,16 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False):
with bb.compress.zstd.open(b, "rt", encoding="utf-8", num_threads=1) as f:
b_data = json.load(f, object_hook=SetDecoder)
- def dict_diff(a, b, whitelist=set()):
+ for data in [a_data, b_data]:
+ handle_renames(data)
+
+ def dict_diff(a, b, ignored_vars=set()):
sa = set(a.keys())
sb = set(b.keys())
common = sa & sb
changed = set()
for i in common:
- if a[i] != b[i] and i not in whitelist:
+ if a[i] != b[i] and i not in ignored_vars:
changed.add(i)
added = sb - sa
removed = sa - sb
@@ -864,15 +878,15 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False):
removed = [x[0] for x in removed]
return changed, added, removed
- if 'basewhitelist' in a_data and a_data['basewhitelist'] != b_data['basewhitelist']:
- output.append(color_format("{color_title}basewhitelist changed{color_default} from '%s' to '%s'") % (a_data['basewhitelist'], b_data['basewhitelist']))
- if a_data['basewhitelist'] and b_data['basewhitelist']:
- output.append("changed items: %s" % a_data['basewhitelist'].symmetric_difference(b_data['basewhitelist']))
+ if 'basehash_ignore_vars' in a_data and a_data['basehash_ignore_vars'] != b_data['basehash_ignore_vars']:
+ output.append(color_format("{color_title}basehash_ignore_vars changed{color_default} from '%s' to '%s'") % (a_data['basehash_ignore_vars'], b_data['basehash_ignore_vars']))
+ if a_data['basehash_ignore_vars'] and b_data['basehash_ignore_vars']:
+ output.append("changed items: %s" % a_data['basehash_ignore_vars'].symmetric_difference(b_data['basehash_ignore_vars']))
- if 'taskwhitelist' in a_data and a_data['taskwhitelist'] != b_data['taskwhitelist']:
- output.append(color_format("{color_title}taskwhitelist changed{color_default} from '%s' to '%s'") % (a_data['taskwhitelist'], b_data['taskwhitelist']))
- if a_data['taskwhitelist'] and b_data['taskwhitelist']:
- output.append("changed items: %s" % a_data['taskwhitelist'].symmetric_difference(b_data['taskwhitelist']))
+ if 'taskhash_ignore_tasks' in a_data and a_data['taskhash_ignore_tasks'] != b_data['taskhash_ignore_tasks']:
+ output.append(color_format("{color_title}taskhash_ignore_tasks changed{color_default} from '%s' to '%s'") % (a_data['taskhash_ignore_tasks'], b_data['taskhash_ignore_tasks']))
+ if a_data['taskhash_ignore_tasks'] and b_data['taskhash_ignore_tasks']:
+ output.append("changed items: %s" % a_data['taskhash_ignore_tasks'].symmetric_difference(b_data['taskhash_ignore_tasks']))
if a_data['taskdeps'] != b_data['taskdeps']:
output.append(color_format("{color_title}Task dependencies changed{color_default} from:\n%s\nto:\n%s") % (sorted(a_data['taskdeps']), sorted(b_data['taskdeps'])))
@@ -880,7 +894,7 @@ def compare_sigfiles(a, b, recursecb=None, color=False, collapsed=False):
if a_data['basehash'] != b_data['basehash'] and not collapsed:
output.append(color_format("{color_title}basehash changed{color_default} from %s to %s") % (a_data['basehash'], b_data['basehash']))
- changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'], a_data['basewhitelist'] & b_data['basewhitelist'])
+ changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'], a_data['basehash_ignore_vars'] & b_data['basehash_ignore_vars'])
if changed:
for dep in sorted(changed):
output.append(color_format("{color_title}List of dependencies for variable %s changed from '{color_default}%s{color_title}' to '{color_default}%s{color_title}'") % (dep, a_data['gendeps'][dep], b_data['gendeps'][dep]))
@@ -1054,9 +1068,11 @@ def dump_sigfile(a):
with bb.compress.zstd.open(a, "rt", encoding="utf-8", num_threads=1) as f:
a_data = json.load(f, object_hook=SetDecoder)
- output.append("basewhitelist: %s" % (sorted(a_data['basewhitelist'])))
+ handle_renames(a_data)
+
+ output.append("basehash_ignore_vars: %s" % (sorted(a_data['basehash_ignore_vars'])))
- output.append("taskwhitelist: %s" % (sorted(a_data['taskwhitelist'] or [])))
+ output.append("taskhash_ignore_tasks: %s" % (sorted(a_data['taskhash_ignore_tasks'] or [])))
output.append("Task dependencies: %s" % (sorted(a_data['taskdeps'])))
diff --git a/poky/bitbake/lib/bb/taskdata.py b/poky/bitbake/lib/bb/taskdata.py
index 7bfcdb8414..66545a65af 100644
--- a/poky/bitbake/lib/bb/taskdata.py
+++ b/poky/bitbake/lib/bb/taskdata.py
@@ -39,7 +39,7 @@ class TaskData:
"""
BitBake Task Data implementation
"""
- def __init__(self, abort = True, skiplist = None, allowincomplete = False):
+ def __init__(self, halt = True, skiplist = None, allowincomplete = False):
self.build_targets = {}
self.run_targets = {}
@@ -57,7 +57,7 @@ class TaskData:
self.failed_rdeps = []
self.failed_fns = []
- self.abort = abort
+ self.halt = halt
self.allowincomplete = allowincomplete
self.skiplist = skiplist
@@ -328,7 +328,7 @@ class TaskData:
try:
self.add_provider_internal(cfgData, dataCache, item)
except bb.providers.NoProvider:
- if self.abort:
+ if self.halt:
raise
self.remove_buildtarget(item)
@@ -479,7 +479,7 @@ class TaskData:
fn = tid.rsplit(":",1)[0]
self.fail_fn(fn, missing_list)
- if self.abort and target in self.external_targets:
+ if self.halt and target in self.external_targets:
logger.error("Required build target '%s' has no buildable providers.\nMissing or unbuildable dependency chain was: %s", target, missing_list)
raise bb.providers.NoProvider(target)
@@ -516,7 +516,7 @@ class TaskData:
self.add_provider_internal(cfgData, dataCache, target)
added = added + 1
except bb.providers.NoProvider:
- if self.abort and target in self.external_targets and not self.allowincomplete:
+ if self.halt and target in self.external_targets and not self.allowincomplete:
raise
if not self.allowincomplete:
self.remove_buildtarget(target)
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index ec7d83c959..eff12b7c50 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -18,7 +18,7 @@ from bb.tests.support.httpserver import HTTPService
def skipIfNoNetwork():
if os.environ.get("BB_SKIP_NETTESTS") == "yes":
- return unittest.skip("Network tests being skipped")
+ return unittest.skip("network test")
return lambda f: f
class URITest(unittest.TestCase):
@@ -393,37 +393,53 @@ class FetcherTest(unittest.TestCase):
bb.process.run('chmod u+rw -R %s' % self.tempdir)
bb.utils.prunedir(self.tempdir)
+ def git(self, cmd, cwd=None):
+ if isinstance(cmd, str):
+ cmd = 'git ' + cmd
+ else:
+ cmd = ['git'] + cmd
+ if cwd is None:
+ cwd = self.gitdir
+ return bb.process.run(cmd, cwd=cwd)[0]
+
+ def git_init(self, cwd=None):
+ self.git('init', cwd=cwd)
+ if not self.git(['config', 'user.email'], cwd=cwd):
+ self.git(['config', 'user.email', 'you@example.com'], cwd=cwd)
+ if not self.git(['config', 'user.name'], cwd=cwd):
+ self.git(['config', 'user.name', 'Your Name'], cwd=cwd)
+
class MirrorUriTest(FetcherTest):
replaceuris = {
- ("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "http://somewhere.org/somedir/")
+ ("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "http://somewhere.org/somedir/")
: "http://somewhere.org/somedir/git2_git.invalid.infradead.org.mtd-utils.git.tar.gz",
- ("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/somedir/\\2;protocol=http")
- : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
- ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/somedir/\\2;protocol=http")
- : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
- ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/\\2;protocol=http")
- : "git://somewhere.org/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
+ ("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/somedir/\\2;protocol=http")
+ : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
+ ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/somedir/\\2;protocol=http")
+ : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
+ ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/\\2;protocol=http")
+ : "git://somewhere.org/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890", "git://someserver.org/bitbake", "git://git.openembedded.org/bitbake")
: "git://git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890",
- ("file://sstate-xyz.tgz", "file://.*", "file:///somewhere/1234/sstate-cache")
+ ("file://sstate-xyz.tgz", "file://.*", "file:///somewhere/1234/sstate-cache")
: "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz",
- ("file://sstate-xyz.tgz", "file://.*", "file:///somewhere/1234/sstate-cache/")
+ ("file://sstate-xyz.tgz", "file://.*", "file:///somewhere/1234/sstate-cache/")
: "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz",
- ("http://somewhere.org/somedir1/somedir2/somefile_1.2.3.tar.gz", "http://.*/.*", "http://somewhere2.org/somedir3")
+ ("http://somewhere.org/somedir1/somedir2/somefile_1.2.3.tar.gz", "http://.*/.*", "http://somewhere2.org/somedir3")
: "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz",
- ("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz")
+ ("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz")
: "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz",
("http://www.apache.org/dist/subversion/subversion-1.7.1.tar.bz2", "http://www.apache.org/dist", "http://archive.apache.org/dist")
: "http://archive.apache.org/dist/subversion/subversion-1.7.1.tar.bz2",
("http://www.apache.org/dist/subversion/subversion-1.7.1.tar.bz2", "http://.*/.*", "file:///somepath/downloads/")
: "file:///somepath/downloads/subversion-1.7.1.tar.bz2",
- ("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/BASENAME;protocol=http")
- : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
- ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/BASENAME;protocol=http")
- : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
- ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/MIRRORNAME;protocol=http")
- : "git://somewhere.org/somedir/git.invalid.infradead.org.foo.mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
+ ("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/BASENAME;protocol=http")
+ : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
+ ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/BASENAME;protocol=http")
+ : "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
+ ("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/MIRRORNAME;protocol=http")
+ : "git://somewhere.org/somedir/git.invalid.infradead.org.foo.mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
("http://somewhere.org/somedir1/somedir2/somefile_1.2.3.tar.gz", "http://.*/.*", "http://somewhere2.org")
: "http://somewhere2.org/somefile_1.2.3.tar.gz",
("http://somewhere.org/somedir1/somedir2/somefile_1.2.3.tar.gz", "http://.*/.*", "http://somewhere2.org/")
@@ -434,18 +450,21 @@ class MirrorUriTest(FetcherTest):
: "git://user2@git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http",
("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890;protocol=git;branch=master", "git://someserver.org/bitbake", "git://someotherserver.org/bitbake;protocol=https")
: "git://someotherserver.org/bitbake;tag=1234567890123456789012345678901234567890;protocol=https;branch=master",
-
("gitsm://git.qemu.org/git/seabios.git/;protocol=https;name=roms/seabios;subpath=roms/seabios;bareclone=1;nobranch=1;rev=1234567890123456789012345678901234567890", "gitsm://.*/.*", "http://petalinux.xilinx.com/sswreleases/rel-v${XILINX_VER_MAIN}/downloads") : "http://petalinux.xilinx.com/sswreleases/rel-v%24%7BXILINX_VER_MAIN%7D/downloads/git2_git.qemu.org.git.seabios.git..tar.gz",
+ ("https://somewhere.org/example/1.0.0/example;downloadfilename=some-example-1.0.0.tgz", "https://.*/.*", "file:///mirror/PATH")
+ : "file:///mirror/example/1.0.0/some-example-1.0.0.tgz;downloadfilename=some-example-1.0.0.tgz",
+ ("https://somewhere.org/example-1.0.0.tgz;downloadfilename=some-example-1.0.0.tgz", "https://.*/.*", "file:///mirror/some-example-1.0.0.tgz")
+ : "file:///mirror/some-example-1.0.0.tgz;downloadfilename=some-example-1.0.0.tgz",
#Renaming files doesn't work
#("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz") : "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz"
#("file://sstate-xyz.tgz", "file://.*/.*", "file:///somewhere/1234/sstate-cache") : "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz",
}
- mirrorvar = "http://.*/.* file:///somepath/downloads/ \n" \
- "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n" \
- "https://.*/.* file:///someotherpath/downloads/ \n" \
- "http://.*/.* file:///someotherpath/downloads/ \n"
+ mirrorvar = "http://.*/.* file:///somepath/downloads/ " \
+ "git://someserver.org/bitbake git://git.openembedded.org/bitbake " \
+ "https://.*/.* file:///someotherpath/downloads/ " \
+ "http://.*/.* file:///someotherpath/downloads/"
def test_urireplace(self):
for k, v in self.replaceuris.items():
@@ -470,8 +489,8 @@ class MirrorUriTest(FetcherTest):
def test_mirror_of_mirror(self):
# Test if mirror of a mirror works
- mirrorvar = self.mirrorvar + " http://.*/.* http://otherdownloads.yoctoproject.org/downloads/ \n"
- mirrorvar = mirrorvar + " http://otherdownloads.yoctoproject.org/.* http://downloads2.yoctoproject.org/downloads/ \n"
+ mirrorvar = self.mirrorvar + " http://.*/.* http://otherdownloads.yoctoproject.org/downloads/"
+ mirrorvar = mirrorvar + " http://otherdownloads.yoctoproject.org/.* http://downloads2.yoctoproject.org/downloads/"
fetcher = bb.fetch.FetchData("http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", self.d)
mirrors = bb.fetch2.mirror_from_string(mirrorvar)
uris, uds = bb.fetch2.build_mirroruris(fetcher, mirrors, self.d)
@@ -480,8 +499,8 @@ class MirrorUriTest(FetcherTest):
'http://otherdownloads.yoctoproject.org/downloads/bitbake-1.0.tar.gz',
'http://downloads2.yoctoproject.org/downloads/bitbake-1.0.tar.gz'])
- recmirrorvar = "https://.*/[^/]* http://AAAA/A/A/A/ \n" \
- "https://.*/[^/]* https://BBBB/B/B/B/ \n"
+ recmirrorvar = "https://.*/[^/]* http://AAAA/A/A/A/ " \
+ "https://.*/[^/]* https://BBBB/B/B/B/"
def test_recursive(self):
fetcher = bb.fetch.FetchData("https://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", self.d)
@@ -495,15 +514,15 @@ class MirrorUriTest(FetcherTest):
class GitDownloadDirectoryNamingTest(FetcherTest):
def setUp(self):
super(GitDownloadDirectoryNamingTest, self).setUp()
- self.recipe_url = "git://git.openembedded.org/bitbake"
+ self.recipe_url = "git://git.openembedded.org/bitbake;branch=master"
self.recipe_dir = "git.openembedded.org.bitbake"
- self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
+ self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https;branch=master"
self.mirror_dir = "github.com.openembedded.bitbake.git"
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
def setup_mirror_rewrite(self):
- self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url + " \n")
+ self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url)
@skipIfNoNetwork()
def test_that_directory_is_named_after_recipe_url_when_no_mirroring_is_used(self):
@@ -543,16 +562,16 @@ class GitDownloadDirectoryNamingTest(FetcherTest):
class TarballNamingTest(FetcherTest):
def setUp(self):
super(TarballNamingTest, self).setUp()
- self.recipe_url = "git://git.openembedded.org/bitbake"
+ self.recipe_url = "git://git.openembedded.org/bitbake;branch=master"
self.recipe_tarball = "git2_git.openembedded.org.bitbake.tar.gz"
- self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
+ self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https;branch=master"
self.mirror_tarball = "git2_github.com.openembedded.bitbake.git.tar.gz"
self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '1')
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
def setup_mirror_rewrite(self):
- self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url + " \n")
+ self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url)
@skipIfNoNetwork()
def test_that_the_recipe_tarball_is_created_when_no_mirroring_is_used(self):
@@ -577,9 +596,9 @@ class TarballNamingTest(FetcherTest):
class GitShallowTarballNamingTest(FetcherTest):
def setUp(self):
super(GitShallowTarballNamingTest, self).setUp()
- self.recipe_url = "git://git.openembedded.org/bitbake"
+ self.recipe_url = "git://git.openembedded.org/bitbake;branch=master"
self.recipe_tarball = "gitshallow_git.openembedded.org.bitbake_82ea737-1_master.tar.gz"
- self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
+ self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https;branch=master"
self.mirror_tarball = "gitshallow_github.com.openembedded.bitbake.git_82ea737-1_master.tar.gz"
self.d.setVar('BB_GIT_SHALLOW', '1')
@@ -587,7 +606,7 @@ class GitShallowTarballNamingTest(FetcherTest):
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
def setup_mirror_rewrite(self):
- self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url + " \n")
+ self.d.setVar("PREMIRRORS", self.recipe_url + " " + self.mirror_url)
@skipIfNoNetwork()
def test_that_the_tarball_is_named_after_recipe_url_when_no_mirroring_is_used(self):
@@ -699,28 +718,23 @@ class FetcherLocalTest(FetcherTest):
# Create dummy local Git repo
src_dir = tempfile.mkdtemp(dir=self.tempdir,
prefix='gitfetch_localusehead_')
- src_dir = os.path.abspath(src_dir)
- bb.process.run("git init", cwd=src_dir)
- bb.process.run("git config user.email 'you@example.com'", cwd=src_dir)
- bb.process.run("git config user.name 'Your Name'", cwd=src_dir)
- bb.process.run("git commit --allow-empty -m'Dummy commit'",
- cwd=src_dir)
+ self.gitdir = os.path.abspath(src_dir)
+ self.git_init()
+ self.git(['commit', '--allow-empty', '-m', 'Dummy commit'])
# Use other branch than master
- bb.process.run("git checkout -b my-devel", cwd=src_dir)
- bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
- cwd=src_dir)
- stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
- orig_rev = stdout[0].strip()
+ self.git(['checkout', '-b', 'my-devel'])
+ self.git(['commit', '--allow-empty', '-m', 'Dummy commit 2'])
+ orig_rev = self.git(['rev-parse', 'HEAD']).strip()
# Fetch and check revision
self.d.setVar("SRCREV", "AUTOINC")
- url = "git://" + src_dir + ";protocol=file;" + suffix
+ self.d.setVar("__BBSEENSRCREV", "1")
+ url = "git://" + self.gitdir + ";branch=master;protocol=file;" + suffix
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
fetcher.unpack(self.unpackdir)
- stdout = bb.process.run("git rev-parse HEAD",
- cwd=os.path.join(self.unpackdir, 'git'))
- unpack_rev = stdout[0].strip()
+ unpack_rev = self.git(['rev-parse', 'HEAD'],
+ cwd=os.path.join(self.unpackdir, 'git')).strip()
self.assertEqual(orig_rev, unpack_rev)
def test_local_gitfetch_usehead(self):
@@ -867,14 +881,14 @@ class FetcherNetworkTest(FetcherTest):
@skipIfNoNetwork()
def test_fetch_mirror_of_mirror(self):
- self.d.setVar("MIRRORS", "http://.*/.* http://invalid2.yoctoproject.org/ \n http://invalid2.yoctoproject.org/.* https://downloads.yoctoproject.org/releases/bitbake")
+ self.d.setVar("MIRRORS", "http://.*/.* http://invalid2.yoctoproject.org/ http://invalid2.yoctoproject.org/.* https://downloads.yoctoproject.org/releases/bitbake")
fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d)
fetcher.download()
self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
@skipIfNoNetwork()
def test_fetch_file_mirror_of_mirror(self):
- self.d.setVar("MIRRORS", "http://.*/.* file:///some1where/ \n file:///some1where/.* file://some2where/ \n file://some2where/.* https://downloads.yoctoproject.org/releases/bitbake")
+ self.d.setVar("MIRRORS", "http://.*/.* file:///some1where/ file:///some1where/.* file://some2where/ file://some2where/.* https://downloads.yoctoproject.org/releases/bitbake")
fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d)
os.mkdir(self.dldir + "/some2where")
fetcher.download()
@@ -920,7 +934,8 @@ class FetcherNetworkTest(FetcherTest):
def gitfetcher(self, url1, url2):
def checkrevision(self, fetcher):
fetcher.unpack(self.unpackdir)
- revision = bb.process.run("git rev-parse HEAD", shell=True, cwd=self.unpackdir + "/git")[0].strip()
+ revision = self.git(['rev-parse', 'HEAD'],
+ cwd=os.path.join(self.unpackdir, 'git')).strip()
self.assertEqual(revision, "270a05b0b4ba0959fe0624d2a4885d7b70426da5")
self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1")
@@ -938,19 +953,19 @@ class FetcherNetworkTest(FetcherTest):
@skipIfNoNetwork()
def test_gitfetch(self):
- url1 = url2 = "git://git.openembedded.org/bitbake"
+ url1 = url2 = "git://git.openembedded.org/bitbake;branch=master"
self.gitfetcher(url1, url2)
@skipIfNoNetwork()
def test_gitfetch_goodsrcrev(self):
# SRCREV is set but matches rev= parameter
- url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5"
+ url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5;branch=master"
self.gitfetcher(url1, url2)
@skipIfNoNetwork()
def test_gitfetch_badsrcrev(self):
# SRCREV is set but does not match rev= parameter
- url1 = url2 = "git://git.openembedded.org/bitbake;rev=dead05b0b4ba0959fe0624d2a4885d7b70426da5"
+ url1 = url2 = "git://git.openembedded.org/bitbake;rev=dead05b0b4ba0959fe0624d2a4885d7b70426da5;branch=master"
self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2)
@skipIfNoNetwork()
@@ -965,7 +980,7 @@ class FetcherNetworkTest(FetcherTest):
# `usehead=1' and instead fetch the specified SRCREV. See
# test_local_gitfetch_usehead() for a positive use of the usehead
# feature.
- url = "git://git.openembedded.org/bitbake;usehead=1"
+ url = "git://git.openembedded.org/bitbake;usehead=1;branch=master"
self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
@skipIfNoNetwork()
@@ -974,20 +989,20 @@ class FetcherNetworkTest(FetcherTest):
# `usehead=1' and instead fetch the specified SRCREV. See
# test_local_gitfetch_usehead() for a positive use of the usehead
# feature.
- url = "git://git.openembedded.org/bitbake;usehead=1;name=newName"
+ url = "git://git.openembedded.org/bitbake;usehead=1;name=newName;branch=master"
self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
@skipIfNoNetwork()
def test_gitfetch_finds_local_tarball_for_mirrored_url_when_previous_downloaded_by_the_recipe_url(self):
- recipeurl = "git://git.openembedded.org/bitbake"
- mirrorurl = "git://someserver.org/bitbake"
- self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
+ recipeurl = "git://git.openembedded.org/bitbake;branch=master"
+ mirrorurl = "git://someserver.org/bitbake;branch=master"
+ self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake")
self.gitfetcher(recipeurl, mirrorurl)
@skipIfNoNetwork()
def test_gitfetch_finds_local_tarball_when_previous_downloaded_from_a_premirror(self):
- recipeurl = "git://someserver.org/bitbake"
- self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
+ recipeurl = "git://someserver.org/bitbake;branch=master"
+ self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake")
self.gitfetcher(recipeurl, recipeurl)
@skipIfNoNetwork()
@@ -996,16 +1011,16 @@ class FetcherNetworkTest(FetcherTest):
recipeurl = "git://someserver.org/bitbake"
self.sourcedir = self.unpackdir.replace("unpacked", "sourcemirror.git")
os.chdir(self.tempdir)
- bb.process.run("git clone %s %s 2> /dev/null" % (realurl, self.sourcedir), shell=True)
- self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file \n" % (recipeurl, self.sourcedir))
+ self.git(['clone', realurl, self.sourcedir], cwd=self.tempdir)
+ self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file" % (recipeurl, self.sourcedir))
self.gitfetcher(recipeurl, recipeurl)
@skipIfNoNetwork()
def test_git_submodule(self):
# URL with ssh submodules
- url = "gitsm://git.yoctoproject.org/git-submodule-test;branch=ssh-gitsm-tests;rev=049da4a6cb198d7c0302e9e8b243a1443cb809a7"
+ url = "gitsm://git.yoctoproject.org/git-submodule-test;branch=ssh-gitsm-tests;rev=049da4a6cb198d7c0302e9e8b243a1443cb809a7;branch=master"
# Original URL (comment this if you have ssh access to git.yoctoproject.org)
- url = "gitsm://git.yoctoproject.org/git-submodule-test;branch=master;rev=a2885dd7d25380d23627e7544b7bbb55014b16ee"
+ url = "gitsm://git.yoctoproject.org/git-submodule-test;branch=master;rev=a2885dd7d25380d23627e7544b7bbb55014b16ee;branch=master"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
@@ -1095,7 +1110,7 @@ class FetcherNetworkTest(FetcherTest):
""" Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
# This repository also has submodules where the module (name), path and url do not align
- url = "gitsm://github.com/azure/iotedge.git;protocol=https;rev=d76e0316c6f324345d77c48a83ce836d09392699"
+ url = "gitsm://github.com/azure/iotedge.git;protocol=https;rev=d76e0316c6f324345d77c48a83ce836d09392699;branch=main"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
@@ -1201,43 +1216,43 @@ class SVNTest(FetcherTest):
class TrustedNetworksTest(FetcherTest):
def test_trusted_network(self):
# Ensure trusted_network returns False when the host IS in the list.
- url = "git://Someserver.org/foo;rev=1"
+ url = "git://Someserver.org/foo;rev=1;branch=master"
self.d.setVar("BB_ALLOWED_NETWORKS", "server1.org someserver.org server2.org server3.org")
self.assertTrue(bb.fetch.trusted_network(self.d, url))
def test_wild_trusted_network(self):
# Ensure trusted_network returns true when the *.host IS in the list.
- url = "git://Someserver.org/foo;rev=1"
+ url = "git://Someserver.org/foo;rev=1;branch=master"
self.d.setVar("BB_ALLOWED_NETWORKS", "server1.org *.someserver.org server2.org server3.org")
self.assertTrue(bb.fetch.trusted_network(self.d, url))
def test_prefix_wild_trusted_network(self):
# Ensure trusted_network returns true when the prefix matches *.host.
- url = "git://git.Someserver.org/foo;rev=1"
+ url = "git://git.Someserver.org/foo;rev=1;branch=master"
self.d.setVar("BB_ALLOWED_NETWORKS", "server1.org *.someserver.org server2.org server3.org")
self.assertTrue(bb.fetch.trusted_network(self.d, url))
def test_two_prefix_wild_trusted_network(self):
# Ensure trusted_network returns true when the prefix matches *.host.
- url = "git://something.git.Someserver.org/foo;rev=1"
+ url = "git://something.git.Someserver.org/foo;rev=1;branch=master"
self.d.setVar("BB_ALLOWED_NETWORKS", "server1.org *.someserver.org server2.org server3.org")
self.assertTrue(bb.fetch.trusted_network(self.d, url))
def test_port_trusted_network(self):
# Ensure trusted_network returns True, even if the url specifies a port.
- url = "git://someserver.org:8080/foo;rev=1"
+ url = "git://someserver.org:8080/foo;rev=1;branch=master"
self.d.setVar("BB_ALLOWED_NETWORKS", "someserver.org")
self.assertTrue(bb.fetch.trusted_network(self.d, url))
def test_untrusted_network(self):
# Ensure trusted_network returns False when the host is NOT in the list.
- url = "git://someserver.org/foo;rev=1"
+ url = "git://someserver.org/foo;rev=1;branch=master"
self.d.setVar("BB_ALLOWED_NETWORKS", "server1.org server2.org server3.org")
self.assertFalse(bb.fetch.trusted_network(self.d, url))
def test_wild_untrusted_network(self):
# Ensure trusted_network returns False when the host is NOT in the list.
- url = "git://*.someserver.org/foo;rev=1"
+ url = "git://*.someserver.org/foo;rev=1;branch=master"
self.d.setVar("BB_ALLOWED_NETWORKS", "server1.org server2.org server3.org")
self.assertFalse(bb.fetch.trusted_network(self.d, url))
@@ -1275,32 +1290,32 @@ class FetchLatestVersionTest(FetcherTest):
: "1.99.4",
# version pattern "vX.Y"
# mirror of git.infradead.org since network issues interfered with testing
- ("mtd-utils", "git://git.yoctoproject.org/mtd-utils.git", "ca39eb1d98e736109c64ff9c1aa2a6ecca222d8f", "")
+ ("mtd-utils", "git://git.yoctoproject.org/mtd-utils.git;branch=master", "ca39eb1d98e736109c64ff9c1aa2a6ecca222d8f", "")
: "1.5.0",
# version pattern "pkg_name-X.Y"
# mirror of git://anongit.freedesktop.org/git/xorg/proto/presentproto since network issues interfered with testing
- ("presentproto", "git://git.yoctoproject.org/bbfetchtests-presentproto", "24f3a56e541b0a9e6c6ee76081f441221a120ef9", "")
+ ("presentproto", "git://git.yoctoproject.org/bbfetchtests-presentproto;branch=master", "24f3a56e541b0a9e6c6ee76081f441221a120ef9", "")
: "1.0",
# version pattern "pkg_name-vX.Y.Z"
- ("dtc", "git://git.yoctoproject.org/bbfetchtests-dtc.git", "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf", "")
+ ("dtc", "git://git.yoctoproject.org/bbfetchtests-dtc.git;branch=master", "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf", "")
: "1.4.0",
# combination version pattern
- ("sysprof", "git://gitlab.gnome.org/GNOME/sysprof.git;protocol=https", "cd44ee6644c3641507fb53b8a2a69137f2971219", "")
+ ("sysprof", "git://gitlab.gnome.org/GNOME/sysprof.git;protocol=https;branch=master", "cd44ee6644c3641507fb53b8a2a69137f2971219", "")
: "1.2.0",
("u-boot-mkimage", "git://git.denx.de/u-boot.git;branch=master;protocol=git", "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c", "")
: "2014.01",
# version pattern "yyyymmdd"
- ("mobile-broadband-provider-info", "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https", "4ed19e11c2975105b71b956440acdb25d46a347d", "")
+ ("mobile-broadband-provider-info", "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https;branch=master", "4ed19e11c2975105b71b956440acdb25d46a347d", "")
: "20120614",
# packages with a valid UPSTREAM_CHECK_GITTAGREGEX
# mirror of git://anongit.freedesktop.org/xorg/driver/xf86-video-omap since network issues interfered with testing
- ("xf86-video-omap", "git://git.yoctoproject.org/bbfetchtests-xf86-video-omap", "ae0394e687f1a77e966cf72f895da91840dffb8f", r"(?P<pver>(\d+\.(\d\.?)*))")
+ ("xf86-video-omap", "git://git.yoctoproject.org/bbfetchtests-xf86-video-omap;branch=master", "ae0394e687f1a77e966cf72f895da91840dffb8f", r"(?P<pver>(\d+\.(\d\.?)*))")
: "0.4.3",
- ("build-appliance-image", "git://git.yoctoproject.org/poky", "b37dd451a52622d5b570183a81583cc34c2ff555", r"(?P<pver>(([0-9][\.|_]?)+[0-9]))")
+ ("build-appliance-image", "git://git.yoctoproject.org/poky;branch=master", "b37dd451a52622d5b570183a81583cc34c2ff555", r"(?P<pver>(([0-9][\.|_]?)+[0-9]))")
: "11.0.0",
("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot;protocol=https", "cd437ecbd8986c894442f8fce1e0061e20f04dee", r"chkconfig\-(?P<pver>((\d+[\.\-_]*)+))")
: "1.3.59",
- ("remake", "git://github.com/rocky/remake.git;protocol=https", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))")
+ ("remake", "git://github.com/rocky/remake.git;protocol=https;branch=master", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))")
: "3.82+dbg0.9",
}
@@ -1437,9 +1452,7 @@ class GitMakeShallowTest(FetcherTest):
FetcherTest.setUp(self)
self.gitdir = os.path.join(self.tempdir, 'gitshallow')
bb.utils.mkdirhier(self.gitdir)
- bb.process.run('git init', cwd=self.gitdir)
- bb.process.run('git config user.email "you@example.com"', cwd=self.gitdir)
- bb.process.run('git config user.name "Your Name"', cwd=self.gitdir)
+ self.git_init()
def assertRefs(self, expected_refs):
actual_refs = self.git(['for-each-ref', '--format=%(refname)']).splitlines()
@@ -1453,13 +1466,6 @@ class GitMakeShallowTest(FetcherTest):
actual_count = len(revs.splitlines())
self.assertEqual(expected_count, actual_count, msg='Object count `%d` is not the expected `%d`' % (actual_count, expected_count))
- def git(self, cmd):
- if isinstance(cmd, str):
- cmd = 'git ' + cmd
- else:
- cmd = ['git'] + cmd
- return bb.process.run(cmd, cwd=self.gitdir)[0]
-
def make_shallow(self, args=None):
if args is None:
args = ['HEAD']
@@ -1562,15 +1568,13 @@ class GitShallowTest(FetcherTest):
self.srcdir = os.path.join(self.tempdir, 'gitsource')
bb.utils.mkdirhier(self.srcdir)
- self.git('init', cwd=self.srcdir)
- self.git('config user.email "you@example.com"', cwd=self.srcdir)
- self.git('config user.name "Your Name"', cwd=self.srcdir)
+ self.git_init(cwd=self.srcdir)
self.d.setVar('WORKDIR', self.tempdir)
self.d.setVar('S', self.gitdir)
self.d.delVar('PREMIRRORS')
self.d.delVar('MIRRORS')
- uri = 'git://%s;protocol=file;subdir=${S}' % self.srcdir
+ uri = 'git://%s;protocol=file;subdir=${S};branch=master' % self.srcdir
self.d.setVar('SRC_URI', uri)
self.d.setVar('SRCREV', '${AUTOREV}')
self.d.setVar('AUTOREV', '${@bb.fetch2.get_autorev(d)}')
@@ -1578,6 +1582,7 @@ class GitShallowTest(FetcherTest):
self.d.setVar('BB_GIT_SHALLOW', '1')
self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '0')
self.d.setVar('BB_GENERATE_SHALLOW_TARBALLS', '1')
+ self.d.setVar("__BBSEENSRCREV", "1")
def assertRefs(self, expected_refs, cwd=None):
if cwd is None:
@@ -1595,15 +1600,6 @@ class GitShallowTest(FetcherTest):
actual_count = len(revs.splitlines())
self.assertEqual(expected_count, actual_count, msg='Object count `%d` is not the expected `%d`' % (actual_count, expected_count))
- def git(self, cmd, cwd=None):
- if isinstance(cmd, str):
- cmd = 'git ' + cmd
- else:
- cmd = ['git'] + cmd
- if cwd is None:
- cwd = self.gitdir
- return bb.process.run(cmd, cwd=cwd)[0]
-
def add_empty_file(self, path, cwd=None, msg=None):
if msg is None:
msg = path
@@ -1798,9 +1794,7 @@ class GitShallowTest(FetcherTest):
smdir = os.path.join(self.tempdir, 'gitsubmodule')
bb.utils.mkdirhier(smdir)
- self.git('init', cwd=smdir)
- self.git('config user.email "you@example.com"', cwd=smdir)
- self.git('config user.name "Your Name"', cwd=smdir)
+ self.git_init(cwd=smdir)
# Make this look like it was cloned from a remote...
self.git('config --add remote.origin.url "%s"' % smdir, cwd=smdir)
self.git('config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"', cwd=smdir)
@@ -1812,7 +1806,7 @@ class GitShallowTest(FetcherTest):
self.git('submodule update', cwd=self.srcdir)
self.git('commit -m submodule -a', cwd=self.srcdir)
- uri = 'gitsm://%s;protocol=file;subdir=${S}' % self.srcdir
+ uri = 'gitsm://%s;protocol=file;subdir=${S};branch=master' % self.srcdir
fetcher, ud = self.fetch_shallow(uri)
# Verify the main repository is shallow
@@ -1830,9 +1824,7 @@ class GitShallowTest(FetcherTest):
smdir = os.path.join(self.tempdir, 'gitsubmodule')
bb.utils.mkdirhier(smdir)
- self.git('init', cwd=smdir)
- self.git('config user.email "you@example.com"', cwd=smdir)
- self.git('config user.name "Your Name"', cwd=smdir)
+ self.git_init(cwd=smdir)
# Make this look like it was cloned from a remote...
self.git('config --add remote.origin.url "%s"' % smdir, cwd=smdir)
self.git('config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"', cwd=smdir)
@@ -1852,7 +1844,7 @@ class GitShallowTest(FetcherTest):
# Set up the mirror
mirrordir = os.path.join(self.tempdir, 'mirror')
bb.utils.rename(self.dldir, mirrordir)
- self.d.setVar('PREMIRRORS', 'gitsm://.*/.* file://%s/\n' % mirrordir)
+ self.d.setVar('PREMIRRORS', 'gitsm://.*/.* file://%s/' % mirrordir)
# Fetch from the mirror
bb.utils.remove(self.dldir, recurse=True)
@@ -1878,7 +1870,7 @@ class GitShallowTest(FetcherTest):
self.git('commit --author "Foo Bar <foo@bar>" -m annex-c -a', cwd=self.srcdir)
bb.process.run('chmod u+w -R %s' % self.srcdir)
- uri = 'gitannex://%s;protocol=file;subdir=${S}' % self.srcdir
+ uri = 'gitannex://%s;protocol=file;subdir=${S};branch=master' % self.srcdir
fetcher, ud = self.fetch_shallow(uri)
self.assertRevCount(1)
@@ -1967,7 +1959,7 @@ class GitShallowTest(FetcherTest):
# Set up the mirror
mirrordir = os.path.join(self.tempdir, 'mirror')
bb.utils.mkdirhier(mirrordir)
- self.d.setVar('PREMIRRORS', 'git://.*/.* file://%s/\n' % mirrordir)
+ self.d.setVar('PREMIRRORS', 'git://.*/.* file://%s/' % mirrordir)
bb.utils.rename(os.path.join(self.dldir, mirrortarball),
os.path.join(mirrordir, mirrortarball))
@@ -2125,7 +2117,7 @@ class GitShallowTest(FetcherTest):
self.d.setVar('SRCREV', 'e5939ff608b95cdd4d0ab0e1935781ab9a276ac0')
self.d.setVar('BB_GIT_SHALLOW', '1')
self.d.setVar('BB_GENERATE_SHALLOW_TARBALLS', '1')
- fetcher = bb.fetch.Fetch(["git://git.yoctoproject.org/fstests"], self.d)
+ fetcher = bb.fetch.Fetch(["git://git.yoctoproject.org/fstests;branch=master"], self.d)
fetcher.download()
bb.utils.remove(self.dldir + "/*.tar.gz")
@@ -2140,7 +2132,7 @@ class GitLfsTest(FetcherTest):
self.gitdir = os.path.join(self.tempdir, 'git')
self.srcdir = os.path.join(self.tempdir, 'gitsource')
-
+
self.d.setVar('WORKDIR', self.tempdir)
self.d.setVar('S', self.gitdir)
self.d.delVar('PREMIRRORS')
@@ -2148,25 +2140,15 @@ class GitLfsTest(FetcherTest):
self.d.setVar('SRCREV', '${AUTOREV}')
self.d.setVar('AUTOREV', '${@bb.fetch2.get_autorev(d)}')
+ self.d.setVar("__BBSEENSRCREV", "1")
bb.utils.mkdirhier(self.srcdir)
- self.git('init', cwd=self.srcdir)
- self.git('config user.email "you@example.com"', cwd=self.srcdir)
- self.git('config user.name "Your Name"', cwd=self.srcdir)
+ self.git_init(cwd=self.srcdir)
with open(os.path.join(self.srcdir, '.gitattributes'), 'wt') as attrs:
attrs.write('*.mp3 filter=lfs -text')
self.git(['add', '.gitattributes'], cwd=self.srcdir)
self.git(['commit', '-m', "attributes", '.gitattributes'], cwd=self.srcdir)
- def git(self, cmd, cwd=None):
- if isinstance(cmd, str):
- cmd = 'git ' + cmd
- else:
- cmd = ['git'] + cmd
- if cwd is None:
- cwd = self.gitdir
- return bb.process.run(cmd, cwd=cwd)[0]
-
def fetch(self, uri=None, download=True):
uris = self.d.getVar('SRC_URI').split()
uri = uris[0]
@@ -2181,7 +2163,7 @@ class GitLfsTest(FetcherTest):
def test_lfs_enabled(self):
import shutil
- uri = 'git://%s;protocol=file;lfs=1' % self.srcdir
+ uri = 'git://%s;protocol=file;lfs=1;branch=master' % self.srcdir
self.d.setVar('SRC_URI', uri)
# Careful: suppress initial attempt at downloading until
@@ -2206,7 +2188,7 @@ class GitLfsTest(FetcherTest):
def test_lfs_disabled(self):
import shutil
- uri = 'git://%s;protocol=file;lfs=0' % self.srcdir
+ uri = 'git://%s;protocol=file;lfs=0;branch=master' % self.srcdir
self.d.setVar('SRC_URI', uri)
# In contrast to test_lfs_enabled(), allow the implicit download
@@ -2230,13 +2212,13 @@ class GitLfsTest(FetcherTest):
class GitURLWithSpacesTest(FetcherTest):
test_git_urls = {
- "git://tfs-example.org:22/tfs/example%20path/example.git" : {
- 'url': 'git://tfs-example.org:22/tfs/example%20path/example.git',
+ "git://tfs-example.org:22/tfs/example%20path/example.git;branch=master" : {
+ 'url': 'git://tfs-example.org:22/tfs/example%20path/example.git;branch=master',
'gitsrcname': 'tfs-example.org.22.tfs.example_path.example.git',
'path': '/tfs/example path/example.git'
},
- "git://tfs-example.org:22/tfs/example%20path/example%20repo.git" : {
- 'url': 'git://tfs-example.org:22/tfs/example%20path/example%20repo.git',
+ "git://tfs-example.org:22/tfs/example%20path/example%20repo.git;branch=master" : {
+ 'url': 'git://tfs-example.org:22/tfs/example%20path/example%20repo.git;branch=master',
'gitsrcname': 'tfs-example.org.22.tfs.example_path.example_repo.git',
'path': '/tfs/example path/example repo.git'
}
@@ -2261,6 +2243,7 @@ class GitURLWithSpacesTest(FetcherTest):
self.assertEqual(ud.fullmirror, os.path.join(self.dldir, "git2_" + ref['gitsrcname'] + '.tar.gz'))
class CrateTest(FetcherTest):
+ @skipIfNoNetwork()
def test_crate_url(self):
uri = "crate://crates.io/glob/0.2.11"
@@ -2277,6 +2260,7 @@ class CrateTest(FetcherTest):
self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/.cargo-checksum.json"))
self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/src/lib.rs"))
+ @skipIfNoNetwork()
def test_crate_url_multi(self):
uri = "crate://crates.io/glob/0.2.11 crate://crates.io/time/0.1.35"
@@ -2299,7 +2283,7 @@ class NPMTest(FetcherTest):
def skipIfNoNpm():
import shutil
if not shutil.which('npm'):
- return unittest.skip('npm not installed, tests being skipped')
+ return unittest.skip('npm not installed')
return lambda f: f
@skipIfNoNpm()
@@ -2344,15 +2328,24 @@ class NPMTest(FetcherTest):
ud = fetcher.ud[fetcher.urls[0]]
fetcher.download()
self.assertTrue(os.path.exists(ud.localpath))
- # Setup the mirror
- pkgname = os.path.basename(ud.proxy.urls[0].split(';')[0])
+
+ # Setup the mirror by renaming the download directory
mirrordir = os.path.join(self.tempdir, 'mirror')
- bb.utils.mkdirhier(mirrordir)
- os.replace(ud.localpath, os.path.join(mirrordir, pkgname))
- self.d.setVar('PREMIRRORS', 'https?$://.*/.* file://%s/\n' % mirrordir)
+ bb.utils.rename(self.dldir, mirrordir)
+ os.mkdir(self.dldir)
+
+ # Configure the premirror to be used
+ self.d.setVar('PREMIRRORS', 'https?$://.*/.* file://%s/npm2' % mirrordir)
self.d.setVar('BB_FETCH_PREMIRRORONLY', '1')
+
# Fetch again
self.assertFalse(os.path.exists(ud.localpath))
+ # The npm fetcher doesn't handle that the .resolved file disappears
+ # while the fetcher object exists, which it does when we rename the
+ # download directory to "mirror" above. Thus we need a new fetcher to go
+ # with the now empty download directory.
+ fetcher = bb.fetch.Fetch([url], self.d)
+ ud = fetcher.ud[fetcher.urls[0]]
fetcher.download()
self.assertTrue(os.path.exists(ud.localpath))
@@ -2370,7 +2363,7 @@ class NPMTest(FetcherTest):
bb.utils.mkdirhier(mirrordir)
mirrorfilename = os.path.join(mirrordir, os.path.basename(ud.localpath))
os.replace(ud.localpath, mirrorfilename)
- self.d.setVar('PREMIRRORS', 'https?$://.*/.* file://%s\n' % mirrorfilename)
+ self.d.setVar('PREMIRRORS', 'https?$://.*/.* file://%s' % mirrorfilename)
self.d.setVar('BB_FETCH_PREMIRRORONLY', '1')
# Fetch again
self.assertFalse(os.path.exists(ud.localpath))
@@ -2390,7 +2383,7 @@ class NPMTest(FetcherTest):
mirrordir = os.path.join(self.tempdir, 'mirror')
bb.utils.mkdirhier(mirrordir)
os.replace(ud.localpath, os.path.join(mirrordir, os.path.basename(ud.localpath)))
- self.d.setVar('MIRRORS', 'https?$://.*/.* file://%s/\n' % mirrordir)
+ self.d.setVar('MIRRORS', 'https?$://.*/.* file://%s/' % mirrordir)
# Update the resolved url to an invalid url
with open(ud.resolvefile, 'r') as f:
url = f.read()
@@ -2409,7 +2402,7 @@ class NPMTest(FetcherTest):
url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0;destsuffix=foo/bar;downloadfilename=foo-bar.tgz'
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
- self.assertTrue(os.path.exists(os.path.join(self.dldir, 'foo-bar.tgz')))
+ self.assertTrue(os.path.exists(os.path.join(self.dldir, 'npm2', 'foo-bar.tgz')))
fetcher.unpack(self.unpackdir)
unpackdir = os.path.join(self.unpackdir, 'foo', 'bar')
self.assertTrue(os.path.exists(os.path.join(unpackdir, 'package.json')))
@@ -2706,7 +2699,7 @@ class NPMTest(FetcherTest):
mirrordir = os.path.join(self.tempdir, 'mirror')
bb.utils.mkdirhier(mirrordir)
os.replace(ud.localpath, os.path.join(mirrordir, os.path.basename(ud.localpath)))
- self.d.setVar('PREMIRRORS', 'https?$://.*/.* file://%s/\n' % mirrordir)
+ self.d.setVar('PREMIRRORS', 'https?$://.*/.* file://%s/' % mirrordir)
self.d.setVar('BB_FETCH_PREMIRRORONLY', '1')
# Fetch again
self.assertFalse(os.path.exists(ud.localpath))
@@ -2735,7 +2728,7 @@ class NPMTest(FetcherTest):
mirrordir = os.path.join(self.tempdir, 'mirror')
bb.utils.mkdirhier(mirrordir)
os.replace(ud.localpath, os.path.join(mirrordir, os.path.basename(ud.localpath)))
- self.d.setVar('MIRRORS', 'https?$://.*/.* file://%s/\n' % mirrordir)
+ self.d.setVar('MIRRORS', 'https?$://.*/.* file://%s/' % mirrordir)
# Fetch again with invalid url
self.assertFalse(os.path.exists(ud.localpath))
swfile = self.create_shrinkwrap_file({
@@ -2754,8 +2747,9 @@ class NPMTest(FetcherTest):
class GitSharedTest(FetcherTest):
def setUp(self):
super(GitSharedTest, self).setUp()
- self.recipe_url = "git://git.openembedded.org/bitbake"
+ self.recipe_url = "git://git.openembedded.org/bitbake;branch=master"
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
+ self.d.setVar("__BBSEENSRCREV", "1")
@skipIfNoNetwork()
def test_shared_unpack(self):
diff --git a/poky/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf b/poky/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf
index 2645c0e985..05d7fd07dd 100644
--- a/poky/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf
+++ b/poky/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf
@@ -12,6 +12,6 @@ STAMP = "${TMPDIR}/stamps/${PN}"
T = "${TMPDIR}/workdir/${PN}/temp"
BB_NUMBER_THREADS = "4"
-BB_HASHBASE_WHITELIST = "BB_CURRENT_MC BB_HASHSERVE TMPDIR TOPDIR SLOWTASKS SSTATEVALID FILE BB_CURRENTTASK"
+BB_BASEHASH_IGNORE_VARS = "BB_CURRENT_MC BB_HASHSERVE TMPDIR TOPDIR SLOWTASKS SSTATEVALID FILE BB_CURRENTTASK"
include conf/multiconfig/${BB_CURRENT_MC}.conf
diff --git a/poky/bitbake/lib/bb/tests/runqueue.py b/poky/bitbake/lib/bb/tests/runqueue.py
index 35d5a843ff..061a5a1f80 100644
--- a/poky/bitbake/lib/bb/tests/runqueue.py
+++ b/poky/bitbake/lib/bb/tests/runqueue.py
@@ -29,14 +29,14 @@ class RunQueueTests(unittest.TestCase):
def run_bitbakecmd(self, cmd, builddir, sstatevalid="", slowtasks="", extraenv=None, cleanup=False):
env = os.environ.copy()
env["BBPATH"] = os.path.realpath(os.path.join(os.path.dirname(__file__), "runqueue-tests"))
- env["BB_ENV_EXTRAWHITE"] = "SSTATEVALID SLOWTASKS TOPDIR"
+ env["BB_ENV_PASSTHROUGH_ADDITIONS"] = "SSTATEVALID SLOWTASKS TOPDIR"
env["SSTATEVALID"] = sstatevalid
env["SLOWTASKS"] = slowtasks
env["TOPDIR"] = builddir
if extraenv:
for k in extraenv:
env[k] = extraenv[k]
- env["BB_ENV_EXTRAWHITE"] = env["BB_ENV_EXTRAWHITE"] + " " + k
+ env["BB_ENV_PASSTHROUGH_ADDITIONS"] = env["BB_ENV_PASSTHROUGH_ADDITIONS"] + " " + k
try:
output = subprocess.check_output(cmd, env=env, stderr=subprocess.STDOUT,universal_newlines=True, cwd=builddir)
print(output)
@@ -154,12 +154,12 @@ class RunQueueTests(unittest.TestCase):
self.shutdown(tempdir)
- def test_setscenewhitelist(self):
+ def test_setscene_ignore_tasks(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "a1"]
extraenv = {
"BB_SETSCENE_ENFORCE" : "1",
- "BB_SETSCENE_ENFORCE_WHITELIST" : "a1:do_package_write_rpm a1:do_build"
+ "BB_SETSCENE_ENFORCE_IGNORE_TASKS" : "a1:do_package_write_rpm a1:do_build"
}
sstatevalid = "a1:do_package a1:do_package_qa a1:do_packagedata a1:do_package_write_ipk a1:do_populate_lic a1:do_populate_sysroot"
tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv)
diff --git a/poky/bitbake/lib/bb/tinfoil.py b/poky/bitbake/lib/bb/tinfoil.py
index 27a341541a..02c0bab600 100644
--- a/poky/bitbake/lib/bb/tinfoil.py
+++ b/poky/bitbake/lib/bb/tinfoil.py
@@ -493,7 +493,7 @@ class Tinfoil:
Wait for an event from the server for the specified time.
A timeout of 0 means don't wait if there are no events in the queue.
Returns the next event in the queue or None if the timeout was
- reached. Note that in order to recieve any events you will
+ reached. Note that in order to receive any events you will
first need to set the internal event mask using set_event_mask()
(otherwise whatever event mask the UI set up will be in effect).
"""
@@ -761,7 +761,7 @@ class Tinfoil:
if parseprogress:
parseprogress.update(event.progress)
else:
- bb.warn("Got ProcessProgress event for someting that never started?")
+ bb.warn("Got ProcessProgress event for something that never started?")
continue
if isinstance(event, bb.event.ProcessFinished):
if self.quiet > 1:
diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py
index 484545a684..528b8a0760 100644
--- a/poky/bitbake/lib/bb/ui/knotty.py
+++ b/poky/bitbake/lib/bb/ui/knotty.py
@@ -25,7 +25,7 @@ from itertools import groupby
from bb.ui import uihelper
-featureSet = [bb.cooker.CookerFeatures.SEND_SANITYEVENTS]
+featureSet = [bb.cooker.CookerFeatures.SEND_SANITYEVENTS, bb.cooker.CookerFeatures.BASEDATASTORE_TRACKING]
logger = logging.getLogger("BitBake")
interactive = sys.stdout.isatty()
@@ -647,7 +647,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if isinstance(event, logging.LogRecord):
lastprint = time.time()
printinterval = 5000
- if event.levelno >= bb.msg.BBLogFormatter.ERROR:
+ if event.levelno >= bb.msg.BBLogFormatter.ERRORONCE:
errors = errors + 1
return_value = 1
elif event.levelno == bb.msg.BBLogFormatter.WARNING:
@@ -661,10 +661,10 @@ def main(server, eventHandler, params, tf = TerminalFilter):
continue
# Prefix task messages with recipe/task
- if event.taskpid in helper.pidmap and event.levelno != bb.msg.BBLogFormatter.PLAIN:
+ if event.taskpid in helper.pidmap and event.levelno not in [bb.msg.BBLogFormatter.PLAIN, bb.msg.BBLogFormatter.WARNONCE, bb.msg.BBLogFormatter.ERRORONCE]:
taskinfo = helper.running_tasks[helper.pidmap[event.taskpid]]
event.msg = taskinfo['title'] + ': ' + event.msg
- if hasattr(event, 'fn'):
+ if hasattr(event, 'fn') and event.levelno not in [bb.msg.BBLogFormatter.WARNONCE, bb.msg.BBLogFormatter.ERRORONCE]:
event.msg = event.fn + ': ' + event.msg
logging.getLogger(event.name).handle(event)
continue
@@ -875,11 +875,11 @@ def main(server, eventHandler, params, tf = TerminalFilter):
for failure in taskfailures:
summary += "\n %s" % failure
if warnings:
- summary += pluralise("\nSummary: There was %s WARNING message shown.",
- "\nSummary: There were %s WARNING messages shown.", warnings)
+ summary += pluralise("\nSummary: There was %s WARNING message.",
+ "\nSummary: There were %s WARNING messages.", warnings)
if return_value and errors:
- summary += pluralise("\nSummary: There was %s ERROR message shown, returning a non-zero exit code.",
- "\nSummary: There were %s ERROR messages shown, returning a non-zero exit code.", errors)
+ summary += pluralise("\nSummary: There was %s ERROR message, returning a non-zero exit code.",
+ "\nSummary: There were %s ERROR messages, returning a non-zero exit code.", errors)
if summary and params.options.quiet == 0:
print(summary)
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index 0312231933..2e8256101a 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -253,7 +253,7 @@ def explode_dep_versions(s):
"""
Take an RDEPENDS style string of format:
"DEPEND1 (optional version) DEPEND2 (optional version) ..."
- skip null value and items appeared in dependancy string multiple times
+ skip null value and items appeared in dependency string multiple times
and return a dictionary of dependencies and versions.
"""
r = explode_dep_versions2(s)
@@ -381,7 +381,7 @@ def _print_exception(t, value, tb, realfile, text, context):
error.append("Exception: %s" % ''.join(exception))
- # If the exception is from spwaning a task, let's be helpful and display
+ # If the exception is from spawning a task, let's be helpful and display
# the output (which hopefully includes stderr).
if isinstance(value, subprocess.CalledProcessError) and value.output:
error.append("Subprocess output:")
@@ -402,7 +402,7 @@ def better_exec(code, context, text = None, realfile = "<code>", pythonexception
code = better_compile(code, realfile, realfile)
try:
exec(code, get_context(), context)
- except (bb.BBHandledException, bb.parse.SkipRecipe, bb.data_smart.ExpansionError):
+ except (bb.BBHandledException, bb.parse.SkipRecipe, bb.data_smart.ExpansionError, bb.process.ExecutionError):
# Error already shown so passthrough, no need for traceback
raise
except Exception as e:
@@ -589,8 +589,8 @@ def preserved_envvars():
v = [
'BBPATH',
'BB_PRESERVE_ENV',
- 'BB_ENV_WHITELIST',
- 'BB_ENV_EXTRAWHITE',
+ 'BB_ENV_PASSTHROUGH',
+ 'BB_ENV_PASSTHROUGH_ADDITIONS',
]
return v + preserved_envvars_exported()
@@ -621,21 +621,21 @@ def filter_environment(good_vars):
def approved_variables():
"""
- Determine and return the list of whitelisted variables which are approved
+ Determine and return the list of variables which are approved
to remain in the environment.
"""
if 'BB_PRESERVE_ENV' in os.environ:
return os.environ.keys()
approved = []
- if 'BB_ENV_WHITELIST' in os.environ:
- approved = os.environ['BB_ENV_WHITELIST'].split()
- approved.extend(['BB_ENV_WHITELIST'])
+ if 'BB_ENV_PASSTHROUGH' in os.environ:
+ approved = os.environ['BB_ENV_PASSTHROUGH'].split()
+ approved.extend(['BB_ENV_PASSTHROUGH'])
else:
approved = preserved_envvars()
- if 'BB_ENV_EXTRAWHITE' in os.environ:
- approved.extend(os.environ['BB_ENV_EXTRAWHITE'].split())
- if 'BB_ENV_EXTRAWHITE' not in approved:
- approved.extend(['BB_ENV_EXTRAWHITE'])
+ if 'BB_ENV_PASSTHROUGH_ADDITIONS' in os.environ:
+ approved.extend(os.environ['BB_ENV_PASSTHROUGH_ADDITIONS'].split())
+ if 'BB_ENV_PASSTHROUGH_ADDITIONS' not in approved:
+ approved.extend(['BB_ENV_PASSTHROUGH_ADDITIONS'])
return approved
def clean_environment():
@@ -1733,5 +1733,21 @@ def environment(**envvars):
for var in envvars:
if var in backup:
os.environ[var] = backup[var]
- else:
+ elif var in os.environ:
del os.environ[var]
+
+def is_local_uid(uid=''):
+ """
+ Check whether uid is a local one or not.
+ Can't use pwd module since it gets all UIDs, not local ones only.
+ """
+ if not uid:
+ uid = os.getuid()
+ with open('/etc/passwd', 'r') as f:
+ for line in f:
+ line_split = line.split(':')
+ if len(line_split) < 3:
+ continue
+ if str(uid) == line_split[2]:
+ return True
+ return False
diff --git a/poky/bitbake/lib/bblayers/action.py b/poky/bitbake/lib/bblayers/action.py
index f05f5d330f..6723e2c605 100644
--- a/poky/bitbake/lib/bblayers/action.py
+++ b/poky/bitbake/lib/bblayers/action.py
@@ -53,7 +53,7 @@ class ActionPlugin(LayerPlugin):
except (bb.tinfoil.TinfoilUIException, bb.BBHandledException):
# Restore the back up copy of bblayers.conf
shutil.copy2(backup, bblayers_conf)
- bb.fatal("Parse failure with the specified layer added, aborting.")
+ bb.fatal("Parse failure with the specified layer added, exiting.")
else:
for item in notadded:
sys.stderr.write("Specified layer %s is already in BBLAYERS\n" % item)
diff --git a/poky/bitbake/lib/layerindexlib/__init__.py b/poky/bitbake/lib/layerindexlib/__init__.py
index 08063c571e..ac03d89876 100644
--- a/poky/bitbake/lib/layerindexlib/__init__.py
+++ b/poky/bitbake/lib/layerindexlib/__init__.py
@@ -1278,7 +1278,7 @@ class Recipe(LayerIndexItemObj_LayerBranch):
filename, filepath, pn, pv, layerbranch,
summary="", description="", section="", license="",
homepage="", bugtracker="", provides="", bbclassextend="",
- inherits="", blacklisted="", updated=None):
+ inherits="", disallowed="", updated=None):
self.id = id
self.filename = filename
self.filepath = filepath
@@ -1294,7 +1294,7 @@ class Recipe(LayerIndexItemObj_LayerBranch):
self.bbclassextend = bbclassextend
self.inherits = inherits
self.updated = updated or datetime.datetime.today().isoformat()
- self.blacklisted = blacklisted
+ self.disallowed = disallowed
if isinstance(layerbranch, LayerBranch):
self.layerbranch = layerbranch
else:
diff --git a/poky/bitbake/lib/layerindexlib/cooker.py b/poky/bitbake/lib/layerindexlib/cooker.py
index 2de6e5faa0..ced3e06360 100644
--- a/poky/bitbake/lib/layerindexlib/cooker.py
+++ b/poky/bitbake/lib/layerindexlib/cooker.py
@@ -279,7 +279,7 @@ class CookerPlugin(layerindexlib.plugin.IndexPlugin):
summary=pn, description=pn, section='?',
license='?', homepage='?', bugtracker='?',
provides='?', bbclassextend='?', inherits='?',
- blacklisted='?', layerbranch=depBranchId)
+ disallowed='?', layerbranch=depBranchId)
index = addElement("recipes", [recipe], index)
diff --git a/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py b/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
index 75674ccbf1..577e765f11 100644
--- a/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
+++ b/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
@@ -200,7 +200,7 @@ class LocalhostBEController(BuildEnvironmentController):
localdirpath = os.path.join(localdirname, dirpath)
logger.debug("localhostbecontroller: localdirpath expects '%s'" % localdirpath)
if not os.path.exists(localdirpath):
- raise BuildSetupException("Cannot find layer git path '%s' in checked out repository '%s:%s'. Aborting." % (localdirpath, giturl, commit))
+ raise BuildSetupException("Cannot find layer git path '%s' in checked out repository '%s:%s'. Exiting." % (localdirpath, giturl, commit))
if name != "bitbake":
layerlist.append("%03d:%s" % (index,localdirpath.rstrip("/")))
@@ -467,7 +467,7 @@ class LocalhostBEController(BuildEnvironmentController):
logger.debug("localhostbecontroller: waiting for bblock content to appear")
time.sleep(1)
else:
- raise BuildSetupException("Cannot find bitbake server lock file '%s'. Aborting." % bblock)
+ raise BuildSetupException("Cannot find bitbake server lock file '%s'. Exiting." % bblock)
with open(bblock) as fplock:
for line in fplock:
diff --git a/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py b/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
index 3b950e6e15..eb097555e2 100644
--- a/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
+++ b/poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
@@ -87,13 +87,13 @@ class Command(BaseCommand):
# update branches; only those that we already have names listed in the
# Releases table
- whitelist_branch_names = [rel.branch_name
- for rel in Release.objects.all()]
- if len(whitelist_branch_names) == 0:
+ allowed_branch_names = [rel.branch_name
+ for rel in Release.objects.all()]
+ if len(allowed_branch_names) == 0:
raise Exception("Failed to make list of branches to fetch")
logger.info("Fetching metadata for %s",
- " ".join(whitelist_branch_names))
+ " ".join(allowed_branch_names))
# We require a non-empty bb.data, but we can fake it with a dictionary
layerindex = layerindexlib.LayerIndex({"DUMMY" : "VALUE"})
@@ -101,8 +101,8 @@ class Command(BaseCommand):
http_progress = Spinner()
http_progress.start()
- if whitelist_branch_names:
- url_branches = ";branch=%s" % ','.join(whitelist_branch_names)
+ if allowed_branch_names:
+ url_branches = ";branch=%s" % ','.join(allowed_branch_names)
else:
url_branches = ""
layerindex.load_layerindex("%s%s" % (self.apiurl, url_branches))
diff --git a/poky/bitbake/lib/toaster/toastergui/templates/projectconf.html b/poky/bitbake/lib/toaster/toastergui/templates/projectconf.html
index bd49f1f585..d62691df1d 100644
--- a/poky/bitbake/lib/toaster/toastergui/templates/projectconf.html
+++ b/poky/bitbake/lib/toaster/toastergui/templates/projectconf.html
@@ -167,8 +167,8 @@
{% for fstype in vars_fstypes %}
<input type="hidden" class="js-checkbox-fstypes-list" value="{{fstype}}">
{% endfor %}
- {% for b in vars_blacklist %}
- <input type="hidden" class="js-config-blacklist-name" value="{{b}}">
+ {% for b in vars_disallowed %}
+ <input type="hidden" class="js-config-disallowed-name" value="{{b}}">
{% endfor %}
{% for b in vars_managed %}
<input type="hidden" class="js-config-managed-name" value="{{b}}">
@@ -238,9 +238,9 @@ function validate_new_variable() {
}
}
- var blacklist_configvars = document.getElementsByClassName('js-config-blacklist-name');
- for (var i = 0, length = blacklist_configvars.length; i < length; i++) {
- if (blacklist_configvars[i].value.toUpperCase() == variable.toUpperCase()) {
+ var disallowed_configvars = document.getElementsByClassName('js-config-disallowed-name');
+ for (var i = 0, length = disallowed_configvars.length; i < length; i++) {
+ if (disallowed_configvars[i].value.toUpperCase() == variable.toUpperCase()) {
error_msg = "You cannot edit this variable in Toaster because it is set by the build servers";
}
}
diff --git a/poky/bitbake/lib/toaster/toastergui/views.py b/poky/bitbake/lib/toaster/toastergui/views.py
index 74f9d56963..a571b8cc18 100644
--- a/poky/bitbake/lib/toaster/toastergui/views.py
+++ b/poky/bitbake/lib/toaster/toastergui/views.py
@@ -1683,12 +1683,12 @@ if True:
t=request.POST['configvarDel'].strip()
pt = ProjectVariable.objects.get(pk = int(t)).delete()
- # return all project settings, filter out blacklist and elsewhere-managed variables
- vars_managed,vars_fstypes,vars_blacklist = get_project_configvars_context()
+ # return all project settings, filter out disallowed and elsewhere-managed variables
+ vars_managed,vars_fstypes,vars_disallowed = get_project_configvars_context()
configvars_query = ProjectVariable.objects.filter(project_id = pid).all()
for var in vars_managed:
configvars_query = configvars_query.exclude(name = var)
- for var in vars_blacklist:
+ for var in vars_disallowed:
configvars_query = configvars_query.exclude(name = var)
return_data = {
@@ -1781,7 +1781,7 @@ if True:
'MACHINE', 'BBLAYERS'
}
- vars_blacklist = {
+ vars_disallowed = {
'PARALLEL_MAKE','BB_NUMBER_THREADS',
'BB_DISKMON_DIRS','BB_NUMBER_THREADS','CVS_PROXY_HOST','CVS_PROXY_PORT',
'PARALLEL_MAKE','TMPDIR',
@@ -1790,7 +1790,7 @@ if True:
vars_fstypes = Target_Image_File.SUFFIXES
- return(vars_managed,sorted(vars_fstypes),vars_blacklist)
+ return(vars_managed,sorted(vars_fstypes),vars_disallowed)
def projectconf(request, pid):
@@ -1799,12 +1799,12 @@ if True:
except Project.DoesNotExist:
return HttpResponseNotFound("<h1>Project id " + pid + " is unavailable</h1>")
- # remove blacklist and externally managed varaibles from this list
- vars_managed,vars_fstypes,vars_blacklist = get_project_configvars_context()
+ # remove disallowed and externally managed varaibles from this list
+ vars_managed,vars_fstypes,vars_disallowed = get_project_configvars_context()
configvars = ProjectVariable.objects.filter(project_id = pid).all()
for var in vars_managed:
configvars = configvars.exclude(name = var)
- for var in vars_blacklist:
+ for var in vars_disallowed:
configvars = configvars.exclude(name = var)
context = {
@@ -1812,7 +1812,7 @@ if True:
'configvars': configvars,
'vars_managed': vars_managed,
'vars_fstypes': vars_fstypes,
- 'vars_blacklist': vars_blacklist,
+ 'vars_disallowed': vars_disallowed,
}
try: