summaryrefslogtreecommitdiff
path: root/poky/meta/lib
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2023-07-21 17:09:43 +0300
committerPatrick Williams <patrick@stwcx.xyz>2023-08-10 22:22:44 +0300
commit8f840685fb701a268141f0fcebc1d34fcd9b01de (patch)
tree49f7cc04f8447a72e1bb9f96fa4a1174cea7b435 /poky/meta/lib
parent5eea8d85a2b0bfced71508b4b97030e2dc9a5717 (diff)
downloadopenbmc-8f840685fb701a268141f0fcebc1d34fcd9b01de.tar.xz
subtree updates july 21 2023 poky,openembedded
poky: 13b646c0e1..b398c7653e: Adrian Freihofer (2): runqemu-ifdown: catch up with ifup runqemu: drop uid parameter for ifdown Alejandro Hernandez Samaniego (3): baremetal-helloworld: Fix race condition runqemu: Stop using warn() since its been deprecated runqemu: Fix automated call to runqemu-ifup Alex Kiernan (3): rootfs: Add debugfs package db file copy and cleanup rpm: Pick debugfs package db files/dirs explicitly eudev: Add group sgx to eudev package Alexander Kanavin (27): insane.bbclass: enable 32 bit time API check (as a warning) on affected architectures libxcrypt: upgrade 4.4.34 -> 4.4.35 libxml2: update 2.10.4 -> 2.11.4 ovmf: update 202302 -> 202305 lua: update 5.4.4 -> 5.4.6 cargo.bbclass: set up cargo environment in common do_compile rust-common.bbclass: move musl-specific linking fix from rust-source.inc python3-cryptography: update 39.0.2 -> 41.0.1 python3-cryptography-vectors: update 39.0.2 -> 41.0.1 python3: update 3.11.3 -> 3.11.4 diffutils: update 3.9 -> 3.10 shadow: remove dependency on pam-plugin-lastlog libpam: update 1.5.2 -> 1.5.3 librsvg: update 2.56.0 -> 2.56.1 vulkan-validation-layers: update 1.3.243 -> 1.3.250 xcb-util-cursor: add a recipe from meta-oe weston: update 11.0.1 -> 12.0.1 libdmx: update 1.1.4 -> 1.1.5 xtrans: update 1.4.0 -> 1.5.0 libproxy: fetch from git libproxy: update 0.4.18 -> 0.5.2 libssh2: update 1.10.0 -> 1.11.0 gstreamer1.0-plugins-base: enable glx/opengl support webkitgtk: update 2.38.5 -> 2.40.2 python3-cryptography: update a patch to upstream's better followup fix time64.inc: annotate and clean up recipe-specific Y2038 exceptions Revert "rootfs-postcommands.bbclass: add post func remove_unused_dnf_log_lock" Andrej Valek (3): cve-check: add option to add additional patched CVEs oeqa/selftest/cve_check: rework test to new cve status handling cve_check: convert CVE_CHECK_IGNORE to CVE_STATUS Anuj Mittal (7): rpm: backport fix to prevent crashes with latest sqlite sqlite3: upgrade 3.41.2 -> 3.42.0 vte: upgrade 0.72.1 -> 0.72.2 libpng: upgrade 1.6.39 -> 1.6.40 glib-networking: upgrade 2.76.0 -> 2.76.1 bluez5: upgrade 5.66 -> 5.68 selftest/cases/glibc.py: fix the override syntax BELOUARGA Mohamed (9): bitbake: fetch2/npmsw: Add support for the new format of the shrinkwrap file bitbake: fetch2/npmsw: Don't fetch dev dependencies when they are not demanded bitbake: fetch2/npm: Remove special caracters that causes recipe tool to fail recipetool: create: npm: Remove duplicate function to not have future conflicts classes: npm: Handle peer dependencies for npm packages recipetool: create: npm: Add support for the new format of the shrinkwrap file recipetool: create: npm: Add support to handle peer dependencies classes: npm: Add support for the new format of the shrinkwrap file classe-recipes: npm: Add support for dependencies and devDependencies Benjamin Bouvier (1): util-linux: add alternative links for ipcs,ipcrm Bruce Ashfield (19): perf: fix buildpaths QA warning in 6.4+ linux-libc-headers: bump to 6.4 kernel: fix localversion in v6.3+ linux-yocto: introduce 6.4 reference kernel recipes linux-yocto/6.4: update to latest linux-yocto/6.4: aufs6 integration linux-yocto/6.4: refresh configuration linux-yocto-rt/6.4: integrate -rt6 linux-yocto/6.4: update to v6.4.2 linux-yocto-tiny/6.4: fix configuration warnings (HID) linux-yocto-tiny/arm: fix configuration warnings (HID) linux-yocto/ppc: add elfutils-native to DEPENDS linux-yocto/6.1: update to v6.1.36 linux-yocto/6.1: update to v6.1.37 linux-yocto/6.1: update to v6.1.38 linux-yocto/6.x: cfg: update ima.cfg to match current meta-integrity linux-yocto/6.4: update to v6.4.3 kernel: set HOSTPKG_CONFIG to use pkg-config-native linux-yocto/6.4: fix menuconfig Changqing Li (2): dnf: only write the log lock to root for native dnf rootfs-postcommands.bbclass: add post func remove_unused_dnf_log_lock Denys Dmytriyenko (1): bitbake: runqueue: convert deferral messages from bb.note to bb.debug Enrico Scholz (1): shadow-sysroot: add license information Etienne Cordonnier (2): libxcrypt: fix hard-coded ".so" extension qemu: fix typo Fabio Estevam (3): u-boot: Update Upstream-Status u-boot: Upgrade to 2023.07 u-boot: Upgrade to 2023.07.02 Frederic Martinsons (1): ptest-cargo.bbclass: fix condition to detect test executable Joe Slater (1): ghostscript: advance to version 10.01.2 Jose Quaresma (12): kernel: config modules directories are handled by kernel-module-split kernel-module-split: install config modules directories only when they are needed kernel-module-split: use context manager to open files kernel-module-split: make autoload and probeconf distribution specific kernel-module-split add systemd modulesloaddir and modprobedir config pybootchartgui: calcule elapsed_time when starting the loop pybootchartgui: concatenate the elapsed time with the process pybootchartgui: fix overlapping argument in render_processes_chart pybootchartgui: fix width max usage in draw_label_in_box openssl: add PERLEXTERNAL path to test its existence openssl: use a glob on the PERLEXTERNAL to track updates on the path go: update 1.20.5 -> 1.20.6 Julien Stephan (1): automake: fix buildtest patch Khem Raj (9): ffmpeg: Fix build on riscv libpam: Fix examples build on musl webkitgtk: Enable JIT on RISCV64 musl: Guard fallocate64 with _LARGEFILE64_SOURCE alsa-lib: Disable old API symbols mesa: Fix build with upcoming LLVM 17 meson.bbclass: Point to llvm-config from native sysroot webkitgtk: Unbreak build on platforms using pvr graphics drivers python3-lxml: upgrade 4.9.2 -> 4.9.3 Martin Jansa (4): selftest: multiconfig-image-packager: try to respect IMAGE_LINK_NAME kernel-devicetree: install dtb files without -${KERNEL_DTB_NAME} suffix image-artifact-names: include ${IMAGE_NAME_SUFFIX} directly in both ${IMAGE_NAME} and ${IMAGE_LINK_NAME} cpio: respect MLPREFIX for PACKAGE_WRITE_DEPS Michael Halstead (1): resulttool/resultutils: allow index generation despite corrupt json Mingli Yu (1): qemu: Add qemu-user-* and qemu-system-* to PACKAGES_DYNAMIC Natasha Bailey (1): tiff: backport a fix for CVE-2023-26965 Ovidiu Panait (5): mdadm: fix util-linux ptest dependency mdadm: fix 07revert-inplace ptest mdadm: fix segfaults when running ptests mdadm: skip running known broken ptests mdadm: re-add mdadm-ptest to PTESTS_SLOW Peter Hoyes (5): bitbake: bitbake: tests/fetch: Mark TestTimeout as not a test suite bitbake: bitbake: tests/fetch: Rename assertRaisesRegexp to assertRaisesRegex bitbake: bitbake: tests/fetch: Set git config if not already set bitbake: bitbake: tests: Use assertLogs to test logging output bitbake: bitbake: Bootstrap pytest for self-tests Peter Marko (4): cve-update-nvd2-native: fix cvssV3 metrics gcsections: apply section removal also in C++, not only in C cve-update-nvd2-native: retry all errors and sleep between retries cve-update-nvd2-native: increase retry count Piotr Łobacz (1): bitbake.conf: Add acl distro native features support Quentin Schulz (1): uboot-extlinux-config.bbclass: fix old override syntax in comment Richard Purdie (14): defaultsetup: Enable largefile and 64bit time_t support systemwide for 32 bit platforms time64: Disable CFLAGS for strace bitbake: runqueue: Fix deferred task/multiconfig race issue strace: Update patches/tests with upstream fixes bitbake: fetch2/npmsw: Support old and new shrinkwrap formats ptest-runner: Pull in "runner: Remove threads and mutexes" fix bitbake: server/process: Show command in timeout message bitbake: cooker: Log when parsing starts in server log gcc-testsuite: Fix ppc cpu specification ptest-runner: Pull in parallel test fixes and output handling oeqa/selftest/rust: Various fixes to work correctly bitbake: runqueue: Add pressure change logging build-appliance-image: Update to master head revision glibc-testsuite: Fix network restrictions causing test failures Ross Burton (26): cve-update-db-native: remove cve-update-nvd2-native: handle all configuration nodes, not just first cve-update-nvd2-native: use exact times, don't truncate ghostscript: remove CVE_CHECK_IGNORE for CVE-2013-6629 pkgconf: update SRC_URI libjpeg-turbo: upgrade to 3.0.0 cups: upgrade to 2.4.6 tiff: upgrade to 4.5.1 linux-yocto/cve-exclusion: move entries from cve-extra-exclusions linux-yocto/cve-exclusion: ignore more backported CVEs python3: fix missing comma in get_module_deps3.py python3-jsonpointer: upgrade to 2.4 oeqa/runtime/cases/rpm: fix wait_for_no_process_for_user failure case cml1: add showconfig task to easily find the generated .config file rootfs_rpm: don't depend on opkg-native for update-alternatives poky: add Debian 12 to supported distribution list cve-update-nvd2-native: log a little more cve-update-nvd2-native: actually use API keys gcc: don't pass --enable-standard-branch-protection machine/arch-arm64: add -mbranch-protection=standard qemuarm: pin kernel to 6.1 libdmx: remove obsolete library linux-yocto_6.1: ignore backported CVEs python3: ignore CVE-2023-36632 ltp: add RDEPENDS on findutils oeqa/ltp: rewrote LTP testcase and parser Siddharth Doshi (2): bind: Upgrade 9.18.15 -> 9.18.16 flac: Upgrade 1.4.2 -> 1.4.3 Soumya (1): perl: Fix CVE-2023-31486 Staffan Rydén (1): kernel: Fix path comparison in kernel staging dir symlinking Stéphane Veyret (1): scripts/oe-setup-builddir: copy conf-notes.txt to build dir Sudip Mukherjee (1): libssh2: disable rpath to fix curl-native build Thomas Roos (1): testimage/oeqa: Drop testimage_dump_host functionality Tim Orling (10): python3-pytest-subtests: upgrade 0.10.0 -> 0.11.0 python3-urllib3: upgrade 2.0.2 -> 2.0.3 python3-typing-extensions: upgrade 4.6.3 -> 4.7.0 python3-hypothesis: upgrade 6.79.2 -> 6.80.0 python3-pygments: upgrade 2.14.0 -> 2.15.1 python3-importlib-metadata: upgrade 6.7.0 -> 6.8.0 python3-typing-extensions: upgrade 4.7.0 -> 4.7.1 python3-cryptography{-vectors}: upgrade 41.0.1 -> 41.0.2 python3-zipp: upgrade 3.15.0 -> 3.16.2 python3-hypothesis: upgrade 6.80.0 -> 6.81.2 Trevor Gamblin (15): python3: add cgitb, zipapp ptest dependencies qemu: upgrade 8.0.0 -> 8.0.3 python3: parallelize ptests, add test_cppext dependencies python3-setuptools: upgrade 67.6.1 -> 68.0.0 diffoscope: upgrade 242 -> 243 p11-kit: upgrade 0.24.1 -> 0.25.0 diffoscope: add missing RDEPENDS and alphabetize linux-firmware: upgrade 20230515 -> 20230625 python3-trove-classifiers: upgrade 2023.5.24 -> 2023.7.6 python3-cython: upgrade 0.29.35 -> 0.29.36 icu: upgrade 72-1 -> 73-2 python3-editables: add python3-io to RDEPENDS python3: ensure ptest regression capture diffoscope: upgrade 243 -> 244 xeyes: upgrade 1.2.0 -> 1.3.0 Wang Mingyu (51): freetype: upgrade 2.13.0 -> 2.13.1 gstreamer1.0: upgrade 1.22.3 -> 1.22.4 kbd: upgrade 2.5.1 -> 2.6.0 libassuan: upgrade 2.5.5 -> 2.5.6 libksba: upgrade 1.6.3 -> 1.6.4 libmd: upgrade 1.0.4 -> 1.1.0 libsdl2: upgrade 2.26.5 -> 2.28.0 libtraceevent: upgrade 1.7.2 -> 1.7.3 libx11: upgrade 1.8.5 -> 1.8.6 lttng-ust: upgrade 2.13.5 -> 2.13.6 nettle: upgrade 3.9 -> 3.9.1 nghttp2: upgrade 1.53.0 -> 1.54.0 ccache: upgrade 4.8.1 -> 4.8.2 mesa: upgrade 23.1.1 -> 23.1.3 python3-numpy: upgrade 1.24.3 -> 1.25.0 python3-typing-extensions: upgrade 4.6.2 -> 4.6.3 xorgproto: upgrade 2022.2 -> 2023.2 python3-hatchling: upgrade 1.17.0 -> 1.18.0 python3-hypothesis: upgrade 6.75.7 -> 6.79.2 python3-importlib-metadata: upgrade 6.6.0 -> 6.7.0 python3-iso8601: upgrade 1.1.0 -> 2.0.0 python3-markupsafe: upgrade 2.1.2 -> 2.1.3 python3-pluggy: upgrade 1.0.0 -> 1.2.0 python3-pycairo: upgrade 1.23.0 -> 1.24.0 python3-pyparsing: upgrade 3.0.9 -> 3.1.0 python3-pytest: upgrade 7.3.1 -> 7.4.0 python3-ruamel-yaml: upgrade 0.17.31 -> 0.17.32 python3-sphinx-rtd-theme: upgrade 1.2.1 -> 1.2.2 xkeyboard-config: upgrade 2.38 -> 2.39 xwayland: upgrade 23.1.1 -> 23.1.2 wayland-protocols: upgrade 1.31 -> 1.32 taglib: upgrade 1.13 -> 1.13.1 libxcrypt: upgrade 4.4.35 -> 4.4.36 msmtp: upgrade 1.8.23 -> 1.8.24 libwebp: upgrade 1.3.0 -> 1.3.1 libuv: upgrade 1.45.0 -> 1.46.0 acpica: upgrade 20230331 -> 20230628 libnss-nis: upgrade 3.1 -> 3.2 harfbuzz: upgrade 7.3.0 -> 8.0.1 libproxy: upgrade 0.5.2 -> 0.5.3 nghttp2: upgrade 1.54.0 -> 1.55.1 debianutils: upgrade 5.7 -> 5.8 glib-2.0: upgrade 2.76.3 -> 2.76.4 python3-pip: upgrade 23.1.2 -> 23.2 opkg: upgrade 0.6.1 -> 0.6.2 opkg-utils: upgrade 0.5.0 -> 0.6.2 python3-editables: upgrade 0.3 -> 0.4 python3-git: upgrade 3.1.31 -> 3.1.32 python3-numpy: upgrade 1.25.0 -> 1.25.1 repo: upgrade 2.34.1 -> 2.35 libva: upgrade to 2.19.0 Yash Shinde (1): oeqa/selftest: Add rust selftests Yi Zhao (1): ifupdown: install missing directories Yoann Congal (2): recipetool: Fix inherit in created -native* recipes oeqa/selftest/devtool: add unit test for "devtool add -b" Yuta Hayama (1): systemd-systemctl: fix errors in instance name expansion meta-openembedded: 2638d458a5..0e3f5e5201: Alex Kiernan (1): ostree: Upgrade 2023.4 -> 2023.5 Archana Polampalli (1): tcpreplay: upgrade 4.4.3 -> 4.4.4 Beniamin Sandu (1): mbedtls: fix builds with crypto extensions Bruce Ashfield (1): vboxguestdrivers: fix compilation against 6.4 kernel / headers Carlos Rafael Giani (3): pipewire: Disable libmysofa since it is not available in OE pipewire: Improve packageconfigs pipewire: Add dedicated aes67 package and fix rlimits.d package assignment Chee Yang Lee (1): rabbitmq-c: Fix CVE-2023-35789 Jasper Orschulko (8): python3-pytest-cov: Add initial recipe 4.1.0 python3-covdefaults: Add initial recipe 2.3.0 python3-platformdirs: Fix recipe version 3.6.0 python3-distlib: Add initial recipe 0.3.6 python3-filelock: Add initial recipe 3.12.0 python3-virtualenv: Add initial recipe 20.23.0 python3-pyproject-api: Add initial recipe 1.5.1 python3-tox: Add initial recipe 4.6.0 Joe Slater (1): libgpiod: modify RDEPENDS for ptest Justin Bronder (2): python3-asyncinotify: upgrade 3.0.1 -> 4.0.2 python3-pytest-asyncio: upgrade 0.16.0 -> 0.21.1 Kai Kang (2): libtimezonemap: rename downloaded file name fltk-native: fix libdl link issue Khem Raj (33): gupnp-av: Fix build with libxml2-2.11 and newer xcb-util-cursor: Delete recipe pidgin-sipe: Add packageconfig to turn Werror on/off fbida: Fix build on musl pcp: Update to 6.0.5 geos: Upgrade to 3.12.0 ctags: Extend to build native package libcoap: Build linker symbol file explicitly geos: Use cmake directly pcp: Fix build race sblim-sfcc: Fix build with clang17 minifi-cpp: Fix build with clang 17 python3-grpcio-tools: Upgrade to 1.56.0 python3-grpcio: Upgrade to 1.56.0 python3-grpcio: Fix build on musl python3-grpcio-tools: Fix build with musl thin-provisioning-tools: Upgrade to 1.0.4 thin-provisioning-tools: Fix build on musl. pcp: Disable parallel build crash: Fix build with glibc 2.38+ breakpad: Update to latest trunk python3-requests-toolbelt: Fix ptest failures seen with urllib3 2.0 ptest-packagelists-meta-oe: Limit mcelog to x86/x86_64 graphviz: Upgrade to 8.1.0 release emlog: Update to latest to fix build with 6.4 kernel dlm: Upgrade to 4.2.0 mdio-tools: Update to latest on trunk dlm: Fix build with linux kernel 6.4+ dlm: Do not pass -fcf-protection=full via Makefile dlm: Do not use -fcf-protection=full on arm platforms zfs: Update to 2.2.0 rc1 zfs: Disable builds on aarch64 for now dhcp-relay: Pass cross configure flags to bind build Luke Schaefer (1): nginx: Add stream Signed-off-by: Luke Schaefer <lukeschafer17@gmail.com> Marek Vasut (4): lvgl: Factor out and unify lv-drivers configuration lvgl: Add default input device configuration option linux-serial-test: Update to latest git revision libiio: enable c++ bindings Markus Volk (10): pipewire: upgrade 0.3.71 -> 0.3.72 pipewire: upgrade 0.3.72 -> 0.3.73 gnome-software: upgrade 44.2 -> 44.3 eog: upgrade 44.2 -> 44.3 spdlog: upgrade 1.11.0 -> 1.12.0 flatpak: update dependencies gnome-control-center: upgrade 44.2 -> 44.3 gnome-shell: upgrade 44.2 -> 44.3 mutter: upgrade 44.2 -> 44.3 gnome-settings-daemon: upgrade 44.0 -> 44.1 Martin Jansa (4): nodejs: use PIE for host binaries gupnp: backport a fix not to use deprecated xmlReadMemory pidgin-sipe: allow to build with libxml2-2.11 raptor2: backport a fix to build with libxml2-2.11 Michael Haener (1): nginx: upgrade to 1.24.0 release Michael Weiß (1): pv: Show progress bar even if no terminal is set as in 1.6.6 Mingli Yu (1): snort: Add systemd unit file Peter Kjellerstedt (1): cppzmq: Move the version to the recipe file name Petr Gotthard (2): python3-pyroute2: upgrade 0.5.19 -> 0.7.9 networkmanager: upgrade 1.42.6 -> 1.42.8 Ricardo Salveti (1): lshw: bump to b4e0673 Ross Burton (5): poppler: fix missing include libpaper: remove redundant autoreconf --install liblbxutil: remove obsolete library xsetmode: remove obsolete utility libxkbui: remove obsolete recipe Tim Orling (1): python3-argh: upgrade 0.26.2 -> 0.28.1 Trevor Gamblin (9): python3-alembic: upgrade 1.10.4 -> 1.11.1 python3-sqlalchemy: upgrade 2.0.15 -> 2.0.19 python3-argcomplete: upgrade 3.1.0 -> 3.1.1 python3-arpeggio: upgrade 2.0.0 -> 2.0.2 python3-astroid: upgrade 2.15.5 -> 2.15.6 python3-autobahn: upgrade 23.6.1 -> 23.6.2 python3-bandit: upgrade 1.7.4 -> 1.7.5 python3-bandit: add python3-rich to RDEPENDS python3-bitarray: upgrade 2.7.3 -> 2.7.6 Wang Mingyu (44): cppzmq: upgrade 4.9.0 -> 4.10.0 iwd: upgrade 2.5 -> 2.6 libburn: upgrade 1.5.4 -> 1.5.6 libzip: upgrade 1.9.2 -> 1.10.0 openfortivpn: upgrade 1.20.3 -> 1.20.5 psqlodbc: upgrade 13.02.0000 -> 15.00.0000 python3-aenum: upgrade 3.1.12 -> 3.1.14 python3-can: upgrade 4.2.1 -> 4.2.2 python3-google-api-python-client: upgrade 2.89.0 -> 2.90.0 python3-h5py: upgrade 3.8.0 -> 3.9.0 python3-natsort: upgrade 8.3.1 -> 8.4.0 python3-pymodbus: upgrade 3.3.1 -> 3.3.2 python3-pymongo: upgrade 4.3.3 -> 4.4.0 python3-pyscaffold: upgrade 4.4.1 -> 4.5 python3-pyzstd: upgrade 0.15.7 -> 0.15.9 python3-requests-futures: upgrade 1.0.0 -> 1.0.1 python3-sentry-sdk: upgrade 1.25.1 -> 1.26.0 python3-zeroconf: upgrade 0.68.0 -> 0.69.0 weechat: upgrade 3.8 -> 4.0.0 python3-platformdirs: upgrade 3.6.0 -> 3.8.0 renderdoc: upgrade 1.13 -> 1.27 gegl: upgrade 0.4.44 -> 0.4.46 gvfs: upgrade 1.50.4 -> 1.51.1 weechat: upgrade 4.0.0 -> 4.0.1 avro-c: upgrade 1.11.1 -> 1.11.2 glfw: upgrade 3.3 -> 3.3.8 hwloc: upgrade 2.9.1 -> 2.9.2 minicoredumper: upgrade 2.0.3 -> 2.0.6 thingsboard-gateway: upgrade 3.2 -> 3.3 xterm: upgrade 382 -> 383 passwdqc: upgrade 2.0.2 -> 2.0.3 python3-aenum: upgrade 3.1.14 -> 3.1.15 python3-configargparse : upgrade 1.5.3 -> 1.5.5 python3-elementpath: upgrade 4.1.3 -> 4.1.4 python3-google-api-python-client: upgrade 2.90.0 -> 2.92.0 python3-google-auth: upgrade 2.20.0 -> 2.21.0 python3-joblib: upgrade 1.2.0 -> 1.3.1 python3-pillow: upgrade 9.5.0 -> 10.0.0 python3-redis: upgrade 4.5.5 -> 4.6.0 python3-tox: upgrade 4.6.0 -> 4.6.3 python3-virtualenv: upgrade 20.23.0 -> 20.23.1 python3-zeroconf: upgrade 0.69.0 -> 0.70.0 libyang: Fix install conflict when enable multilib. php: Fix install conflict when enable multilib. Wolfgang Meyer (4): fbida: Switch to git fetcher fbida: build with meson fbida: SRC_REV bump ac9005b..eb769e3 fbida: make fbpdf build optional Yi Zhao (6): conntrack-tools: add systemd unit file conntrack-tools: add required kernel modules to RRECOMMENDS frr: upgrade 8.4.2 -> 8.4.4 mbedtls: upgrade 2.28.2 -> 2.28.3 open-vm-tools: Security fix CVE-2023-20867 samba: upgrade 4.18.3 -> 4.18.4 Zoltán Böszörményi (1): opencv: 4.8.0 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I48c2ba4573ee81b637b1ba890c312f491004f666
Diffstat (limited to 'poky/meta/lib')
-rw-r--r--poky/meta/lib/oe/cve_check.py25
-rw-r--r--poky/meta/lib/oe/package_manager/rpm/rootfs.py2
-rw-r--r--poky/meta/lib/oe/rootfs.py20
-rw-r--r--poky/meta/lib/oeqa/core/target/qemu.py5
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/ltp.py17
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/rpm.py4
-rw-r--r--poky/meta/lib/oeqa/runtime/context.py11
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/bblayers.py3
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/cve_check.py26
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/devtool.py32
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/distrodata.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/fitimage.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/glibc.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/rust.py90
-rw-r--r--poky/meta/lib/oeqa/targetcontrol.py2
-rw-r--r--poky/meta/lib/oeqa/utils/dump.py20
-rw-r--r--poky/meta/lib/oeqa/utils/logparser.py62
-rw-r--r--poky/meta/lib/oeqa/utils/qemurunner.py18
18 files changed, 248 insertions, 95 deletions
diff --git a/poky/meta/lib/oe/cve_check.py b/poky/meta/lib/oe/cve_check.py
index dbaa0b373a..5bf3caac47 100644
--- a/poky/meta/lib/oe/cve_check.py
+++ b/poky/meta/lib/oe/cve_check.py
@@ -130,6 +130,13 @@ def get_patched_cves(d):
if not fname_match and not text_match:
bb.debug(2, "Patch %s doesn't solve CVEs" % patch_file)
+ # Search for additional patched CVEs
+ for cve in (d.getVarFlags("CVE_STATUS") or {}):
+ decoded_status, _, _ = decode_cve_status(d, cve)
+ if decoded_status == "Patched":
+ bb.debug(2, "CVE %s is additionally patched" % cve)
+ patched_cves.add(cve)
+
return patched_cves
@@ -218,3 +225,21 @@ def convert_cve_version(version):
return version + update
+def decode_cve_status(d, cve):
+ """
+ Convert CVE_STATUS into status, detail and description.
+ """
+ status = d.getVarFlag("CVE_STATUS", cve)
+ if status is None:
+ return ("", "", "")
+
+ status_split = status.split(':', 1)
+ detail = status_split[0]
+ description = status_split[1].strip() if (len(status_split) > 1) else ""
+
+ status_mapping = d.getVarFlag("CVE_CHECK_STATUSMAP", detail)
+ if status_mapping is None:
+ bb.warn('Invalid detail %s for CVE_STATUS[%s] = "%s", fallback to Unpatched' % (detail, cve, status))
+ status_mapping = "Unpatched"
+
+ return (status_mapping, detail, description)
diff --git a/poky/meta/lib/oe/package_manager/rpm/rootfs.py b/poky/meta/lib/oe/package_manager/rpm/rootfs.py
index d4c415f68c..3ba5396320 100644
--- a/poky/meta/lib/oe/package_manager/rpm/rootfs.py
+++ b/poky/meta/lib/oe/package_manager/rpm/rootfs.py
@@ -110,7 +110,7 @@ class PkgRootfs(Rootfs):
if self.progress_reporter:
self.progress_reporter.next_stage()
- self._setup_dbg_rootfs(['/etc', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf'])
+ self._setup_dbg_rootfs(['/etc/rpm', '/etc/rpmrc', '/etc/dnf', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf'])
execute_pre_post_process(self.d, rpm_post_process_cmds)
diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py
index 890ba5f039..1a48ed10b3 100644
--- a/poky/meta/lib/oe/rootfs.py
+++ b/poky/meta/lib/oe/rootfs.py
@@ -106,7 +106,7 @@ class Rootfs(object, metaclass=ABCMeta):
def _cleanup(self):
pass
- def _setup_dbg_rootfs(self, dirs):
+ def _setup_dbg_rootfs(self, package_paths):
gen_debugfs = self.d.getVar('IMAGE_GEN_DEBUGFS') or '0'
if gen_debugfs != '1':
return
@@ -122,11 +122,12 @@ class Rootfs(object, metaclass=ABCMeta):
bb.utils.mkdirhier(self.image_rootfs)
bb.note(" Copying back package database...")
- for dir in dirs:
- if not os.path.isdir(self.image_rootfs + '-orig' + dir):
- continue
- bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(dir))
- shutil.copytree(self.image_rootfs + '-orig' + dir, self.image_rootfs + dir, symlinks=True)
+ for path in package_paths:
+ bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(path))
+ if os.path.isdir(self.image_rootfs + '-orig' + path):
+ shutil.copytree(self.image_rootfs + '-orig' + path, self.image_rootfs + path, symlinks=True)
+ elif os.path.isfile(self.image_rootfs + '-orig' + path):
+ shutil.copyfile(self.image_rootfs + '-orig' + path, self.image_rootfs + path)
# Copy files located in /usr/lib/debug or /usr/src/debug
for dir in ["/usr/lib/debug", "/usr/src/debug"]:
@@ -162,6 +163,13 @@ class Rootfs(object, metaclass=ABCMeta):
bb.note(" Install extra debug packages...")
self.pm.install(extra_debug_pkgs.split(), True)
+ bb.note(" Removing package database...")
+ for path in package_paths:
+ if os.path.isdir(self.image_rootfs + path):
+ shutil.rmtree(self.image_rootfs + path)
+ elif os.path.isfile(self.image_rootfs + path):
+ os.remove(self.image_rootfs + path)
+
bb.note(" Rename debug rootfs...")
try:
shutil.rmtree(self.image_rootfs + '-dbg')
diff --git a/poky/meta/lib/oeqa/core/target/qemu.py b/poky/meta/lib/oeqa/core/target/qemu.py
index 79fd724f7d..6893d10226 100644
--- a/poky/meta/lib/oeqa/core/target/qemu.py
+++ b/poky/meta/lib/oeqa/core/target/qemu.py
@@ -22,7 +22,7 @@ supported_fstypes = ['ext3', 'ext4', 'cpio.gz', 'wic']
class OEQemuTarget(OESSHTarget):
def __init__(self, logger, server_ip, timeout=300, user='root',
port=None, machine='', rootfs='', kernel='', kvm=False, slirp=False,
- dump_dir='', dump_host_cmds='', display='', bootlog='',
+ dump_dir='', display='', bootlog='',
tmpdir='', dir_image='', boottime=60, serial_ports=2,
boot_patterns = defaultdict(str), ovmf=False, tmpfsdir=None, **kwargs):
@@ -44,8 +44,7 @@ class OEQemuTarget(OESSHTarget):
self.runner = QemuRunner(machine=machine, rootfs=rootfs, tmpdir=tmpdir,
deploy_dir_image=dir_image, display=display,
logfile=bootlog, boottime=boottime,
- use_kvm=kvm, use_slirp=slirp, dump_dir=dump_dir,
- dump_host_cmds=dump_host_cmds, logger=logger,
+ use_kvm=kvm, use_slirp=slirp, dump_dir=dump_dir, logger=logger,
serial_ports=serial_ports, boot_patterns = boot_patterns,
use_ovmf=ovmf, tmpfsdir=tmpfsdir)
dump_monitor_cmds = kwargs.get("testimage_dump_monitor")
diff --git a/poky/meta/lib/oeqa/runtime/cases/ltp.py b/poky/meta/lib/oeqa/runtime/cases/ltp.py
index a66d5d13d7..29c26d7d32 100644
--- a/poky/meta/lib/oeqa/runtime/cases/ltp.py
+++ b/poky/meta/lib/oeqa/runtime/cases/ltp.py
@@ -65,29 +65,34 @@ class LtpTest(LtpTestBase):
ltp_groups += ltp_fs
def runltp(self, ltp_group):
- cmd = '/opt/ltp/runltp -f %s -p -q -r /opt/ltp -l /opt/ltp/results/%s -I 1 -d /opt/ltp' % (ltp_group, ltp_group)
+ # LTP appends to log files, so ensure we start with a clean log
+ self.target.deleteFiles("/opt/ltp/results/", ltp_group)
+
+ cmd = '/opt/ltp/runltp -f %s -q -r /opt/ltp -l /opt/ltp/results/%s -I 1 -d /opt/ltp' % (ltp_group, ltp_group)
+
starttime = time.time()
(status, output) = self.target.run(cmd)
endtime = time.time()
+ # Write the console log to disk for convenience
with open(os.path.join(self.ltptest_log_dir, "%s-raw.log" % ltp_group), 'w') as f:
f.write(output)
+ # Also put the console log into the test result JSON
self.extras['ltpresult.rawlogs']['log'] = self.extras['ltpresult.rawlogs']['log'] + output
- # copy nice log from DUT
- dst = os.path.join(self.ltptest_log_dir, "%s" % ltp_group )
+ # Copy the machine-readable test results locally so we can parse it
+ dst = os.path.join(self.ltptest_log_dir, ltp_group)
remote_src = "/opt/ltp/results/%s" % ltp_group
(status, output) = self.target.copyFrom(remote_src, dst, True)
- msg = 'File could not be copied. Output: %s' % output
if status:
+ msg = 'File could not be copied. Output: %s' % output
self.target.logger.warning(msg)
parser = LtpParser()
results, sections = parser.parse(dst)
- runtime = int(endtime-starttime)
- sections['duration'] = runtime
+ sections['duration'] = int(endtime-starttime)
self.sections[ltp_group] = sections
failed_tests = {}
diff --git a/poky/meta/lib/oeqa/runtime/cases/rpm.py b/poky/meta/lib/oeqa/runtime/cases/rpm.py
index fa86eb0537..a4ba4e6769 100644
--- a/poky/meta/lib/oeqa/runtime/cases/rpm.py
+++ b/poky/meta/lib/oeqa/runtime/cases/rpm.py
@@ -59,8 +59,8 @@ class RpmBasicTest(OERuntimeTestCase):
return
time.sleep(1)
user_pss = [ps for ps in output.split("\n") if u + ' ' in ps]
- msg = "There're %s 's process(es) still running: %s".format(u, "\n".join(user_pss))
- assertTrue(True, msg=msg)
+ msg = "User %s has processes still running: %s" % (u, "\n".join(user_pss))
+ self.fail(msg=msg)
def unset_up_test_user(u):
# ensure no test1 process in running
diff --git a/poky/meta/lib/oeqa/runtime/context.py b/poky/meta/lib/oeqa/runtime/context.py
index 0c5d1869ab..cb7227a8df 100644
--- a/poky/meta/lib/oeqa/runtime/context.py
+++ b/poky/meta/lib/oeqa/runtime/context.py
@@ -10,7 +10,6 @@ import sys
from oeqa.core.context import OETestContext, OETestContextExecutor
from oeqa.core.target.ssh import OESSHTarget
from oeqa.core.target.qemu import OEQemuTarget
-from oeqa.utils.dump import HostDumper
from oeqa.runtime.loader import OERuntimeTestLoader
@@ -20,12 +19,11 @@ class OERuntimeTestContext(OETestContext):
os.path.dirname(os.path.abspath(__file__)), "files")
def __init__(self, td, logger, target,
- host_dumper, image_packages, extract_dir):
+ image_packages, extract_dir):
super(OERuntimeTestContext, self).__init__(td, logger)
self.target = target
self.image_packages = image_packages
- self.host_dumper = host_dumper
self.extract_dir = extract_dir
self._set_target_cmds()
@@ -199,10 +197,6 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
return image_packages
- @staticmethod
- def getHostDumper(cmds, directory):
- return HostDumper(cmds, directory)
-
def _process_args(self, logger, args):
if not args.packages_manifest:
raise TypeError('Manifest file not provided')
@@ -215,9 +209,6 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
self.tc_kwargs['init']['target'] = \
OERuntimeTestContextExecutor.getTarget(args.target_type,
None, args.target_ip, args.server_ip, **target_kwargs)
- self.tc_kwargs['init']['host_dumper'] = \
- OERuntimeTestContextExecutor.getHostDumper(None,
- args.host_dumper_dir)
self.tc_kwargs['init']['image_packages'] = \
OERuntimeTestContextExecutor.readPackagesManifest(
args.packages_manifest)
diff --git a/poky/meta/lib/oeqa/selftest/cases/bblayers.py b/poky/meta/lib/oeqa/selftest/cases/bblayers.py
index b048948386..8faa060234 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bblayers.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bblayers.py
@@ -85,8 +85,9 @@ class BitbakeLayers(OESelftestTestCase):
result = runCmd('bitbake-layers show-recipes -i image')
self.assertIn('core-image-minimal', result.output)
self.assertNotIn('mtd-utils:', result.output)
- result = runCmd('bitbake-layers show-recipes -i cmake,pkgconfig')
+ result = runCmd('bitbake-layers show-recipes -i meson,pkgconfig')
self.assertIn('libproxy:', result.output)
+ result = runCmd('bitbake-layers show-recipes -i cmake,pkgconfig')
self.assertNotIn('mtd-utils:', result.output) # doesn't inherit either
self.assertNotIn('wget:', result.output) # doesn't inherit cmake
self.assertNotIn('waffle:', result.output) # doesn't inherit pkgconfig
diff --git a/poky/meta/lib/oeqa/selftest/cases/cve_check.py b/poky/meta/lib/oeqa/selftest/cases/cve_check.py
index 9534c9775c..60cecd1328 100644
--- a/poky/meta/lib/oeqa/selftest/cases/cve_check.py
+++ b/poky/meta/lib/oeqa/selftest/cases/cve_check.py
@@ -207,18 +207,34 @@ CVE_CHECK_REPORT_PATCHED = "1"
self.assertEqual(len(report["package"]), 1)
package = report["package"][0]
self.assertEqual(package["name"], "logrotate")
- found_cves = { issue["id"]: issue["status"] for issue in package["issue"]}
+ found_cves = {}
+ for issue in package["issue"]:
+ found_cves[issue["id"]] = {
+ "status" : issue["status"],
+ "detail" : issue["detail"] if "detail" in issue else "",
+ "description" : issue["description"] if "description" in issue else ""
+ }
# m4 CVE should not be in logrotate
self.assertNotIn("CVE-2008-1687", found_cves)
# logrotate has both Patched and Ignored CVEs
self.assertIn("CVE-2011-1098", found_cves)
- self.assertEqual(found_cves["CVE-2011-1098"], "Patched")
+ self.assertEqual(found_cves["CVE-2011-1098"]["status"], "Patched")
+ self.assertEqual(len(found_cves["CVE-2011-1098"]["detail"]), 0)
+ self.assertEqual(len(found_cves["CVE-2011-1098"]["description"]), 0)
+ detail = "not-applicable-platform"
+ description = "CVE is debian, gentoo or SUSE specific on the way logrotate was installed/used"
self.assertIn("CVE-2011-1548", found_cves)
- self.assertEqual(found_cves["CVE-2011-1548"], "Ignored")
+ self.assertEqual(found_cves["CVE-2011-1548"]["status"], "Ignored")
+ self.assertEqual(found_cves["CVE-2011-1548"]["detail"], detail)
+ self.assertEqual(found_cves["CVE-2011-1548"]["description"], description)
self.assertIn("CVE-2011-1549", found_cves)
- self.assertEqual(found_cves["CVE-2011-1549"], "Ignored")
+ self.assertEqual(found_cves["CVE-2011-1549"]["status"], "Ignored")
+ self.assertEqual(found_cves["CVE-2011-1549"]["detail"], detail)
+ self.assertEqual(found_cves["CVE-2011-1549"]["description"], description)
self.assertIn("CVE-2011-1550", found_cves)
- self.assertEqual(found_cves["CVE-2011-1550"], "Ignored")
+ self.assertEqual(found_cves["CVE-2011-1550"]["status"], "Ignored")
+ self.assertEqual(found_cves["CVE-2011-1550"]["detail"], detail)
+ self.assertEqual(found_cves["CVE-2011-1550"]["description"], description)
self.assertExists(summary_json)
check_m4_json(summary_json)
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index 4c8e375d00..14a80d5ff4 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -366,6 +366,38 @@ class DevtoolAddTests(DevtoolBase):
bindir = bindir[1:]
self.assertTrue(os.path.isfile(os.path.join(installdir, bindir, 'pv')), 'pv binary not found in D')
+ def test_devtool_add_binary(self):
+ # Create a binary package containing a known test file
+ tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+ self.track_for_cleanup(tempdir)
+ pn = 'tst-bin'
+ pv = '1.0'
+ test_file_dir = "var/lib/%s/" % pn
+ test_file_name = "test_file"
+ test_file_content = "TEST CONTENT"
+ test_file_package_root = os.path.join(tempdir, pn)
+ test_file_dir_full = os.path.join(test_file_package_root, test_file_dir)
+ bb.utils.mkdirhier(test_file_dir_full)
+ with open(os.path.join(test_file_dir_full, test_file_name), "w") as f:
+ f.write(test_file_content)
+ bin_package_path = os.path.join(tempdir, "%s.tar.gz" % pn)
+ runCmd("tar czf %s -C %s ." % (bin_package_path, test_file_package_root))
+
+ # Test devtool add -b on the binary package
+ self.track_for_cleanup(self.workspacedir)
+ self.add_command_to_tearDown('bitbake -c cleansstate %s' % pn)
+ self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+ result = runCmd('devtool add -b %s %s' % (pn, bin_package_path))
+ self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created')
+
+ # Build the resulting recipe
+ result = runCmd('devtool build %s' % pn)
+ installdir = get_bb_var('D', pn)
+ self.assertTrue(installdir, 'Could not query installdir variable')
+
+ # Check that a known file from the binary package has indeed been installed
+ self.assertTrue(os.path.isfile(os.path.join(installdir, test_file_dir, test_file_name)), '%s not found in D' % test_file_name)
+
def test_devtool_add_git_local(self):
# We need dbus built so that DEPENDS recognition works
bitbake('dbus')
diff --git a/poky/meta/lib/oeqa/selftest/cases/distrodata.py b/poky/meta/lib/oeqa/selftest/cases/distrodata.py
index c83a3a7bd6..111bd3c9be 100644
--- a/poky/meta/lib/oeqa/selftest/cases/distrodata.py
+++ b/poky/meta/lib/oeqa/selftest/cases/distrodata.py
@@ -92,7 +92,7 @@ The following recipes do not have a DESCRIPTION. Please add an entry for DESCRIP
def is_maintainer_exception(entry):
exceptions = ["musl", "newlib", "linux-yocto", "linux-dummy", "mesa-gl", "libgfortran", "libx11-compose-data",
- "cve-update-db-native","cve-update-nvd2-native",]
+ "cve-update-nvd2-native",]
for i in exceptions:
if i in entry:
return True
diff --git a/poky/meta/lib/oeqa/selftest/cases/fitimage.py b/poky/meta/lib/oeqa/selftest/cases/fitimage.py
index 7bc171e02d..9383d0c4db 100644
--- a/poky/meta/lib/oeqa/selftest/cases/fitimage.py
+++ b/poky/meta/lib/oeqa/selftest/cases/fitimage.py
@@ -33,6 +33,8 @@ KERNEL_CLASSES = " kernel-fitimage "
# RAM disk variables including load address and entrypoint for kernel and RAM disk
IMAGE_FSTYPES += "cpio.gz"
INITRAMFS_IMAGE = "core-image-minimal"
+# core-image-minimal is used as initramfs here, drop the rootfs suffix
+IMAGE_NAME_SUFFIX:pn-core-image-minimal = ""
UBOOT_RD_LOADADDRESS = "0x88000000"
UBOOT_RD_ENTRYPOINT = "0x88000000"
UBOOT_LOADADDRESS = "0x80080000"
diff --git a/poky/meta/lib/oeqa/selftest/cases/glibc.py b/poky/meta/lib/oeqa/selftest/cases/glibc.py
index a446543a17..4ec4b85d67 100644
--- a/poky/meta/lib/oeqa/selftest/cases/glibc.py
+++ b/poky/meta/lib/oeqa/selftest/cases/glibc.py
@@ -28,7 +28,7 @@ class GlibcSelfTestBase(OESelftestTestCase, OEPTestResultTestCase):
features.append('TOOLCHAIN_TEST_HOST_USER = "root"')
features.append('TOOLCHAIN_TEST_HOST_PORT = "22"')
# force single threaded test execution
- features.append('EGLIBCPARALLELISM_task-check:pn-glibc-testsuite = "PARALLELMFLAGS="-j1""')
+ features.append('EGLIBCPARALLELISM:task-check:pn-glibc-testsuite = "PARALLELMFLAGS="-j1""')
self.write_config("\n".join(features))
bitbake("glibc-testsuite -c check")
diff --git a/poky/meta/lib/oeqa/selftest/cases/rust.py b/poky/meta/lib/oeqa/selftest/cases/rust.py
new file mode 100644
index 0000000000..7a0fd7033d
--- /dev/null
+++ b/poky/meta/lib/oeqa/selftest/cases/rust.py
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: MIT
+import os
+import subprocess
+from oeqa.core.decorator import OETestTag
+from oeqa.core.case import OEPTestResultTestCase
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu, Command
+from oeqa.utils.sshcontrol import SSHControl
+
+def parse_results(filename):
+ tests = {}
+ with open(filename, "r") as f:
+ lines = f.readlines()
+ for line in lines:
+ if "..." in line and "test [" in line:
+ test = line.split("test ")[1].split(" ... ")[0]
+ if "] " in test:
+ test = test.split("] ", 1)[1]
+ result = line.split(" ... ")[1].strip()
+ if result == "ok":
+ result = "PASS"
+ elif result == "failed":
+ result = "FAIL"
+ elif "ignored" in result:
+ result = "SKIPPED"
+ if test in tests:
+ if tests[test] != result:
+ print("Duplicate and mismatching result %s for %s" % (result, test))
+ else:
+ print("Duplicate result %s for %s" % (result, test))
+ else:
+ tests[test] = result
+ return tests
+
+# Total time taken for testing is of about 2hr 20min, with PARALLEL_MAKE set to 40 number of jobs.
+@OETestTag("toolchain-system")
+@OETestTag("toolchain-user")
+@OETestTag("runqemu")
+class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
+ def test_rust(self, *args, **kwargs):
+ # build remote-test-server before image build
+ recipe = "rust"
+ bitbake("{} -c test_compile".format(recipe))
+ builddir = get_bb_var("RUSTSRC", "rust")
+ # build core-image-minimal with required packages
+ default_installed_packages = ["libgcc", "libstdc++", "libatomic", "libgomp"]
+ features = []
+ features.append('IMAGE_FEATURES += "ssh-server-dropbear"')
+ features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages)))
+ self.write_config("\n".join(features))
+ bitbake("core-image-minimal")
+ # wrap the execution with a qemu instance.
+ # Tests are run with 512 tasks in parallel to execute all tests very quickly
+ with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 512") as qemu:
+ # Copy remote-test-server to image through scp
+ host_sys = get_bb_var("RUST_BUILD_SYS", "rust")
+ ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user="root")
+ ssh.copy_to(builddir + "/build/" + host_sys + "/stage1-tools-bin/remote-test-server","~/")
+ # Execute remote-test-server on image through background ssh
+ command = '~/remote-test-server --bind 0.0.0.0:12345 -v'
+ sshrun=subprocess.Popen(("ssh", '-o', 'UserKnownHostsFile=/dev/null', '-o', 'StrictHostKeyChecking=no', '-f', "root@%s" % qemu.ip, command), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ # Get the values of variables.
+ tcpath = get_bb_var("TARGET_SYS", "rust")
+ targetsys = get_bb_var("RUST_TARGET_SYS", "rust")
+ rustlibpath = get_bb_var("WORKDIR", "rust")
+ tmpdir = get_bb_var("TMPDIR", "rust")
+
+ # Exclude the test folders that error out while building
+ # TODO: Fix the errors and include them for testing
+ # no-fail-fast: Run all tests regardless of failure.
+ # bless: First runs rustfmt to format the codebase,
+ # then runs tidy checks.
+ testargs = "--exclude tests/rustdoc --exclude src/tools/rust-analyzer --exclude tests/rustdoc-json --exclude tests/run-make-fulldeps --exclude src/tools/tidy --exclude src/tools/rustdoc-themes --exclude src/rustdoc-json-types --exclude src/librustdoc --exclude src/doc/unstable-book --exclude src/doc/rustdoc --exclude src/doc/rustc --exclude compiler/rustc --exclude library/panic_abort --exclude library/panic_unwind --exclude src/tools/lint-docs --exclude tests/rustdoc-js-std --doc --no-fail-fast --bless"
+
+ # Set path for target-poky-linux-gcc, RUST_TARGET_PATH and hosttools.
+ cmd = " export PATH=%s/recipe-sysroot-native/usr/bin:$PATH;" % rustlibpath
+ cmd = cmd + " export TARGET_VENDOR=\"-poky\";"
+ cmd = cmd + " export PATH=%s/recipe-sysroot-native/usr/bin/%s:%s/hosttools:$PATH;" % (rustlibpath, tcpath, tmpdir)
+ cmd = cmd + " export RUST_TARGET_PATH=%s/rust-targets;" % rustlibpath
+ # Trigger testing.
+ cmd = cmd + " export TEST_DEVICE_ADDR=\"%s:12345\";" % qemu.ip
+ cmd = cmd + " cd %s; python3 src/bootstrap/bootstrap.py test %s --target %s > summary.txt 2>&1;" % (builddir, testargs, targetsys)
+ runCmd(cmd)
+
+ ptestsuite = "rust"
+ self.ptest_section(ptestsuite, logfile = builddir + "/summary.txt")
+ filename = builddir + "/summary.txt"
+ test_results = parse_results(filename)
+ for test in test_results:
+ self.ptest_result(ptestsuite, test, test_results[test])
diff --git a/poky/meta/lib/oeqa/targetcontrol.py b/poky/meta/lib/oeqa/targetcontrol.py
index d686fe07ec..e21655c979 100644
--- a/poky/meta/lib/oeqa/targetcontrol.py
+++ b/poky/meta/lib/oeqa/targetcontrol.py
@@ -104,7 +104,6 @@ class QemuTarget(BaseTarget):
self.kernel = os.path.join(d.getVar("DEPLOY_DIR_IMAGE"), d.getVar("KERNEL_IMAGETYPE", False) + '-' + d.getVar('MACHINE', False) + '.bin')
self.qemulog = os.path.join(self.testdir, "qemu_boot_log.%s" % self.datetime)
dump_target_cmds = d.getVar("testimage_dump_target")
- dump_host_cmds = d.getVar("testimage_dump_host")
dump_monitor_cmds = d.getVar("testimage_dump_monitor")
dump_dir = d.getVar("TESTIMAGE_DUMP_DIR")
if not dump_dir:
@@ -141,7 +140,6 @@ class QemuTarget(BaseTarget):
boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT")),
use_kvm = use_kvm,
dump_dir = dump_dir,
- dump_host_cmds = dump_host_cmds,
logger = logger,
tmpfsdir = d.getVar("RUNQEMU_TMPFS_DIR"),
serial_ports = len(d.getVar("SERIAL_CONSOLES").split()))
diff --git a/poky/meta/lib/oeqa/utils/dump.py b/poky/meta/lib/oeqa/utils/dump.py
index d420b497f9..d4d271369f 100644
--- a/poky/meta/lib/oeqa/utils/dump.py
+++ b/poky/meta/lib/oeqa/utils/dump.py
@@ -51,9 +51,7 @@ class BaseDumper(object):
self.dump_dir = dump_dir
def _construct_filename(self, command):
- if isinstance(self, HostDumper):
- prefix = "host"
- elif isinstance(self, TargetDumper):
+ if isinstance(self, TargetDumper):
prefix = "target"
elif isinstance(self, MonitorDumper):
prefix = "qmp"
@@ -76,22 +74,6 @@ class BaseDumper(object):
with open(fullname, 'w') as dump_file:
dump_file.write(output)
-class HostDumper(BaseDumper):
- """ Class to get dumps from the host running the tests """
-
- def __init__(self, cmds, parent_dir):
- super(HostDumper, self).__init__(cmds, parent_dir)
-
- def dump_host(self, dump_dir=""):
- if dump_dir:
- self.dump_dir = dump_dir
- env = os.environ.copy()
- env['PATH'] = '/usr/sbin:/sbin:/usr/bin:/bin'
- env['COLUMNS'] = '9999'
- for cmd in self.cmds:
- result = runCmd(cmd, ignore_status=True, env=env)
- self._write_dump(cmd.split()[0], result.output)
-
class TargetDumper(BaseDumper):
""" Class to get dumps from target, it only works with QemuRunner.
Will give up permanently after 5 errors from running commands over
diff --git a/poky/meta/lib/oeqa/utils/logparser.py b/poky/meta/lib/oeqa/utils/logparser.py
index 8054acc853..496d9e0c90 100644
--- a/poky/meta/lib/oeqa/utils/logparser.py
+++ b/poky/meta/lib/oeqa/utils/logparser.py
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: MIT
#
-import sys
+import enum
import os
import re
@@ -106,30 +106,48 @@ class PtestParser(object):
f.write(status + ": " + test_name + "\n")
-# ltp log parsing
-class LtpParser(object):
- def __init__(self):
- self.results = {}
- self.section = {'duration': "", 'log': ""}
-
+class LtpParser:
+ """
+ Parse the machine-readable LTP log output into a ptest-friendly data structure.
+ """
def parse(self, logfile):
- test_regex = {}
- test_regex['PASSED'] = re.compile(r"PASS")
- test_regex['FAILED'] = re.compile(r"FAIL")
- test_regex['SKIPPED'] = re.compile(r"SKIP")
-
- with open(logfile, errors='replace') as f:
+ results = {}
+ # Aaccumulate the duration here but as the log rounds quick tests down
+ # to 0 seconds this is very much a lower bound. The caller can replace
+ # the value.
+ section = {"duration": 0, "log": ""}
+
+ class LtpExitCode(enum.IntEnum):
+ # Exit codes as defined in ltp/include/tst_res_flags.h
+ TPASS = 0 # Test passed flag
+ TFAIL = 1 # Test failed flag
+ TBROK = 2 # Test broken flag
+ TWARN = 4 # Test warning flag
+ TINFO = 16 # Test information flag
+ TCONF = 32 # Test not appropriate for configuration flag
+
+ with open(logfile, errors="replace") as f:
+ # Lines look like this:
+ # tag=cfs_bandwidth01 stime=1689762564 dur=0 exit=exited stat=32 core=no cu=0 cs=0
for line in f:
- for t in test_regex:
- result = test_regex[t].search(line)
- if result:
- self.results[line.split()[0].strip()] = t
-
- for test in self.results:
- result = self.results[test]
- self.section['log'] = self.section['log'] + ("%s: %s\n" % (result.strip()[:-2], test.strip()))
+ if not line.startswith("tag="):
+ continue
- return self.results, self.section
+ values = dict(s.split("=") for s in line.strip().split())
+
+ section["duration"] += int(values["dur"])
+ exitcode = int(values["stat"])
+ if values["exit"] == "exited" and exitcode == LtpExitCode.TCONF:
+ # Exited normally with the "invalid configuration" code
+ results[values["tag"]] = "SKIPPED"
+ elif exitcode == LtpExitCode.TPASS:
+ # Successful exit
+ results[values["tag"]] = "PASSED"
+ else:
+ # Other exit
+ results[values["tag"]] = "FAILED"
+
+ return results, section
# ltp Compliance log parsing
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index 0ef8cf0a79..22cf258ddd 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -21,7 +21,6 @@ import threading
import codecs
import logging
import tempfile
-from oeqa.utils.dump import HostDumper
from collections import defaultdict
import importlib
@@ -33,8 +32,8 @@ re_control_char = re.compile('[%s]' % re.escape("".join(control_chars)))
class QemuRunner:
- def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds,
- use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None, tmpfsdir=None):
+ def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, use_kvm, logger, use_slirp=False,
+ serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None, tmpfsdir=None):
# Popen object for runqemu
self.runqemu = None
@@ -69,7 +68,6 @@ class QemuRunner:
if not workdir:
workdir = os.getcwd()
self.qemu_pidfile = workdir + '/pidfile_' + str(os.getpid())
- self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
self.monitorpipe = None
self.logger = logger
@@ -138,7 +136,6 @@ class QemuRunner:
self.logger.error('runqemu exited with code %d' % self.runqemu.returncode)
self.logger.error('Output from runqemu:\n%s' % self.getOutput(self.runqemu.stdout))
self.stop()
- self._dump_host()
def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqemuparams='', launch_cmd=None, discard_writes=True):
env = os.environ.copy()
@@ -286,7 +283,6 @@ class QemuRunner:
if self.runqemu.returncode:
# No point waiting any longer
self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
- self._dump_host()
self.logger.warning("Output from runqemu:\n%s" % self.getOutput(output))
self.stop()
return False
@@ -314,7 +310,6 @@ class QemuRunner:
ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0]
processes = ps.decode("utf-8")
self.logger.debug("Running processes:\n%s" % processes)
- self._dump_host()
op = self.getOutput(output)
self.stop()
if op:
@@ -430,7 +425,6 @@ class QemuRunner:
self.logger.error("Couldn't get ip from qemu command line and runqemu output! "
"Here is the qemu command line used:\n%s\n"
"and output from runqemu:\n%s" % (cmdline, out))
- self._dump_host()
self.stop()
return False
@@ -517,7 +511,6 @@ class QemuRunner:
lines = tail(bootlog if bootlog else self.msg)
self.logger.warning("Last 25 lines of text (%d):\n%s" % (len(bootlog), lines))
self.logger.warning("Check full boot log: %s" % self.logfile)
- self._dump_host()
self.stop()
return False
@@ -698,13 +691,6 @@ class QemuRunner:
status = 1
return (status, str(data))
-
- def _dump_host(self):
- self.host_dumper.create_dir("qemu")
- self.logger.warning("Qemu ended unexpectedly, dump data from host"
- " is in %s" % self.host_dumper.dump_dir)
- self.host_dumper.dump_host()
-
# This class is for reading data from a socket and passing it to logfunc
# to be processed. It's completely event driven and has a straightforward
# event loop. The mechanism for stopping the thread is a simple pipe which