summaryrefslogtreecommitdiff
path: root/poky/scripts/lib
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2021-02-13 00:35:20 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2021-02-25 23:15:06 +0300
commitd1e894976442c78577f52fe7b169812d00289120 (patch)
treeb65864e37eca17e36157663e48e82e3745145379 /poky/scripts/lib
parentec0e87b37a04927ed4549b1b9d2e23a8c345cb7a (diff)
downloadopenbmc-d1e894976442c78577f52fe7b169812d00289120.tar.xz
poky: subtree update:796be0593a..9294bc4bb4
This includes our temporary libpam revert until OpenBMC can get in support for the new libraries. See openbmc/openbmc#3750 for more information. Abdellatif El Khlifi (4): kernel-fitimage: adding support for Initramfs bundle and u-boot script kernel: skip installing fitImage when using Initramfs bundles oeqa/selftest/imagefeatures: adding fitImage initramfs bundle testcase ref-manual/ref-classes: update kernel-fitimage with Initramfs bundle and boot script Adrian Herrera (2): scripts: oe-run-native, fix *-native directories common-licenses: add BSD-3-Clause-Clear license Alan Perry (2): binutils: add libopcodes package for perf iproute2: Add subpackage for rdma command Alejandro Hernandez Samaniego (2): newlib: Upgrade 3.3.0 -> 4.1.0 newlib: Update licence Alex Stewart (1): opkg: upgrade to version 0.4.4 Alexander Kanavin (89): selftest/reproducible: enable world reproducibility test selftest/reproducible: add an exclusion list for items that are not yet reproducible kea: upgrade 1.7.10 -> 1.8.1 valgrind: exclude bar_bad/bar_bad_xml from ptests bzip2: run ptests without valgrind lttng-tools: disable more failing ptests glib-2.0: add a patch to increase a test timeout acpica: upgrade 20201113 -> 20201217 bind: upgrade 9.16.9 -> 9.16.10 diffoscope: upgrade 161 -> 163 dnf: upgrade 4.4.0 -> 4.5.2 enchant2: upgrade 2.2.13 -> 2.2.14 epiphany: upgrade 3.38.1 -> 3.38.2 ethtool: upgrade 5.9 -> 5.10 gtk+3: upgrade 3.24.23 -> 3.24.24 init-system-helpers: upgrade 1.58 -> 1.60 kbd: upgrade 2.3.0 -> 2.4.0 kea: upgrade 1.8.1 -> 1.8.2 libmodulemd: upgrade 2.9.4 -> 2.11.1 libpcre2: upgrade 10.35 -> 10.36 libtirpc: upgrade 1.2.6 -> 1.3.1 libusb1: upgrade 1.0.23 -> 1.0.24 libva: upgrade 2.9.0 -> 2.10.0 libx11: upgrade 1.6.12 -> 1.7.0 lighttpd: upgrade 1.4.56 -> 1.4.57 ninja: upgrade 1.10.1 -> 1.10.2 puzzles: upgrade to latest revision python3-hypothesis: upgrade 5.41.5 -> 5.43.3 python3-py: upgrade 1.9.0 -> 1.10.0 python3-setuptools-scm: upgrade 4.1.2 -> 5.0.1 sqlite3: upgrade 3.33.0 -> 3.34.0 stress-ng: upgrade 0.11.24 -> 0.12.00 sudo: upgrade 1.9.3p1 -> 1.9.4p1 sysvinit: upgrade 2.97 -> 2.98 vala: upgrade 0.50.1 -> 0.50.2 vulkan-headers: upgrade 1.2.154.0 -> 1.2.162.0 webkitgtk: upgrade 2.30.2 -> 2.30.4 xprop: upgrade 1.2.4 -> 1.2.5 xserver-xorg: upgrade 1.20.9 -> 1.20.10 glib-2.0: update 2.66.2 -> 2.66.4 rpm: update 4.16.0 -> 4.16.1.2 piglit: update to latest revision sbc: update 1.4 -> 1.5 libdnf: update 0.55.0 -> 0.55.2 libva-utils: update 2.9.1 -> 2.10.0 python3-importlib-metadata: update 3.1.1 -> 3.3.0 python3: update 3.9.0 -> 3.9.1 vulkan-loader: upgrade 1.2.154.1 -> 1.2.162.0 vulkan-tools: upgrade 1.2.154.0 -> 1.2.162.0 systemd-bootchart: update 233 -> 234 zstd: add recipe from meta-oe zstd: update 1.4.5 -> 1.4.8 devtool: gitsm:// should be handled same as git:// in upgrades ovmf: upgrade 202008 -> 202011 libksba: update 1.4.0 -> 1.5.0 libjitterentropy: update 2.2.0 -> 3.0.0 icu: update 68.1 -> 68.2 gnutls: update 3.6.15 -> 3.7.0 gnupg: update 2.2.23 -> 2.2.26 boost: update 1.74.0 -> 1.75.0 kexec-tools: update 2.0.20 -> 2.0.21 vulkan-samples: update to latest revision libpam: update 1.3.1 -> 1.5.1 strace: update 5.9 -> 5.10 python3-pytest: update 6.1.2 -> 6.2.1 mtools: update 4.0.25 -> 4.0.26 gnu-config: update to latest revision cmake: update 3.18.4 -> 3.19.2 ccache: upgrade 3.7.11 -> 4.1 ccache.bbclass: use ccache from host distribution gawk: add missing ptest dependency util-linux: upgrade 2.36 -> 2.36.1 ell: upgrade 0.33 -> 0.35 net-tools: correct version check oeqa/ptest: print a warning if ptests failed bash: update 5.0 -> 5.1 runtime_test.py: correct output check for bash 5.1 distcc: update 3.3.3 -> 3.3.5 gptfdisk: update 1.0.5 -> 1.0.6 python3-setuptools: update 51.0.0 -> 52.0.0 ruby: update 2.7.2 -> 3.0.0 vulkan-samples: update to latest revision dpkg: update 1.20.5 -> 1.20.7.1 libhandy: upgrade 1.0.2 -> 1.0.3 tar: update 1.32 -> 1.33 at: correct upstream version check shaderc: correct version check spirv-tools: correct version check u-boot: upgrade 2020.10 -> 2021.01 Alistair Francis (1): opensbi: Bump from 0.8 to 0.9 Anatol Belski (1): iproute2: Make it easier to manipulate SUBDIRS list from bbappend Andreas Müller (1): openssl: re-enable whirlpool Andrey Mozzhuhin (1): toolchain-shar-extract.sh: Handle special characters in script path Anton Kachalov (1): rootfs: add option to allow delayed postinsts on read-only rootfs Anuj Mittal (45): mesa: add more details to elf-tls patch mesa: remove patch disabling asm linux-yocto: update genericx86 to v5.4.87 enchant2: upgrade 2.2.14 -> 2.2.15 gstreamer1.0: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-plugins-base: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-plugins-good: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-plugins-bad: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-libav: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-omx: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-rtsp-server: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-python: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-vaapi: upgrade 1.18.2 -> 1.18.3 gst-examples: upgrade 1.18.2 -> 1.18.3 gst-devtools: upgrade 1.18.2 -> 1.18.3 gstreamer1.0-plugins-ugly: upgrade 1.18.2 -> 1.18.3 libepoxy: upgrade 1.5.4 -> 1.5.5 libproxy: upgrade 0.4.15 -> 0.4.17 stress-ng: upgrade 0.12.00 -> 0.12.01 vulkan-tools: upgrade 1.2.162.0 -> 1.2.162.1 harfbuzz: upgrade 2.7.2 -> 2.7.4 mpg123: upgrade 1.26.3 -> 1.26.4 piglit: upgrade to latest revision vala: upgrade 0.50.2 -> 0.50.3 gcr: upgrade 3.38.0 -> 3.38.1 python3-pygments: upgrade 2.7.3 -> 2.7.4 logrotate: upgrade 3.17.0 -> 3.18.0 lzip: upgrade 1.21 -> 1.22 python3-mako: upgrade 1.1.3 -> 1.1.4 wget: upgrade 1.20.3 -> 1.21.1 lighttpd: upgrade 1.4.57 -> 1.4.58 python3-importlib-metadata: upgrade 3.3.0 -> 3.4.0 python3-git: upgrade 3.1.11 -> 3.1.12 acpica: upgrade 20201217 -> 20210105 diffstat: upgrade 1.63 -> 1.64 python3-dbusmock: upgrade 0.19 -> 0.22.0 python3-hypothesis: upgrade 5.43.3 -> 6.0.2 python3-numpy: upgrade 1.19.4 -> 1.19.5 resolvconf: upgrade 1.83 -> 1.87 sudo: upgrade 1.9.4p1 -> 1.9.5p1 git: upgrade 2.29.2 -> 2.30.0 meson: upgrade 0.56.0 -> 0.56.2 rt-tests/hwlatdetect: upgrade 1.9 -> 1.10 gstreamer1.0: fix failing ptest python3: fix CVE-2021-3177 Awais Belal (1): kernel.bbclass: fix deployment for initramfs images Bruce Ashfield (38): linux-yocto-rt/5.4: update to -rt44 linux-yocto/5.4: update to v5.4.80 lttng-modules: fix build against v5.10+ kern-tools: non-gcc config support and option re-classification linux-yocto/cfg: qemuppc: set CONFIG_SCSI to '=y' linux-yocto/5.4: update to v5.4.82 linux-yocto/cfg: qemuarm64-gfx.cfg: add CONFIG_INPUT_UINPUT linux-yocto/5.4: update to v5.4.83 linux-yocto/5.8/cfg: fix -tiny warnings linux-yocto/5.4/cfg: fix -tiny warnings systemtap: fix on target build for 4.4 and 5.10+ linux-yocto/5.4/cfg: fix FIRMWARE_LOADER warnings kernel-devsrc: fix 32bit ARM devsrc builds linux-yocto/5.4: update to v5.4.85 linux-yocto-dev: bump to v5.11-rc libc-headers: update to v5.10 machine/qemuarm*: add vmalloc kernel parameter linux-yocto: introduce v5.10 reference kernel recipes linux-yocto/5.10: update to v5.10.2 conf/machine: bump qemu preferred versions to 5.10 poky/poky-tiny: set preferred kernel to 5.10 yocto-bsp: explicitly set preferred version for reference boards poky-alt: don't use conditional assignment for preferred kernel version linux-yocto/5.10: update to v5.10.4 linux-yocto/5.10: update to v5.10.5 linux-yocto/5.4: update to v5.4.87 linux-yocto/5.10/cfg: x86 and beaglebone config fixes linux-yocto: remove 5.8 recipes yocto-bsp: drop 5.8 bbappend linux-yocto/5.10: update to v5.10.8 linux-yocto/5.4: update to v5.4.90 linux-yocto-rt/5.10: fix 5.10-rt build breakage linux-yocto-rt/5.4: fix 5.4-stable caused build breakage linux-yocto/5.10: update to v5.10.10 linux-yocto/5.10: update to v5.10.12 linux-yocto/5.4: update to v5.4.94 linux-yocto/5.10: binutils 2.36 fixes yocto-bsp: linux-yocto: update to v5.10.12 Changhyeok Bae (1): python3-importlib-metadata: Add toml dependency Changqing Li (4): libexif: fix CVE-2020-0198; CVE-2020-0452 libpam: support usrmerge libpam: remove unused code qemu: fix do_compile error Chee Yang Lee (1): initrdscripts: init-install-efi.sh install extra files for ESP Chen Qi (1): systemd: change /bin/nologin to /sbin/nologin Chris Laplante (2): contrib/git-hooks: add a sendemail-validate example hook that adds FROM: lines to outgoing patch emails systemd.bbclass: improve error message when a service unit specified in SYSTEMD_SERVICE is not found Christophe Priouzeau (1): bitbake: fetch2/wget: Update user-agent Christopher Larson (2): grub-efi-cfg: exclude OVERRIDES from build_efi_cfg vardeps uboot-extlinux-config: exclude OVERRIDES from do_create_extlinux_config vardeps Deepak Rawat (1): openssl: add support for mingw64 as target Denys Dmytriyenko (2): maintainers: update own email address wayland: upgrade 1.18.0 -> 1.19.0 Diego Sueiro (4): wic: Introduce empty plugin to create unformatted empty partitions modutils-initscripts: Use depmod -a when modules.dep is empty staging: Introduce /sysroot-only to SYSROOT_DIRS dev-manual: Add usage of /sysroot-only in SYSROOT_DIRS Dmitry Baryshkov (4): perl: fix installation failure because of shell issue linux-firmware: upgrade 20201118 -> 20201218 linux-firmware: package firmware for Lontium lt9611uxc bridge mesa,mesa-gl: upgrade to 20.3.2 Dorinda (8): sanity: Verify that user isn't building in PSEUDO_IGNORE_PATHS sanity.bbclass: sanity check for if bitbake is present in PATH sanity.bbclass: check if PSEUDO_IGNORE_PATHS and ${S} overlap elfutils: split libdebuginfod into its own package elfutils: add PACKAGECONFIG for debuginfod elfutils: add support for ipk sanity.bbclass: Check if PSEUDO_IGNORE_PATHS and paths under pseudo control overlap oe-pkgdata-util: Check if environment script is initialized Easwar Hariharan (1): classes/kernel-fitimage: make fitimage_emit_section_config more readable Elvis Stansvik (1): ref-manual: terms: Fix poky tarball root folder Hongxu Jia (1): deb: do not insert feed uris if apt not installed Jack Mitchell (1): distutils3: allow setup.py to be run from a different directory to ${S} Joey Degges (4): bitbake: tests/fetch: Organize usehead tests by net requirements bitbake: tests/fetch: Document behavior of test_gitfetch_usehead bitbake: tests/fetch: Test usehead with a non-default name bitbake: fetch/git: Fix usehead for non-default names Jonathan Richardson (1): core-image-tiny-initramfs: Add compatiblity for aarch64 Jose Quaresma (22): gstreamer1.0: upgrade 1.18.1 -> 1.18.2 gstreamer1.0-plugins-bad: v4l2codecs fix typo gstreamer1.0-plugins-bad: add support for aom plugin gstreamer1.0-plugins-bad: add support for x265 plugin gstreamer1.0-plugins-bad: sctp plugin uses the internal usrsctp static lib gstreamer1.0-plugins-bad: remove unsupported plugins comment gstreamer1.0-plugins-bad: netsim plugin don't have external deps gstreamer1.0-plugins-bad: transcode plugin external deps is always present gstreamer1.0: use the correct meson option for the capabilities shaderc: upgrade 2020.3 -> 2020.4 spirv-tools: upgrade 2020.5 -> 2020.6 common-licenses: Add GPL-3.0-with-bison-exception glslang: upgrade 8.13.3743 -> 11.1.0 glslang: enable shared libs glslang: disable precompiled header shaderc: avoid reproducible issues shaderc: fix the build with glslang 11.1.0 spirv-headers: Add receipe spirv-tools: cleanup shaderc: add spirv-headers as dependencie spirv-tools: fix reproducible selftest/reproducible: remove spirv-tools-dev from exclusion list Joshua Watt (4): diffoscope: upgrade 163 -> 164 ref-manual: Clarify recommended operator for PROVIDES bash: Disable bracketed input by default bitbake: logging: Make bitbake logger compatible with python logger Kai Kang (1): adwaita-icon-theme: add version 3.34.3 back Kamel Bouhara (2): npm.bbclass: make shrinkwrap file optional recipetool: create: only add npmsw url if required Kevin Hao (2): Revert "yocto-bsp: explicitly set preferred version for reference boards" meta-yocto-bsp: Bump the kernel to v5.10 Khairul Rohaizzat Jamaluddin (4): openssl: Update 1.1.1h -> 1.1.1i go: Update 1.15.5 -> 1.15.6 curl: Update 7.73.0 -> 7.74.0 ffmpeg: Fix CVE-2020-35964, CVE-2020-35965 Khem Raj (37): musl: Update to latest master systemd: Fix reallocarray check go.bbclass: Use external linker for native packages qemuriscv: check serial consoles w.r.t. /proc/consoles busybox-inittab: Implement SYSVINIT_ENABLED_GETTYS and USE_VT initscripts: use quotes for shell variable comparision busybox: Install /etc/default/rcS when used as init system busybox: Run mdev as daemon rcS: Define identifier for init system used initscripts: Use initctl on sysvinit only busybox: Sync rcS.default with sysvinit ltp: Fix ltp-pan crash on 32bit arches using 64bit time_t pulseaudio: Fix build with clang for non-x86 target util-linux: Build fixes for 32bit arches with 64bit time_t libpam: Drop musl patches ccache: Build fixes for clang and riscv32 shadow: Remove lastlog pam plugin on musl system rxvt-unicode: Disable lastlog on musl systems openssh: Disable lastlog on musl dropbear: Disable lastlog and wtmp on musl ccache: Fix build on aarch64/clang openssl: Enable rc4/rc2/bf/md4 algorithms openssl: Enable psk for qtbase libyaml: Enable static lib on native/nativesdk musl/glibc: Document assembly file directive fix musl: Update to 1.2.2 release binutils: Upgrade to 2.36 release binutils: Package libdep linker plugins binutils: Disable parallel install for target/nativesdk binutils musl: Drop adding .file directive in asm files glibc: Drop adding .file directive in asm files glibc: Upgrade to 2.33 glibc: Enable cet glibc: Require full ISA support for x86-64 level marker security_flags.inc: Use -O with -D_FORTIFY_SOURCE systemd: Fix build on musl autoconf: Fix typo for prefuncs Lee Chee Yang (8): gdk-pixbuf: fix CVE-2020-29385 wic/direct/kparser: ensure fsuuid for vfat and msdos align with format p11-kit: upgrade 0.23.21 -> 0.23.22 cve-check: replace Looseversion with custom version class cve_check: add CVE_VERSION_SUFFIX to indicate suffix in versioning openssl: set CVE_VERSION_SUFFIX wic/selftest: test_permissions also test bitbake image wic: debug mode to keep tmp directory Leon Anavi (1): common-tasks.rst: Fix GNU_HASH in hello.bb Li Wang (2): qemu: CVE-2020-25723 qemu: CVE-2020-28916 Luca Boccassi (7): classes/kernel-fitimage: add ability to sign individual images systemd: update 246 -> 247 systemd: add package config for systemd-oomd systemd: ship new systemd-dissect in -extra-utils systemd: set -Dmode=release as recommended by NEWS systemd: add RRECOMMENDS for weak dependencies, if enabled systemd: update to v247.3 Mans Rullgard (1): boost: drop arm-intrinsics.patch Marek Vasut (2): meta: toolchain-shar-relocate.sh: Do not use $target_sdk_dir as regex meta: toolchain-shar-relocate.sh: Filter out post-relocate-setup script Mark Jonas (1): parted: Make readline dependency optional Martin Jansa (3): license.bbclass: Add COMMON_LICENSE_DIR and LICENSE_PATH dirs to PSEUDO_IGNORE_PATHS busybox.inc: install rcS, rcK and rcS.default only with busybox in VIRTUAL-RUNTIME_init_manager image_types.bbclass: tar: use posix format instead of gnu Matt Hoosier (1): bitbake: fetch/git: download LFS content too during do_fetch Maxime Roussin-Bélanger (1): meta: add missing descriptions in some support recipes Michael Halstead (4): releases: conf: add link to 3.2.1, update to include 3.2.1 releases: conf: add link to 3.1.5, update to include 3.2.1 & 3.1.5 uninative: Upgrade to 2.10 yocto-uninative.inc: version 2.11 updates glibc to 2.33 Michael Ho (2): rootfs_ipk: allow do_populate_sdk in parallel to do_rootfs license_image.bbclass: fix missing recipeinfo on self Mike Looijmans (1): license_image.bbclass: Don't attempt to symlink to the same file Mikko Rapeli (1): zip: whitelist CVE-2018-13410 and CVE-2018-13684 Milan Shah (2): oe-pkgdata-util: Added a test to verify oe-pkgdata-util without parameters bitbake: utils: add docstrings to functions Mingli Yu (4): kbd: fix transaction conflict systemd: resolve executable path if it is relative libpam: add ptest support qemu: make ptest rework Nathan Rossi (8): gcc: Add patch to resolve i*86 tune configuration overrides qemu.inc: Add seccomp PACKAGECONFIG option ncurses: Prevent LDFLAGS being emitted in .pc files which: add nativesdk to BBCLASSEXTEND sed: add nativesdk to BBCLASSEXTEND grep: add nativesdk to BBCLASSEXTEND coreutils: enable xattrs by default for nativesdk gcc: Backport patch to resolve i*86 tune configuration overrides Naveen Saini (1): gstreamer1.0-plugins-bad: fix msdk pkgconfig build failure Oleksandr Kravchuk (4): python3-smmap: update to 4.0.0 python3-numpy: update to 0.20.0 inetutils: update to 2.0 ell: update to 0.37 Oleksiy Obitotskyy (2): flex: Fix --noline option behavior dtc: improve reproducibility Oleksiy Obitotskyy yIEf0zt.mo (1): toolchain-shar-relocate.sh: Fix handling files with colons Ovidiu Panait (5): timezone: upgrade to 2020e timezone: upgrade to 2020f variables: Add documentation for KERNEL_DTC_FLAGS kernel-devicetree: Introduce KERNEL_DTC_FLAGS to pass dtc flags timezone: upgrade to 2021a Paul Barker (22): bitbake.conf: Prevent pyc file generation in pseudo context documentation: Simplify oe_wiki and oe_home links documentation: Simplify layerindex and layer links documentation: Simplify remaining yocto_home links profile-manual: Simplify yocto_bugs link ref-manual: Simplify oe_lists link documentation: Use https links where possible selftest: Add argument to keep build dir wic: Add workdir argument wic: Allow exec_native_cmd to run HOSTTOOLS wic: Ensure internal workdir is not reused image_types_wic: Move wic working directory wic: Update pseudo db when excluding content from rootfs wic: Copy rootfs dir if fstab needs updating wic: Optimise fstab modification for ext2/3/4 and msdos partitions bitbake: bitbake-hashclient: Remove obsolete call to client.connect bitbake: hashserv: client: Fix handling of null responses bitbake: hashserv: Support read-only server bitbake: hashserv: Support upstream command line argument bitbake: hashserv: Add short forms of remaining command line arguments bitbake: hashserv: server: Support searching upstream for outhash bitbake: hashserv: Add get-outhash message Paul Eggleton (11): classes/kernel-fitimage: add variable for description classes/kernel-fitimage: allow substituting mkimage command classes/kernel-fitimage: add ability to add additional signing options oe-selftest: move FIT image tests to their own module oe-selftest: fitimage: Test for FIT_DESC oe-selftest: fitimage: add test for signing FIT images classes: minor corrections to kernel-fitimage section variables: clarify KERNEL_ALT_IMAGETYPE reference variables: explicitly state that UBOOT_MKIMAGE_DTCOPTS is optional variables: Add documentation for new kernel-fitimage vars ref-manual: use consistent capitalisation of U-Boot Paul Gortmaker (1): systemd: dont spew hidepid mount errors for kernels < v5.8 Peter Bergin (1): buildhistory.bbclass: avoid exception for empty BUILDHISTORY_FEATURES variable Peter Kjellerstedt (7): lib/oe/path: Add canonicalize() bitbake.conf: Canonicalize paths in PSEUDO_IGNORE_PATHS wic: Pass canonicalized paths in PSEUDO_IGNORE_PATHS glibc: Make adjtime() for 32 bit support being called with delta == NULL bitbake: cache: Make CoreRecipeInfo include rprovides_pkg for skipped recipes bitbake: cooker: Include all packages a recipe provides in SkippedPackage.rprovides apr-util: Only specify --with-dbm=gdbm if gdbm support is enabled Quentin Schulz (1): docs: fix missing & and ; surrounding references from poky.yaml Randy Li (2): meson: Add sysroot property to nativesdk-meson meson: Don't turn string into a list in nativesdk Richard Purdie (69): pseudo: Drop patches merged into upstream branch bitbake: data_smart: Ensure hash reflects vardepvalue flags correctly linuxloader: Avoid confusing string concat errors systemd: Ensure uid/gid ranges are set deterministically grub: Fix build reproducibility issue u-boot-tools: Fix reproducibility issue grub: Add second fix for determinism issue oeqa/commands: Ensure sync can be found regardless of PATH cups: Mark CVE-2009-0032 as a non-issue cups: Mark CVE-2008-1033 as a non-issue groff: Fix reproducibility issue man-db: Avoid reproducibility failures after fixing groff-native meta-selftest/staticids: Add ids for other recipes selftest/reproducible: Add useradd-staticids to reproducible builds tests grub: Further reproducibility fix man-db: Fix reproducibility issue bitbake.conf: Add mkfifo to HOSTTOOLS bitbake.conf: Add /run/ to PSEUDO_IGNORE_PATHS ppp: Update 2.4.8 -> 2.4.9 ppp: Fix reproducibility issue sanity: Bump min python version to 3.6 pseudo: Add lchmod wrapper qemu: Upgrade 5.1.0->5.2.0 qemu: Drop vm reservation changes to resolve build issues qemu: Fix mingw builds qemu: Add some user space mmap tweaks to address musl 32 bit build issues ppp: Fix patch typo pseudo: Update for arm host and memleak fixes/cleanup vulkan-samples: Fix reproducibility issue vulkan-samples: Disable PCH for reproducibility lttng-modules: Upgrade 2.12.3->2.12.4 lttng-modules: Drop gcc7 related patch bash: Set HEREDOC_PIPESIZE deterministically bash: Add makefile race workaround build-appliance-image: Update to master head revision bitbake: fetch2/perforce: Fix localfile to include ud.module ncurses: Don't put terminfo into the sysroot python3: Avoid installing test data into recipe-sysroot staging: Clean up files installed into the sysroot gobject-introspection: Fix variable override order nativesdk-buildtools-perl-dummy: Add missing entries for nativesdk-automake package_rpm: Clean up unset runtime package variable handling bitbake.conf/python: Drop setting RDEPENDS/RPROVIDES default native: Stop clearing PACKAGES meta: Clean up various class-native* RDEPENDS overrides gtk-doc: Disable dependencies in native case pseudo: Update to include passwd and file renaming fixes at: Upgrade 3.1.23 -> 3.2.1 msmtp: Fix to work with autoconf 2.70 ruby: Fix to work with autoconf 2.70 lrzsz: Fix to work with autoconf 2.70 Revert "sanity.bbclass: check if PSEUDO_IGNORE_PATHS and ${S} overlap" image_types: Ensure tar archives are reproducible qemu.inc: Should depend on qemu-system-native, not qemu-native python3-setuptools: Add back accidentally dropped RDEPENDS opkg: Fix build reproducibility issue Revert "msmtp: Fix to work with autoconf 2.70" grub: Backport fix to work with new binutils package: Ensure do_packagedata is cleaned correctly openssh: Backport a fix to fix with glibc 2.33 on some platforms pseudo: Update to work with glibc 2.33 bitbake: bitbake-worker: Try and avoid potential short write events issues apr: Fix to work with autoconf 2.70 bitbake: cooker: Ensure reparsing is handled correctly bitbake: bblayers/action: When adding layers, catch BBHandledException bitbake: bitbake: Bump release to 1.49.1 sanity.conf: Increase minimum bitbake version due to logging function change Fix up bitbake logging compatibility opkg: Fix patch glitches Robert Rosengren (1): mpg123: Add support for FPU-less targets Robert Yang (10): buildtools-tarball.bb: Fix PATH for environment setup script ncurses: Make ncurses-tools depend on ncurses-terminfo-base minicom: RDEPENDS on ncurses-terminfo-base archiver.bbclass: Fix --runall=deploy_archives for images ccache: Extend to nativesdk ccache.bbclass: Set CCACHE_TEMPDIR Revert "ccache.bbclass: use ccache from host distribution" ccache.bbclass: Use ccache-native and disable ccache for native recipes apt: Fix do_compile error when enable ccache oeqa/selftest: binutils-cross-x86_64 -> libgcc-initial Ross Burton (28): wic-image-minimal: only depend on syslinux on x86 targets syslinux: rewrite recipe so only target code is x86-specific wic-tools: don't build syslinux-native for targets without syslinux image-uefi.conf: add EFI arch variable systemd-boot: build the EFI stub systemd-boot: allow building for Arm targets wic-tools: add grub-efi and systemd-boot on arm64 lib/oe/qa: handle the 'no specific instruction set' ELF e_machine value local.conf: add aarch64 to the SDKMACHINE example values kernel: set COMPATIBLE_HOST to *-linux bitbake.conf: default SDKMACHINE to the build host architecture diffstat: point the license checksum at the license ruby: remove tcl DEPENDS base: use URI instead of decodeurl when detecting unpack dependencies lib/oe/package_manager: ensure repodata is wiped core-image-sato-sdk-ptest: these images need ptest ovmf-shell-image: image is only buildable on x86-64 bitbake: fetch2: handle empty elements in _param_str_split bitbake: tests/fetch: add test for empty query parameters Revert "lrzsz: Fix to work with autoconf 2.70" unfs3: fix build with new autoconf gnu-config: update to latest commit autoconf: merge .bb and .inc files autotools: don't warn about obsolete usage autoconf: upgrade to 2.71 autotools: disable gtkdocize for now autotools: remove intltoolize logic autotools: no need to depend on gnu-config Sakib Sajal (2): buildstats.bbclass: add functionality to collect build system stats linux-yocto*: add features/gpio/mockup.scc to KERNEL_FEATURES Scott Branden (1): kmod: update 27 -> 28 Scott Murray (3): grub: fix "CVE:" line in one of the patches patch: fix CVE-2019-20633 glibc: CVE-2019-25013 Shachar Menashe (1): openssl: drop support for deprecated algorithms Sinan Kaya (8): gcsections: add more suppressions for SDK builds sudo: split sudo binary into its own package iproute2: split ip to individual package procps: split ps and sysctl into individual packages net-tools: split mii-tool into its own package runqemu: Add support for VHD/VHDX rootfs meta/classes: Add supprot for WIC<>VHD/VHDX conversion appliance: Add VHD/VHDX generation Steve Sakoman (2): oeqa/selftest/cases/devtool.py: fix typo in ignore_patterns call glibc: update to latest release/2.32/master branch Tanu Kaskinen (6): maintainers.inc: remove myself from maintainers pulseaudio: Remove OE_LT_RPATH_ALLOW pulseaudio: disable EsounD support pulseaudio: disable GConf support pulseaudio: switch build system from Autotools to Meson pulseaudio: fix client.conf location Teoh Jay Shen (4): oeqa/terminal : improve the test case oeqa/suspend : add test for suspend state oeqa/ethernet_ip_connman : add test for network connections oeqa/usb_hid.py : add test to check the usb/human interface device status after suspend state Thomas Perrot (1): go.bbclass: don't stage test data with sources of dependencies Tim Orling (6): python3-hypothesis: upgrade 5.41.4 -> 5.41.5 python3-importlib-metadata: upgrade 3.1.0 -> 3.1.1 python3-pygments: upgrade v2.7.2 -> v2.7.3 python3-setuptools: upgrade 50.3.2 -> 51.0.0 python3-setuptools-scm: add python3-toml dep python3-packaging: upgrade 20.4 -> 20.8 Tomasz Dziendzielski (18): populate_sdk_base: Fix condition syntax if SDK_RELOCATE_AFTER_INSTALL is disabled lib/oe/utils: Return empty string in parallel_make devtool: Fix source extraction for gcc shared source externalsrc: Fix parsing error with devtool non-git sources devtool: Fix file:// fetcher symlink directory structure selftest/devtool: Add modify_localfiles_only test checking symlink path meta: Fix native inheritance order in recipes insane: Add test for native/nativesdk inherit order lib/oe/package_manager: Do not pass stderr to package manager as an argument externalsrc: Detect code changes in submodules insane: Add missing INSANE_SKIP mechanism for native-last QA check insane: native-last: Only print classes inherited after native/nativesdk lib/oe/patch.py: Don't return command stderr from runcmd function python3: Use addtask statement instead of task dependencies lib/oe/patch.py: Ignore scissors line on applying patch sstatesig: Add descriptive error message to getpwuid/getgrgid "uid/gid not found" KeyError bitbake: lib/bb: Don't treat mc recipe (Midnight Commander) as a multiconfig target bitbake: BBHandler: Don't classify shell functions that names start with "python*" as python function Trevor Woerner (7): mesa.inc: switch true/enabled false/disabled mesa: update 20.2.4 -> 20.3.1 insane.bbclass: allow fifos selftest-chown: add test for fifos PSPLASH_FIFO_DIR: refactor psplash: fix working on first boot (sysvinit) psplash (sysvinit): add textual updates Vinícius Ossanes Aquino (1): cmake: Upgrade 3.19.2 -> 3.19.3 Vivien Didelot (4): README.hardware: prettify headline README.hardware: fix the dd command meta-yocto-bsp: use provided variables meta-yocto-bsp: use mmcblk0 for root partition Vyacheslav Yurkov (1): npm.bbclass: use python3 for npm config Wang Mingyu (33): libaio: upgrade 0.3.111 -> 0.3.112 readline: upgrade 8.0 -> 8.1 man-pages: upgrade 5.09 ->5.10 mobile-broadband-provider-info: upgrade 20190618 ->20201225 shared-mime-info: upgrade 2.0 -> 2.1 tiff: upgrade 4.1.0 -> 4.2.0 tcl: upgrade 8.6.10 -> 8.6.11 sysstat: upgrade 12.4.1 -> 12.4.2 nettle: upgrade 3.6 ->3.7 binutils: upgrade 2.35 -> 2.35.1 ed: upgrade 1.16 -> 1.17 ell: upgrade 0.35 -> 0.36 findutils: upgrade 4.7.0 -> 4.8.0 iproute2: upgrade 5.9.0 -> 5.10.0 gnupg: upgrade 2.2.26 -> 2.2.27 libpcap: upgrade 1.9.1 -> 1.10.0 libmodulemd: upgrade 2.11.1 -> 2.11.2 pulseaudio: upgrade 14.0 -> 14.2 btrfs-tools: upgrade 5.9 -> 5.10 gpgme: upgrade 1.15.0 -> 1.15.1 iptables: upgrade 1.8.6 -> 1.8.7 socat: upgrade 1.7.3.4 ->1.7.4.1 libcap: upgrade 2.46 -> 2.47 libjitterentropy: upgrade 3.0.0 -> 3.0.1 libsolv: upgrade 0.7.16 -> 0.7.17 ltp: upgrade 20200930 -> 20210121 stress-ng: upgrade 0.12.01 -> 0.12.02 util-macros: upgrade 1.19.2 -> 1.19.3 gtk-doc: upgrade 1.33.1 -> 1.33.2 e2fsprogs: upgrade 1.45.6 -> 1.45.7 bind: upgrade 9.16.10 -> 9.16.11 libdrm: upgrade 2.4.103 -> 2.4.104 parted: upgrade 3.3 -> 3.4 Yann Dirson (1): libsdl2: upgrade to 2.0.14 Yi Fan Yu (6): binutils: Fix CVE-2020-35448 oeqa/selftest/cases/tinfoil.py: increase timeout 10->60s test_wait_event strace: increase ptest timeout duration 120->240s sudo: upgrade 1.9.5p1 -> 1.9.5p2 glibc: fix CVE-2020-27618 glib-2.0: add workaround to fix codegen.py.test failing Yi Zhao (7): dhcpcd: upgrade 9.3.2 -> 9.3.4 dhcpcd: fix SECCOMP for i386 inetutils: add dnsdomainname to ALTERNATIVE libcap: update 2.45 -> 2.46 libcap-ng: upgrade 0.8.1 -> 0.8.2 dhcpcd: upgrade 9.3.4 -> 9.4.0 rng-tools: upgrade 6.10 -> 6.11 Yoann Congal (2): documentation: Fix a Concpets -> Concepts typo documentation: Prevent building documentation with an outdated version of sphinx Zhixiong Chi (1): glibc: CVE-2020-29562 and CVE-2020-29573 akuster (4): openssl: Enable srp algorithm cve-check.bbclass: add layer to cve log cve-check: add include/exclude layers documentation.conf: add both CVE_CHECK_LAYER_* hongxu (2): apt: add nativesdk support dpkg: add nativesdk support saloni (2): libgcrypt: Whitelisted CVEs libcroco: Added CVE zangrc (3): bash: Rename patch name systemtap: upgrade 4.3 -> 4.4 msmtp: upgrade 1.8.13 -> 1.8.14 zhengruoqin (11): cantarell-fonts: upgrade 0.201 -> 0.301 gdbm: upgrade 1.18.1 -> 1.19 libarchive: upgrade 3.4.3 -> 3.5.1 libevdev: upgrade 1.10.0 -> 1.10.1 libgpg-error: upgrade 1.39 -> 1.41 libmodulemd: upgrade 2.11.2 -> 2.12.0 bison: upgrade 3.7.4 -> 3.7.5 ca-certificates: upgrade 20200601 -> 20210119 mc: upgrade 4.8.25 -> 4.8.26 sqlite3: upgrade 3.34.0 -> 3.34.1 python3-packaging: upgrade 20.8 -> 20.9 Revert "libpam: update 1.3.1 -> 1.5.1" This reverts commit b0384720a46fb25c4ad180e3f256ffdeb53dc8a6. OpenBMC is not ready for the removal of pam_cracklib and pam_tally2. Until code is ready to move to new libs in libpam_1.5, carry a revert in OpenBMC to stay at libpam_1.3. openbmc/openbmc#3750 tracks this work Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I69357e370d7cf5c5d6dfedde11b88a4f797f7e95
Diffstat (limited to 'poky/scripts/lib')
-rw-r--r--poky/scripts/lib/devtool/standard.py36
-rw-r--r--poky/scripts/lib/devtool/upgrade.py4
-rw-r--r--poky/scripts/lib/recipetool/create_npm.py6
-rw-r--r--poky/scripts/lib/wic/ksparser.py17
-rw-r--r--poky/scripts/lib/wic/misc.py7
-rw-r--r--poky/scripts/lib/wic/partition.py44
-rw-r--r--poky/scripts/lib/wic/plugins/imager/direct.py61
-rw-r--r--poky/scripts/lib/wic/plugins/source/empty.py32
-rw-r--r--poky/scripts/lib/wic/plugins/source/rootfs.py33
9 files changed, 187 insertions, 53 deletions
diff --git a/poky/scripts/lib/devtool/standard.py b/poky/scripts/lib/devtool/standard.py
index 261d642d4..7b62b7e7b 100644
--- a/poky/scripts/lib/devtool/standard.py
+++ b/poky/scripts/lib/devtool/standard.py
@@ -474,7 +474,11 @@ def symlink_oelocal_files_srctree(rd,srctree):
destpth = os.path.join(srctree, relpth, fn)
if os.path.exists(destpth):
os.unlink(destpth)
- os.symlink('oe-local-files/%s' % fn, destpth)
+ if relpth != '.':
+ back_relpth = os.path.relpath(local_files_dir, root)
+ os.symlink('%s/oe-local-files/%s/%s' % (back_relpth, relpth, fn), destpth)
+ else:
+ os.symlink('oe-local-files/%s' % fn, destpth)
addfiles.append(os.path.join(relpth, fn))
if addfiles:
bb.process.run('git add %s' % ' '.join(addfiles), cwd=srctree)
@@ -589,6 +593,16 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works
else:
task = 'do_patch'
+ if 'noexec' in (d.getVarFlags(task, False) or []) or 'task' not in (d.getVarFlags(task, False) or []):
+ logger.info('The %s recipe has %s disabled. Running only '
+ 'do_configure task dependencies' % (pn, task))
+
+ if 'depends' in d.getVarFlags('do_configure', False):
+ pn = d.getVarFlags('do_configure', False)['depends']
+ pn = pn.replace('${PV}', d.getVar('PV'))
+ pn = pn.replace('${COMPILERDEP}', d.getVar('COMPILERDEP'))
+ task = None
+
# Run the fetch + unpack tasks
res = tinfoil.build_targets(pn,
task,
@@ -600,6 +614,17 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works
if not res:
raise DevtoolError('Extracting source for %s failed' % pn)
+ if not is_kernel_yocto and ('noexec' in (d.getVarFlags('do_patch', False) or []) or 'task' not in (d.getVarFlags('do_patch', False) or [])):
+ workshareddir = d.getVar('S')
+ if os.path.islink(srctree):
+ os.unlink(srctree)
+
+ os.symlink(workshareddir, srctree)
+
+ # The initial_rev file is created in devtool_post_unpack function that will not be executed if
+ # do_unpack/do_patch tasks are disabled so we have to directly say that source extraction was successful
+ return True, True
+
try:
with open(os.path.join(tempdir, 'initial_rev'), 'r') as f:
initial_rev = f.read()
@@ -847,10 +872,11 @@ def modify(args, config, basepath, workspace):
if not initial_rev:
return 1
logger.info('Source tree extracted to %s' % srctree)
- # Get list of commits since this revision
- (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_rev, cwd=srctree)
- commits = stdout.split()
- check_commits = True
+ if os.path.exists(os.path.join(srctree, '.git')):
+ # Get list of commits since this revision
+ (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_rev, cwd=srctree)
+ commits = stdout.split()
+ check_commits = True
else:
if os.path.exists(os.path.join(srctree, '.git')):
# Check if it's a tree previously extracted by us. This is done
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index 0c1de8cdc..5a057e95f 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -178,7 +178,7 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee
uri, rev = _get_uri(crd)
if srcrev:
rev = srcrev
- if uri.startswith('git://'):
+ if uri.startswith('git://') or uri.startswith('gitsm://'):
__run('git fetch')
__run('git checkout %s' % rev)
__run('git tag -f devtool-base-new')
@@ -270,7 +270,7 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee
else:
logger.warning('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
if not skiptag:
- if uri.startswith('git://'):
+ if uri.startswith('git://') or uri.startswith('gitsm://'):
suffix = 'new'
else:
suffix = newpv
diff --git a/poky/scripts/lib/recipetool/create_npm.py b/poky/scripts/lib/recipetool/create_npm.py
index 579b7ae48..2bcae91df 100644
--- a/poky/scripts/lib/recipetool/create_npm.py
+++ b/poky/scripts/lib/recipetool/create_npm.py
@@ -204,6 +204,9 @@ class NpmRecipeHandler(RecipeHandler):
self._run_npm_install(d, srctree, registry, dev)
shrinkwrap_file = self._generate_shrinkwrap(d, srctree, dev)
+ with open(shrinkwrap_file, "r") as f:
+ shrinkwrap = json.load(f)
+
if os.path.exists(lock_copy):
bb.utils.movefile(lock_copy, lock_file)
@@ -226,7 +229,8 @@ class NpmRecipeHandler(RecipeHandler):
value = origvalue.replace("version=" + data["version"], "version=${PV}")
value = value.replace("version=latest", "version=${PV}")
values = [line.strip() for line in value.strip('\n').splitlines()]
- values.append(url_recipe)
+ if "dependencies" in shrinkwrap:
+ values.append(url_recipe)
return values, None, 4, False
(_, newlines) = bb.utils.edit_metadata(lines_before, ["SRC_URI"], _handle_srcuri)
diff --git a/poky/scripts/lib/wic/ksparser.py b/poky/scripts/lib/wic/ksparser.py
index 913e3283d..3eb669da3 100644
--- a/poky/scripts/lib/wic/ksparser.py
+++ b/poky/scripts/lib/wic/ksparser.py
@@ -229,6 +229,23 @@ class KickStart():
err = "%s:%d: SquashFS does not support LABEL" \
% (confpath, lineno)
raise KickStartError(err)
+ if parsed.fstype == 'msdos' or parsed.fstype == 'vfat':
+ if parsed.fsuuid:
+ if parsed.fsuuid.upper().startswith('0X'):
+ if len(parsed.fsuuid) > 10:
+ err = "%s:%d: fsuuid %s given in wks kickstart file " \
+ "exceeds the length limit for %s filesystem. " \
+ "It should be in the form of a 32 bit hexadecimal" \
+ "number (for example, 0xABCD1234)." \
+ % (confpath, lineno, parsed.fsuuid, parsed.fstype)
+ raise KickStartError(err)
+ elif len(parsed.fsuuid) > 8:
+ err = "%s:%d: fsuuid %s given in wks kickstart file " \
+ "exceeds the length limit for %s filesystem. " \
+ "It should be in the form of a 32 bit hexadecimal" \
+ "number (for example, 0xABCD1234)." \
+ % (confpath, lineno, parsed.fsuuid, parsed.fstype)
+ raise KickStartError(err)
if parsed.use_label and not parsed.label:
err = "%s:%d: Must set the label with --label" \
% (confpath, lineno)
diff --git a/poky/scripts/lib/wic/misc.py b/poky/scripts/lib/wic/misc.py
index 4b08d649c..75b219cd3 100644
--- a/poky/scripts/lib/wic/misc.py
+++ b/poky/scripts/lib/wic/misc.py
@@ -138,9 +138,12 @@ def exec_native_cmd(cmd_and_args, native_sysroot, pseudo=""):
if pseudo:
cmd_and_args = pseudo + cmd_and_args
- native_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin:%s/bin" % \
+ hosttools_dir = get_bitbake_var("HOSTTOOLS_DIR")
+
+ native_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin:%s/bin:%s" % \
(native_sysroot, native_sysroot,
- native_sysroot, native_sysroot)
+ native_sysroot, native_sysroot,
+ hosttools_dir)
native_cmd_and_args = "export PATH=%s:$PATH;%s" % \
(native_paths, cmd_and_args)
diff --git a/poky/scripts/lib/wic/partition.py b/poky/scripts/lib/wic/partition.py
index ebe250b00..e574f40c4 100644
--- a/poky/scripts/lib/wic/partition.py
+++ b/poky/scripts/lib/wic/partition.py
@@ -54,6 +54,9 @@ class Partition():
self.uuid = args.uuid
self.fsuuid = args.fsuuid
self.type = args.type
+ self.updated_fstab_path = None
+ self.has_fstab = False
+ self.update_fstab_in_rootfs = False
self.lineno = lineno
self.source_file = ""
@@ -118,11 +121,15 @@ class Partition():
return self.fixed_size if self.fixed_size else self.size
def prepare(self, creator, cr_workdir, oe_builddir, rootfs_dir,
- bootimg_dir, kernel_dir, native_sysroot):
+ bootimg_dir, kernel_dir, native_sysroot, updated_fstab_path):
"""
Prepare content for individual partitions, depending on
partition command parameters.
"""
+ self.updated_fstab_path = updated_fstab_path
+ if self.updated_fstab_path and not (self.fstype.startswith("ext") or self.fstype == "msdos"):
+ self.update_fstab_in_rootfs = True
+
if not self.source:
if not self.size and not self.fixed_size:
raise WicError("The %s partition has a size of zero. Please "
@@ -207,11 +214,21 @@ class Partition():
p_prefix = os.environ.get("PSEUDO_PREFIX", "%s/usr" % native_sysroot)
if (pseudo_dir):
+ # Canonicalize the ignore paths. This corresponds to
+ # calling oe.path.canonicalize(), which is used in bitbake.conf.
+ ignore_paths = [rootfs] + (get_bitbake_var("PSEUDO_IGNORE_PATHS") or "").split(",")
+ canonical_paths = []
+ for path in ignore_paths:
+ if "$" not in path:
+ trailing_slash = path.endswith("/") and "/" or ""
+ canonical_paths.append(os.path.realpath(path) + trailing_slash)
+ ignore_paths = ",".join(canonical_paths)
+
pseudo = "export PSEUDO_PREFIX=%s;" % p_prefix
pseudo += "export PSEUDO_LOCALSTATEDIR=%s;" % pseudo_dir
pseudo += "export PSEUDO_PASSWD=%s;" % rootfs_dir
pseudo += "export PSEUDO_NOSYMLINKEXP=1;"
- pseudo += "export PSEUDO_IGNORE_PATHS=%s;" % (rootfs + "," + (get_bitbake_var("PSEUDO_IGNORE_PATHS") or ""))
+ pseudo += "export PSEUDO_IGNORE_PATHS=%s;" % ignore_paths
pseudo += "%s " % get_bitbake_var("FAKEROOTCMD")
else:
pseudo = None
@@ -237,7 +254,7 @@ class Partition():
prefix = "ext" if self.fstype.startswith("ext") else self.fstype
method = getattr(self, "prepare_rootfs_" + prefix)
- method(rootfs, oe_builddir, rootfs_dir, native_sysroot, pseudo)
+ method(rootfs, cr_workdir, oe_builddir, rootfs_dir, native_sysroot, pseudo)
self.source_file = rootfs
# get the rootfs size in the right units for kickstart (kB)
@@ -245,7 +262,7 @@ class Partition():
out = exec_cmd(du_cmd)
self.size = int(out.split()[0])
- def prepare_rootfs_ext(self, rootfs, oe_builddir, rootfs_dir,
+ def prepare_rootfs_ext(self, rootfs, cr_workdir, oe_builddir, rootfs_dir,
native_sysroot, pseudo):
"""
Prepare content for an ext2/3/4 rootfs partition.
@@ -269,10 +286,19 @@ class Partition():
(self.fstype, extraopts, rootfs, label_str, self.fsuuid, rootfs_dir)
exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo)
+ if self.updated_fstab_path and self.has_fstab:
+ debugfs_script_path = os.path.join(cr_workdir, "debugfs_script")
+ with open(debugfs_script_path, "w") as f:
+ f.write("cd etc\n")
+ f.write("rm fstab\n")
+ f.write("write %s fstab\n" % (self.updated_fstab_path))
+ debugfs_cmd = "debugfs -w -f %s %s" % (debugfs_script_path, rootfs)
+ exec_native_cmd(debugfs_cmd, native_sysroot)
+
mkfs_cmd = "fsck.%s -pvfD %s" % (self.fstype, rootfs)
exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo)
- def prepare_rootfs_btrfs(self, rootfs, oe_builddir, rootfs_dir,
+ def prepare_rootfs_btrfs(self, rootfs, cr_workdir, oe_builddir, rootfs_dir,
native_sysroot, pseudo):
"""
Prepare content for a btrfs rootfs partition.
@@ -295,7 +321,7 @@ class Partition():
self.mkfs_extraopts, self.fsuuid, rootfs)
exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo)
- def prepare_rootfs_msdos(self, rootfs, oe_builddir, rootfs_dir,
+ def prepare_rootfs_msdos(self, rootfs, cr_workdir, oe_builddir, rootfs_dir,
native_sysroot, pseudo):
"""
Prepare content for a msdos/vfat rootfs partition.
@@ -324,12 +350,16 @@ class Partition():
mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (rootfs, rootfs_dir)
exec_native_cmd(mcopy_cmd, native_sysroot)
+ if self.updated_fstab_path and self.has_fstab:
+ mcopy_cmd = "mcopy -i %s %s ::/etc/fstab" % (rootfs, self.updated_fstab_path)
+ exec_native_cmd(mcopy_cmd, native_sysroot)
+
chmod_cmd = "chmod 644 %s" % rootfs
exec_cmd(chmod_cmd)
prepare_rootfs_vfat = prepare_rootfs_msdos
- def prepare_rootfs_squashfs(self, rootfs, oe_builddir, rootfs_dir,
+ def prepare_rootfs_squashfs(self, rootfs, cr_workdir, oe_builddir, rootfs_dir,
native_sysroot, pseudo):
"""
Prepare content for a squashfs rootfs partition.
diff --git a/poky/scripts/lib/wic/plugins/imager/direct.py b/poky/scripts/lib/wic/plugins/imager/direct.py
index 55db826e9..ea709e8c5 100644
--- a/poky/scripts/lib/wic/plugins/imager/direct.py
+++ b/poky/scripts/lib/wic/plugins/imager/direct.py
@@ -54,15 +54,16 @@ class DirectPlugin(ImagerPlugin):
self.native_sysroot = native_sysroot
self.oe_builddir = oe_builddir
+ self.debug = options.debug
self.outdir = options.outdir
self.compressor = options.compressor
self.bmap = options.bmap
self.no_fstab_update = options.no_fstab_update
- self.original_fstab = None
+ self.updated_fstab_path = None
self.name = "%s-%s" % (os.path.splitext(os.path.basename(wks_file))[0],
strftime("%Y%m%d%H%M"))
- self.workdir = tempfile.mkdtemp(dir=self.outdir, prefix='tmp.wic.')
+ self.workdir = self.setup_workdir(options.workdir)
self._image = None
self.ptable_format = self.ks.bootloader.ptable
self.parts = self.ks.partitions
@@ -78,6 +79,16 @@ class DirectPlugin(ImagerPlugin):
self._image = PartitionedImage(image_path, self.ptable_format,
self.parts, self.native_sysroot)
+ def setup_workdir(self, workdir):
+ if workdir:
+ if os.path.exists(workdir):
+ raise WicError("Internal workdir '%s' specified in wic arguments already exists!" % (workdir))
+
+ os.makedirs(workdir)
+ return workdir
+ else:
+ return tempfile.mkdtemp(dir=self.outdir, prefix='tmp.wic.')
+
def do_create(self):
"""
Plugin entry point.
@@ -90,11 +101,8 @@ class DirectPlugin(ImagerPlugin):
finally:
self.cleanup()
- def _write_fstab(self, image_rootfs):
- """overriden to generate fstab (temporarily) in rootfs. This is called
- from _create, make sure it doesn't get called from
- BaseImage.create()
- """
+ def update_fstab(self, image_rootfs):
+ """Assume partition order same as in wks"""
if not image_rootfs:
return
@@ -104,18 +112,9 @@ class DirectPlugin(ImagerPlugin):
with open(fstab_path) as fstab:
fstab_lines = fstab.readlines()
- self.original_fstab = fstab_lines.copy()
-
- if self._update_fstab(fstab_lines, self.parts):
- with open(fstab_path, "w") as fstab:
- fstab.writelines(fstab_lines)
- else:
- self.original_fstab = None
- def _update_fstab(self, fstab_lines, parts):
- """Assume partition order same as in wks"""
updated = False
- for part in parts:
+ for part in self.parts:
if not part.realnum or not part.mountpoint \
or part.mountpoint == "/":
continue
@@ -144,7 +143,10 @@ class DirectPlugin(ImagerPlugin):
fstab_lines.append(line)
updated = True
- return updated
+ if updated:
+ self.updated_fstab_path = os.path.join(self.workdir, "fstab")
+ with open(self.updated_fstab_path, "w") as f:
+ f.writelines(fstab_lines)
def _full_path(self, path, name, extention):
""" Construct full file path to a file we generate. """
@@ -160,7 +162,7 @@ class DirectPlugin(ImagerPlugin):
a partitioned image.
"""
if not self.no_fstab_update:
- self._write_fstab(self.rootfs_dir.get("ROOTFS_DIR"))
+ self.update_fstab(self.rootfs_dir.get("ROOTFS_DIR"))
for part in self.parts:
# get rootfs size from bitbake variable if it's not set in .ks file
@@ -273,14 +275,9 @@ class DirectPlugin(ImagerPlugin):
if os.path.isfile(path):
shutil.move(path, os.path.join(self.outdir, fname))
- #Restore original fstab
- if self.original_fstab:
- fstab_path = self.rootfs_dir.get("ROOTFS_DIR") + "/etc/fstab"
- with open(fstab_path, "w") as fstab:
- fstab.writelines(self.original_fstab)
-
- # remove work directory
- shutil.rmtree(self.workdir, ignore_errors=True)
+ # remove work directory when it is not in debugging mode
+ if not self.debug:
+ shutil.rmtree(self.workdir, ignore_errors=True)
# Overhead of the MBR partitioning scheme (just one sector)
MBR_OVERHEAD = 1
@@ -343,6 +340,13 @@ class PartitionedImage():
part.fsuuid = '0x' + str(uuid.uuid4())[:8].upper()
else:
part.fsuuid = str(uuid.uuid4())
+ else:
+ #make sure the fsuuid for vfat/msdos align with format 0xYYYYYYYY
+ if part.fstype == 'vfat' or part.fstype == 'msdos':
+ if part.fsuuid.upper().startswith("0X"):
+ part.fsuuid = '0x' + part.fsuuid.upper()[2:].rjust(8,"0")
+ else:
+ part.fsuuid = '0x' + part.fsuuid.upper().rjust(8,"0")
def prepare(self, imager):
"""Prepare an image. Call prepare method of all image partitions."""
@@ -351,7 +355,8 @@ class PartitionedImage():
# sizes before we can add them and do the layout.
part.prepare(imager, imager.workdir, imager.oe_builddir,
imager.rootfs_dir, imager.bootimg_dir,
- imager.kernel_dir, imager.native_sysroot)
+ imager.kernel_dir, imager.native_sysroot,
+ imager.updated_fstab_path)
# Converting kB to sectors for parted
part.size_sec = part.disk_size * 1024 // self.sector_size
diff --git a/poky/scripts/lib/wic/plugins/source/empty.py b/poky/scripts/lib/wic/plugins/source/empty.py
new file mode 100644
index 000000000..041617d64
--- /dev/null
+++ b/poky/scripts/lib/wic/plugins/source/empty.py
@@ -0,0 +1,32 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+# The empty wic plugin is used to create unformatted empty partitions for wic
+# images.
+# To use it you must pass "empty" as argument for the "--source" parameter in
+# the wks file. For example:
+# part foo --source empty --ondisk sda --size="1024" --align 1024
+
+import logging
+
+from wic.pluginbase import SourcePlugin
+
+logger = logging.getLogger('wic')
+
+class EmptyPartitionPlugin(SourcePlugin):
+ """
+ Populate unformatted empty partition.
+ """
+
+ name = 'empty'
+
+ @classmethod
+ def do_prepare_partition(cls, part, source_params, cr, cr_workdir,
+ oe_builddir, bootimg_dir, kernel_dir,
+ rootfs_dir, native_sysroot):
+ """
+ Called to do the actual content population for a partition i.e. it
+ 'prepares' the partition to be incorporated into the image.
+ """
+ return
diff --git a/poky/scripts/lib/wic/plugins/source/rootfs.py b/poky/scripts/lib/wic/plugins/source/rootfs.py
index f1db83f8a..96d940a91 100644
--- a/poky/scripts/lib/wic/plugins/source/rootfs.py
+++ b/poky/scripts/lib/wic/plugins/source/rootfs.py
@@ -94,6 +94,7 @@ class RootfsPlugin(SourcePlugin):
"it is not a valid path, exiting" % part.rootfs_dir)
part.rootfs_dir = cls.__get_rootfs_dir(rootfs_dir)
+ part.has_fstab = os.path.exists(os.path.join(part.rootfs_dir, "etc/fstab"))
pseudo_dir = os.path.join(part.rootfs_dir, "../pseudo")
if not os.path.lexists(pseudo_dir):
logger.warn("%s folder does not exist. "
@@ -103,9 +104,9 @@ class RootfsPlugin(SourcePlugin):
new_rootfs = None
new_pseudo = None
# Handle excluded paths.
- if part.exclude_path or part.include_path or part.change_directory:
- # We need a new rootfs directory we can delete files from. Copy to
- # workdir.
+ if part.exclude_path or part.include_path or part.change_directory or part.update_fstab_in_rootfs:
+ # We need a new rootfs directory we can safely modify without
+ # interfering with other tasks. Copy to workdir.
new_rootfs = os.path.realpath(os.path.join(cr_workdir, "rootfs%d" % part.lineno))
if os.path.lexists(new_rootfs):
@@ -199,17 +200,33 @@ class RootfsPlugin(SourcePlugin):
if not os.path.lexists(full_path):
continue
+ if new_pseudo:
+ pseudo = cls.__get_pseudo(native_sysroot, new_rootfs, new_pseudo)
+ else:
+ pseudo = None
if path.endswith(os.sep):
# Delete content only.
for entry in os.listdir(full_path):
full_entry = os.path.join(full_path, entry)
- if os.path.isdir(full_entry) and not os.path.islink(full_entry):
- shutil.rmtree(full_entry)
- else:
- os.remove(full_entry)
+ rm_cmd = "rm -rf %s" % (full_entry)
+ exec_native_cmd(rm_cmd, native_sysroot, pseudo)
else:
# Delete whole directory.
- shutil.rmtree(full_path)
+ rm_cmd = "rm -rf %s" % (full_path)
+ exec_native_cmd(rm_cmd, native_sysroot, pseudo)
+
+ # Update part.has_fstab here as fstab may have been added or
+ # removed by the above modifications.
+ part.has_fstab = os.path.exists(os.path.join(new_rootfs, "etc/fstab"))
+ if part.update_fstab_in_rootfs and part.has_fstab:
+ fstab_path = os.path.join(new_rootfs, "etc/fstab")
+ # Assume that fstab should always be owned by root with fixed permissions
+ install_cmd = "install -m 0644 %s %s" % (part.updated_fstab_path, fstab_path)
+ if new_pseudo:
+ pseudo = cls.__get_pseudo(native_sysroot, new_rootfs, new_pseudo)
+ else:
+ pseudo = None
+ exec_native_cmd(install_cmd, native_sysroot, pseudo)
part.prepare_rootfs(cr_workdir, oe_builddir,
new_rootfs or part.rootfs_dir, native_sysroot,