summaryrefslogtreecommitdiff
path: root/poky/bitbake/lib/bb
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2022-01-24 22:11:47 +0300
committerEd Tanous <ed@tanous.net>2022-02-03 19:56:47 +0300
commit595f63084d313c9708cb435470e6c6dcbbbbe646 (patch)
treea4692ebf7c756a010417c6afa58a3885eee1b4b8 /poky/bitbake/lib/bb
parentca2f10c6ca6fcff34fecffdef048ee54b9dd2521 (diff)
downloadopenbmc-595f63084d313c9708cb435470e6c6dcbbbbe646.tar.xz
subtree updates
meta-raspberrypi: 90b3ac6fb3..836755370f: Alexandru Costache (3): conf/machine: Add Pi Zero 2 Wifi 64bit yocto machine linux-firmware-rpidistro: Package bcm43436 and bcm43436s firmware linux-raspberrypi: Bump to 5.10.78 Andrei Gherzan (14): raspberrypi-firmware: Bump to 20211007 linux-raspberrypi: Bump 5.10 to 5.10.76 linux-raspberrypi: Drop 5.4 README.md: Fix docs and minor tweaks docs: Bump copyright year README.md: Fix sponsor table README.md: Fix sponsor table take two docs: Fix RtD build docs: Add module dependency/requirement for RtD docs: Advertise raspberrypi0-2w-64 supported machine Update references to Yocto mailing list README.md: Fix the matrix chat link libwpe: Migrate build workaround from oe-core rpi-config: Take into consideration ENABLE_UART value of 0 Cameron Kellough (1): rpi-base.inc: Added gpio-poweroff overlay. Some machines need to have the kernel toggle a gpio when an external power source needs to shut off power to complete a shutdown and de-energize the processor. gpio-poweroff provides this functionality but was omitted from the kernel overlays brought oveer by the rpi-layer from the kernel. Signed-off-by: Cameron Kellough <cameron@telemetrak.com> Joel Winarske (1): mesa: Enable building vulkan driver Khem Raj (4): linux-firmware-rpidistro: Use bullseye branch parselogs: Update the error regexps to 5.10 kernel linux-raspberrypi: Upgrade to 5.10.81 weston-init: Add --continue-without-input option to weston Marcel Hamer (1): recipes: Update SRC_URI protocols for github Martin Jansa (1): rpi-config: don't trigger bbfatal for empty ENABLE_UART Peter A. Bigot (1): conf/machine: add variant Wi-Fi/BT drivers for CM4 and Pi 400 meta-openembedded: 2f6797d8d6..6b63095946: Alex Kiernan (2): ntpsec: Add recipe ntpsec: Add glibc-2.34/kernel-5.14 seccomp fixes Alexander Kanavin (23): libstatgrab: update 0.92 -> 0.92.1 open-vpm-tools: update 11.2.5 -> 11.3.5 libid3tag: add from oe-core libportal: add from oe-core gtkmm3: add gdk-pixbuf-native to satisfy meson 0.61 gjs: drop patch to satisfy meson 0.61 gnome-terminal: backport a meson 0.61 patch gnome-bluetooth: backport a meson 0.61 patch gnome-font-viewer: backport a meson 0.61 patch gnome-session: update 40.1.1 -> 41.3 gnome-settings-daemon: add a meson 0.61 patch gnome-shell: backport a meson 0.61 patch accountsservice: backport a meson 0.61 patch gnome-screenshot: backport a meson 0.61 patch evince: fix meson 0.61 builds gnome-calendar: fix meson 0.61 builds gthumb: fix meson 0.61 builds gedit: add a meson 0.61 patch gnome-disk-utility: add a meson 0.61 patch gnome-control-center: add a meson 0.61 patch gnome-photos: add a meson 0.61 patch dconf-editor: add a meson 0.61 patch network-manager-applet: add meson 0.61 patch Andreas Müller (111): xfce4-sensors-plugin: upgrade 1.3.95 -> 1.4.1 fftw: remove unused patch mozjs: Move back to recipes-extended - no meta-python specifics required Rename mozjs -> mozjs-91 to allow multiple versions of mozjs polkit: Adjust to mozjs-91 in DEPENDS mozjs-91: remove static library mozjs-78: Initial add graphene: enable introspection by default - gtk4 & mutter 41 require it graphene: extend to native and nativesdk graphene: Tidy up recipe a bit gtk4: initial add 4.4.0 gjs: upgrade 1.58.8 -> 1.70.0 mutter: upgrade 3.34.6 -> 41.0 gdm: upgrade 3.36.3 -> 41.0 upower: upgrade 0.99.11 -> 0.99.13 udisks2: upgrade 2.9.3 -> 2.9.4 gnome-settings-daemon: upgrade 3.36.1 -> 41.0 gnome-shell: upgrade 3.34.5 -> 41.0 gnome-shell-extensions: upgrade 3.34.2 -> 40.1 gnome-desktop: upgrade 3.38.8 -> 41.0 and give up '3' receipe name suffix gnome-session: upgrade 3.36.0 -> 40.1.1 gnome-control-center: upgrade 3.36.4 -> 41.1 gexiv2: upgrade 0.12.2 -> 0.14.0 gparted: upgrade 1.3.0 -> 1.3.1 gnome-backgrounds: upgrade 3.38.0 -> 41.0 gnome-tweaks: upgrade 3.34.0 -> 40.0 gnome-terminal: upgrade 3.40.2 -> 3.42.0 / meson build gnome-panel: upgrade 3.36.1 -> 3.38.0 grilo: upgrade 0.3.13 -> 0.3.14 grilo-plugins: upgrade 0.3.13 -> 0.3.14 mozjs-91: Fix build on powerpc gdm: Fix REQUIRED_DISTRO_FEATURES broken by adding introspection gnome-control-center: Add libhandy to DEPENDS gnome-backgrounds: Fix licenses poppler: upgrade 21.10.0 -> 21.11.0 xfce4-whiskermenu-plugin: upgrade 2.5.3 -> 2.6.2 ristretto: upgrade 0.11.0 -> 0.12.0 xfce4-cpugraph-plugin: upgrade 1.2.3 -> 1.2.5 xfce4-sensors-plugin: upgrade 1.4.1 -> 1.4.2 catfish: upgrade 4.16.0 -> 4.16.3 mousepad: upgrade 0.5.5 -> 0.5.7 libxfce4ui: upgrade 4.16.0 -> 4.16.1 fluidsynth: upgrade 2.2.2 -> 2.2.3 vlc: Fix build with un-renameed native libtool fltk: upgrade 1.3.7 -> 1.3.8 xfce4-whiskermenu-plugin: upgrade 2.6.2 -> 2.7.1 ristretto: upgrade 0.12.0 -> 0.12.1 mousepad: upgrade 0.5.7 -> 0.5.8 poppler: upgrade 21.11.0 -> 21.12.0 menulibre: upgrade 2.2.1 -> 2.2.3 fluidsynth: upgrade 2.2.3 -> 2.2.4 gegl: upgrade 0.4.30 -> 0.4.34 gimp: upgrade 2.10.24 -> 2.10.30 mpv: upgrade 0.33.1 -> 0.34.0 gupnp: upgrade 1.2.7 -> 1.4.1 gupnp: merge recipe with inc-file gupnp-av: upgrade 0.12.11 -> 0.14.0 / build with mesa gupnp-av: merge recipe with inc-file gupnp-dlna: upgrade 0.10.5 -> 0.12.0 / build with meson gupnp-igd: upgrade 0.2.5 -> 1.2.0 / build with meson gupnp-tools: upgrade 0.10.0 -> 0.10.2 / prettify recipe gtkwave: upgrade 3.3.109 -> 3.3.111 blueman: upgrade 2.2.1 -> 2.2.3 geany: upgrade 1.37.1 -> 1.38 geany-plugins: upgrade 1.37 -> 1.3.8 gnuplot: upgrade 5.4.1 -> 5.4.2 gtksourceview5: initial add 5.2.0 amtk: upgrade 5.2.0 -> 5.3.1 / build with meson evince: upgrade 40.4 -> 41.3 evolution-data-server: upgrade 3.40.2 -> 3.42.2 gnome-autoar: upgrade 0.3.3 -> 0.4.1 / build with meson gnome-calculator: upgrade 40.1 -> 41.1 gnome-calendar; upgrade 41.0 -> 41.2 gnome-control-center: upgrade 41.1 -> 41.2 gnome-desktop: upgrade 41.0 -> 41.2 gnome-disk-utility: upgrade 40.1 -> 41.0 gnome-flashback: upgrade 3.40.0 -> 3.42.1 gnome-font-viewer: upgrade 40.0 -> 41.0 gnome-screenshot: upgrade 40.0 -> 41.0 gnome-shell: upgrade 41.0 -> 41.2 gnome-shell-extensions: upgrade 41.0 -> 41.1 gnome-system-monitor: upgrade 40.1 -> 41.0 gnome-terminal: upgrade 3.42.0 -> 3.42.1 gsound: upgrade 1.0.2 -> 1.0.3 / build with meson gthumb: upgrade 3.10.3 -> 3.12.0 gtksourceview4: upgrade 4.8.1 -> 4.8.2 libgsf: upgrade 1.14.47 -> 1.14.48 libgtkstylus: remove metacity: upgrade 3.40.0 -> 3.42.0 mutter: upgrade 41.0 -> 41.2 nautilus: upgrade 40.2 -> 41.1 gnome-shell: Add gnome-desktop to RDEPENDS Drop gnome-desktop3 providers Rename gnome-menus3 -> gnome-menus packagegroup-gnome-desktop: Mark TUNE_PKGARCH specific mozjs-78: Shelve breaking lib rename/linking & split lib to separate package mozjs-78: renumber patches gnome-shell-extensions: Enable gnome-classic session for wayland zenity: Upgrade 3.32.0 -> 3.41.0 / meson build / rework yelp: upgrade 41.1 -> 41.2 yelp-xsl: upgrade 41.0 -> 41.1 usermode: upgrade 1.113 -> 1.114 sysprof: upgrade 3.42.0 -> 3.42.1 gnome-terminal: upgrade 3.42.1 -> 3.42.2 gnome-panel: upgrade 3.38.0 -> 3.42.0 gnome-autoar: upgrade 0.4.1 -> 0.4.2 evolution-data-server: upgrade 3.42.2 -> 3.42.3 poppler: upgrade 21.12.0 -> 22.01.0 exo: upgrade 4.16.1 -> 4.16.3 imsettings: upgrade 1.8.2 -> 1.8.3 thunar: upgrade 4.16.8 -> 4.16.9 Andrei Gherzan (2): mosquitto: Don't depends on dlt-daemon unconditionally python3-pymetno: Introduce recipe on 0.7.0 Andrey Zhizhikin (1): gpsd: fix clang buid via export CC explicitly Armin Kuster (6): ldns: update to 1.8.1 strongswan: provide PACKAGECONFIG for cureve25519 strongswan: add tpm PACKAGECONFIG strongswan: add integrity options strongswan: remove redundant DEPENDS wireshark: update to latest stable 3.4.11 Bartosz Golaszewski (6): python3-email-validator: new package libgpiod: ptest: rrecommend python3-unittest when building python tests libgpiod: ptest: rrecommend coreutils libgpiod: ptest: redirect stderr to stdout for test executables cmatrix: new package python3-zeroconf: bump version 0.36.13 -> 0.38.1 Bhargav Das (1): python3-colorzero: add recipe for python colorzero Bruce Ashfield (2): vboxguestdrivers: fix build against 5.15 kernel/libc-headers headers python: remove recipes imported to oe-core Changqing Li (5): mozjs-78: fix do_configure failure mozjs-91: fix do_configure failure mozjs-91/mozjs-78: fix compile failure on centos7 php: correct module name and library name postgresql: fix CVE-2021-23214,CVE-2021-23222 Christian Eggers (5): gpsd: remove obsolete files from FILES:${PN}-dev gpsd: remove obsolete libgpsd package gpsd: remove obsolete files from FILES:gps-utils gpsd: list files for gps-utils individually python3-gcovr: add recipe Claude Bing (2): php: update from 7.4.21 to 8.0.12 php: use qemu wrapper to build minilua Claus Stovgaard (3): Added usbip-tools for kernel USB/IP Add gutenprint to meta-oe Add pycups - python bindings for CUPS Ed Tanous (1): Update to new version of boost-uri Fathi Boudra (1): makedumpfile: upgrade from 1.6.9 to 1.7.0 Geoff Parker (2): python3-cchardet: add BBCLASSEXTEND = "native nativesdk" python3-aiosignal, python3-frozenlist: Add native & nativestdk package support Gianfranco (2): vboxguestdrivers: upgrade 6.1.28 -> 6.1.30 vboxguestdrivers: drop md5sum from SRC_URI. He Zhe (1): protobuf: Fix static init fiasco Hongxu Jia (5): ostree: add nativesdk support ostree: use Yocto mirror ostree: workaround compile error with option gcc option -Og libblockdev: Do not include duplicate entries in bd_lvm_lvs output grubby: fix conflict with debianutils Jacob Kroon (1): Revert "ccid: Fix floating runtime dependency on flex" Jan Vermaete (6): netdata: Using the github.com release + upstream_check. netdata: from 1.22.1 to 1.32.0 netdata: version bump from 1.32.0 to 1.32.1 netdata: fixed some oelint-adv issues in the recipe. netdata: do not send anonymous statistics by default. netdata: fix for commit 8554624cc7f84e6b63b2ea4b94ee5fd2821021ca Jeremy A. Puhlman (1): cdrkit: remove ${PN} from ${PN}-dev RDEPENDS Jeremy Kerr (4): mctp: upgrade to v1.0 mctp: install dbus service configuration contrib: allow override-style syntax for vars & routines contrib: fix python warnings for oe-stylize Joshua Watt (8): colord: introspection is not valid meson option gdm: introspection is not valid meson option gnome-settings-daemon: introspection is not valid meson option gnome-shell: introspection is not valid meson option gnome-control-center: Fixup polkit directory permissions gnome-online-accounts: Switch back to libsoup2 graphene: Move from meta-gnome -> meta-oe jemalloc: Fix license file Kai Kang (1): libqb: use branch main Khem Raj (97): bitwise: Fix build with latest ncurses 6.3+ libcdio: Fix build with ncurses 6.3+ nmon: Upgrade to 16m sysdig: Fix build with ncurses 6.3+ iptraf-ng: Upgrade to 1.2.1 tiptop: Fix build with ncurses 6.3+ mtr: Fix build with ncurses 6.3+ mtr: Explicitly use branch= in SRC_URI liburing: Use libc mmap() wrapper instead of calling __NR_mmap syscall directly protobuf: Upgrade to 3.19.1 protobuf: Disable tailcall on mips/clang packagegroup-meta-python: Add python3-imgtool python3-prctl: Use https protocol for git fetcher mozjs-78: Check for big-endian icu data file existence before creating it mozjs-78: Set X lib/include paths mozjs-78: Pass C/C++ flags to js configure libjs-jquery-globalize: Use a proper SHA in SRCREV instead of tag iptraf-ng: Create /var/log and /var/lib subdirs at runtime gstd: Remove empty /var/volatile/log monkey: Keep /var/volatile empty hiawatha: Create /var/log /var/run at runtime python3-kivy: Use branch parameter in SRC_URI mdns: Upgrade to 1310.140.1 packagegroup-meta-networking: Enable mdns on musl systems ntpsec: Disable seccomp on musl/rv32 ntpsec: Disable documentation packagegroup-meta-networking: Add ntpsec sdbus-c++-libsystemd: Fix build with kernel 5.15+ mctp: Fix build with 5.15+ kernel headers packagegroup-meta-python.bb: Add python3-pytz-deprecation-shim packagegroup-meta-oe: Add fwupd and fwupd-efi protobuf-c: Export native protoc linpack: Build both sp and dp binaries php: Build minilua for build host xf86-video-ati: Upgrade to 19.1.0 sdbus-c++-libsystemd: Upgrade to 249.5 xf86-video-nouveau: fixup driver for new X server ABI tracker: introspection is not valid meson option gnome-desktop: introspection is not valid meson option libmediaart: introspection is not valid meson option libgweather: introspection is not valid meson option tepl: introspection is not valid meson option gjs: introspection is not valid meson option tracker-miners: introspection is not valid meson option gedit: introspection is not valid meson option tracker,tracker-miners: Upgrade to 3.2.1 gnome-tweaks: introspection is not valid meson option colord-gtk: introspection is not valid meson option packagegroup-meta-python: Add python3-gcovr ippool: silence a DeprecationWarning packagegroup-meta-oe: Add pim435 influxdb: Upgrade to 1.8.10 influxdb: Fix build with Go 1.17 on x86_64 packagegroup-core-clutter: Mark TUNE_PKGARCH specific packagegroup-xfce-base: Mark TUNE_PKGARCH specific libcamera: Fix build break on musl meta-networking,meta-python: Fix README for yocto check layer gjs: Link with libatomic on rv32 ntpsec: Disable seccomp on riscv32 libunix-statgrab: Use compiler driver for linking as well tbb: Upgrade to 2021.4.0 packagegroup-meta-oe: Add unifex gjs: Fix build failures with meson 0.60.2 packagegroup-meta-perl: Add new packages packagegroup-meta-python: Add python3-pymetno yelp: Add option to support webkit2gtk-4-0 surf: Add soup3 patch conditionally netdata: Link libatomic on mips gssdp: Use sniffer only when gnome layer is in mix packagegroup-meta-oe: Add graphene inotify-tools: Upgrade to 3.21.9.6 inotify-tools: Disable -Werror python3-matplotlib: Generate correctly names setup config file inotify-tools: Fix build on musl libkcapi: Fix build with musl packagegroup-meta-oe: Add gutenprint, python3-pycups and usbip-tools tvheadend: Disable dvbscan pkcs11-helper: Fix build with nss >= 3.73.1 tbb: Disable LTO on rv64 packagegroup-meta-python: Add python3-colorzero packagegroup-meta-oe: Add cmatrix pcp: Fix build to exclude qt5 packagegroup-meta-oe: Add dool and pcp nautilus: Fix build with libportal >= 0.5 influxdb: Enable network during do_compile meta-oe: Use setuptools3-base thunar: Depend on libxml-parser-perl-native python3-matplotlib: Do not use setuptools_scm_git_archive python3-pytest-helpers-namespace: Enable network during do_compile python3-pybind11: Use setuptools3 instead of distutils3 functions pcp: Fix build race condition tnftp: Add missing header stdc-predef.h jemalloc: Fix build with glibc 2.35+clang packagegroup-meta-oe: Add duktape iotop: Use lld with clang on arm meta-xfce: Convert catfish and menulibre to use setuptools3 sdbus-c++-libsystemd: Fix build on musl Konrad Weihmann (3): python3-wtforms: add missing dependencies python3-execnet: depend on setuptools-scm python3-lazy-object-proxy: upgrade 1.6.0 > 1.7.1 Lei Maohui (1): sysprof: Added json-glib into DEPENDS to fix build error. Leif Middelschulte (1): dbus-daemon-proxy: add missing `return` statement Leon Anavi (92): python3-qrcode: Upgrade 7.3 -> 7.3.1 python3-bidict: Upgrade 0.21.2 -> 0.21.4 python3-pint: Upgrade 0.17 -> 0.18 python3-prettytable: Upgrade 2.2.1 -> 2.3.0 python3-astroid: Upgrade 2.8.2 -> 2.8.4 python3-isort: Upgrade 5.9.3 -> 5.10.0 python3-aenum: Upgrade 3.1.0 -> 3.1.2 python3-natsort: Upgrade 7.1.1 -> 8.0.0 python3-cachecontrol: Upgrade 0.12.6 -> 0.12.9 python3-wrapt: Upgrade 1.13.2 -> 1.13.3 python3-prettytable: Upgrade 2.3.0 -> 2.4.0 python3-imageio: Upgrade 2.10.1 -> 2.10.3 python3-pytz-deprecation-shim: Add recipe python3-tzlocal: Upgrade 4.0.1 -> 4.1 python3-soupsieve: Upgrade 2.2.1 -> 2.3 python3-configparser: Upgrade 5.0.2 -> 5.1.0 python3-yappi: Upgrade 1.3.2 -> 1.3.3 python3-pydicti: Upgrade 1.1.4 -> 1.1.6 python3-zeroconf: Upgrade 0.36.9 -> 0.36.12 python3-yarl: Upgrade 1.7.0 -> 1.7.2 python3-elementpath: Upgrade 2.3.2 -> 2.4.0 python3-astroid: Upgrade 2.8.4 -> 2.8.5 python3-coverage: Upgrade 6.1.1 -> 6.1.2 python3-aenum: Upgrade 3.1.3 -> 3.1.5 python3-zeroconf: Upgrade 0.36.12 -> 0.36.13 python3-bandit: Uprade 1.7.0 -> 1.7.1 python3-colorlog: Upgrade 6.5.0 -> 6.6.0 python3-soupsieve: Upgrade 2.3 -> 2.3.1 python3-cchardet: Add recipe python3-charset-normalizer: Add recipe python3-frozenlist: Add recipe python3-aiosignal: Add recipe python3-aiohttp: Upgrade 3.8.0 -> 3.8.1 packagegroup-meta-python.bb: Add new packages python3-eventlet: Upgrade 0.32.0 -> 0.33.0 python3-imageio: Upgrade 2.10.3 -> 2.10.5 python3-deprecated: Upgrade 1.2.12 -> 1.2.13 python3-parso: Add runtime dependencies python3-jedi: Upgrade 0.18.0 -> 0.18.1 python3-prompt-toolkit: Upgrade 3.0.21 -> 3.0.22 python3-imageio: Upgrade 2.10.5 -> 2.11.0 python3-cmd2: Upgrade 2.3.0 -> 2.3.1 python3-simplejson: Upgrade 3.17.5 -> 3.17.6 python3-aiohue: Upgrade 2.6.3 -> 3.0.1 python3-imageio: Upgrade 2.11.0 -> 2.11.1 python3-marshmallow: Upgrade 3.14.0 -> 3.14.1 python3-jsonpointer: Upgrade 2.1 -> 2.2 python3-humanize: Upgrade 3.12.0 -> 3.13.1 python3-cachecontrol: Upgrade 0.12.9 -> 0.12.10 python3-prompt-toolkit: Upgrade 3.0.22 -> 3.0.24 python3-isodate: Upgrade 0.6.0 -> 0.6.1 python3-pychromecast: Upgrade 10.1.1 -> 10.2.3 python3-imageio: Upgrade 2.13.3 -> 2.13.5 python3-psutil: Upgrade 5.8.0 -> 5.9.0 python3-astroid: Upgrade 2.9.0 -> 2.9.2 python3-robotframework: Upgrade 4.1.2 -> 4.1.3 python3-cantools: Upgrade 37.0.0 -> 37.0.1 python3-diskcache: Upgrade 5.3.0 -> 5.4.0 python3-typeguard: Upgrade 2.13.2 -> 2.13.3 python3-huey: Upgrade 2.4.2 -> 2.4.3 python3-ujson: Upgrade 5.0.0 -> 5.1.0 python3-google-api-core: Upgrade 2.2.0 -> 2.3.2 python3-astroid: Upgrade 2.9.2 -> 2.9.3 python3-urllib3: Upgrade 1.26.7 -> 1.26.8 python3-rdflib: Upgrade 6.0.2 -> 6.1.1 python3-bitarray: Upgrade 2.3.4 -> 2.3.5 python3-asyncio-throttle: Add recipe python3-aiohue: Upgrade 3.0.1 -> 3.0.11 python3-requests: Upgrade 2.26.0 -> 2.27.1 python3-natsort: Upgrade 8.0.0 -> 8.0.2 python3-sentry-sdk: Upgrade 1.4.3 -> 1.5.2 python3-regex: Upgrade 2021.10.8 -> 2021.11.10 python3-wtforms: Upgrade 3.0.0 -> 3.0.1 python3-charset-normalizer: Upgarde 2.0.7 -> 2.0.10 python3-gmpy2: Upgrade 2.1.1 -> 2.1.2 python3-jdatetime: Upgrade 3.6.4 -> 3.8.1 python3-fasteners: Upgrade 0.16.3 -> 0.17.2 python3-jsmin: Upgrade 3.0.0 -> 3.0.1 python3-croniter: Upgrade 1.1.0 -> 1.2.0 python3-fastjsonschema: Upgrade 2.15.1 -> 2.15.3 python3-aenum: Upgrade 3.1.5 -> 3.1.6 python3-decorator: Upgrade 5.1.0 -> 5.1.1 python3-pythonping: Upgrade 1.1.0 -> 1.1.1 python3-dnspython: Upgrade 2.1.0 -> 2.2.0 python3-frozenlist: Upgrade 1.2.0 -> 1.3.0 python3-simpleeval: Upgrade 0.9.10 -> 0.9.12 python3-twine: Upgrade 3.4.1 -> 3.7.1 python3-pillow: Upgrade 8.3.2 -> 9.0.0 python3-pycocotools: Upgrade 2.0.2 -> 2.0.4 python3-paramiko: Upgrade 2.9.1 -> 2.9.2 python3-sentry-sdk: Upgrade 1.5.2 -> 1.5.3 imageio: Upgrade 2.13.5 -> 2.14.0 Luca Boccassi (2): lvm2: do not install systemd units/initscripts when building native SDK tools Add recipe for duktape Marek Vasut (4): libsdl2-ttf: Remove incorrect x11 from REQUIRED_DISTRO_FEATURES freerdp: Upgrade 2.3.0 -> 2.4.1 freerdp: Add missing libusb1 dependency freerdp: Make PCSC dependency optional Mark Hatle (1): python3-matplotlib: Disable automatic download during do_compile Markus Volk (5): libgdata: add vala PACKAGECONFIG gspell: inherit vala gmime: inherit vala evolution-data-server: cleanup; enable vala introspection folks: initial add recipe Martin Jansa (7): nodejs: fix build without scrypt unicode-ucd: set downloadfilename to include PV ntpsec: require x11 in DISTRO_FEATURES libgusb: add PACKAGECONFIG for vapi and keep it enabled only when introspection is Revert "libgusb: Use the correct args to disable vala support" packagegroup-meta-multimedia: include x265 only with commercial in LICENSE_FLAGS_WHITELIST simple-mtpfs: add dependency on autoconf-archive Matthias Klein (2): paho-mqtt-c: upgrade 1.3.8 -> 1.3.9 paho-mqtt-cpp: new package Mauro Anjo (2): Upgrade libcamera libcamera: Update to latest commit Michael Vetter (1): jasper: upgrade 2.0.26 -> 2.0.33 Mingli Yu (6): mariadb: Fix openssl 3.x compatibility libteam: switch to python3 libteam: improve the ptest output php: Upgrade to 8.1.0 php: avoid textrel QA Issue warning python3-lxml: check the return value Nisha Parrakat (1): nodejs_16.11.1.bb: only handle npm if configured Oleksandr Kravchuk (48): python3-protobuf: update to 3.19.0 python3-google-api-core: update to 2.2.0 python3-google-api-python-client: update to 2.28.0 python3-imageio: update to 2.10.1 python3-pybind11: update to 2.8.1 liburing: update to 2.1 protobuf: update to 3.19.0 wolfssl: update to 5.0.0 fb-test: fix SRC_URI bmon: fix PV cpuid: update to 20211129 gtk4: set UPSTREAM_CHECK_REGEX to stable versions iwd: update to 1.20 libnma: update to 1.8.32 python3-astroid: update to 2.9.0 python3-coverage: update to 6.2 python3-croniter: update to 1.1.0 python3-diskcache: update to 5.3.0 python3-graphviz: update to 0.19 python3-imageio: update to 2.13.3 python3-iso8601: update to 1.0.2 python3-ldap: update to 3.4.0 python3-lz4: update to 3.1.10 python3-matplotlib: update to 3.5.1 python3-pymetno: update to 0.9.0 python3-pywbem: update to 1.3.0 python3-redis: update to 4.0.2 python3-wtforms: update to 3.0.0 soci: update to 4.0.2 uftrace: update to 0.11 librdkafka: update to 1.8.2 gparted: add UPSTREAM_CHECK_URI libwacom: update to 1.12 libsrtp: update to 2.4.2 dbus-cxx: update to 2.1.0 sysprof: update to 3.42.0 gssdp: update to 1.4.0.1 libkcapi: update to 1.3.1 python3-lxml: update to 4.7.1 python3-icu: update to 2.8 python3-googleapis-common-protos: update to 1.54.0 python3-gevent: update to 21.12.0 python3-twitter: update 4.4.0 python3-contextlib2: update to 21.6.0 simple-mtpfs: update to 0.4.0 xl2tpd: update to 1.3.16 python-cantools: update to 37.0.0 lirc: replace setuptools3-bas with distutils-common-base Ovidiu Panait (1): syslog-ng: adjust control socket location Patrick Williams (1): unifex: add recipe Peter Kjellerstedt (16): libssh: Support building for native and nativesdk corosync: Clean up leftover support for qdevice and qnetd corosync: Do not install the /var/log/cluster directory collectd: Do not install /var/log atop: Do not install the /var/log/atop directory openflow: Create /var/log/openflow in runtime mongodb: A little clean up mongodb: Create /var/log/mongodb in runtime opensaf: Create /var/log/opensaf/saflog in runtime opensaf: Make sure a file needed by opensafd.service is not removed gattlib: Explicitly disable Python support googletest: Switch branch from master to main libsrtp: Add support for specifying the crypto library nodejs: Drop workaround for a Python 2 dependency nodejs: Drop workaround for an absolute path in the npm shebang nodejs: A little clean up Philip Balister (1): fftw: Update to fftw-3.3.10 Philippe Coval (7): lv-drivers: Lint recipe lv-lib-png: Lint recipe lvgl: Introduce global variable for configuration lvgl: Add hints about using configuration variables lvgl: Support external wayland config lvgl: Update to 8.1.0 pim435: Add recipe for C implementation for userspace driver app Pierre-Jean Texier (1): libmxml: upgrade 3.2 -> 3.3 Ramon Fried (1): bitwise: Upgrade 0.42 -> 0.43 Richard Hughes (4): libgusb: Use the correct args to disable vala support libjcat: Update to 0.1.9 libxmlb: Update to 0.3.6 fwupd: Update to 1.7.3 Richard Purdie (1): recipes: Update SRC_URI branch and protocols Robert Joslyn (2): htop: Update to 3.1.2 postgresql: Update to 14.1 Ross Burton (58): python3-imgtool: add recipe modemmanager: remove intltool-native DEPENDS python3-cryptography: backport patches to make this work against OpenSSL 3 fwupd-efi: add new recipe fwupd: add new recipe nginx: use ln -rs libxmlb: put binary into separate package imlib2: clarify license xmlrpc-c: set precise BSD license xmlrpc-c: remove unused libxml2 dependency xmlrpc-c: clean up PACKAGECONFIG xmlrpc-c: use gnu-configize dash: set precise BSD license sg3-utils: set precise BSD license nodejs: set precise BSD license libkcapi: remove DEPENDS on target libtool libkcapi: set precise BSD license pcsc-lite: set precise BSD license python3-cryptography: set precise BSD license python3-crypto-vectors: set precise BSD license python3-gevent: use system libraries instead of embedding python3-gevent: update license python3-lxml: set precise BSD license python3-posix-ipc: set precise BSD license python3-posix-ipc: remove spurious dependencies python3-pyzmq: set precise BSD license fwupd: upgrade to 1.7.2 fwupd: fix dependency typo net-snmp: use precise BSD license gnome-themes-extra: set correct SRC_URI qpdf: remove obsolete support for renamed libtool php: remove obsolete support for renamed libtool dhcp-relay: remove obsolete support for renamed libtool apache2: remove obsolete support for renamed libtool xfsdump: remove obsolete support for renamed libtool unbound: remove obsolete support for renamed libtool cpufrequtils: remove obsolete support for renamed libtool gtk+: remove obsolete support for renamed libtool apache-websocket: remove obsolete support for renamed libtool srecord: remove obsolete support for renamed libtool srecord: add libgcrypt PACKAGECONFIG srecord: properly initialize libtool dhcp-relay: fix rebuilds tbb: enable native/nativesdk builds fwts: do out-of-tree builds tbb: upgrade to 2021.5.0 python3-scapy: remove redundant pycrypto RDEPENDS python3-smbbus: use DISTUTILS_SETUP_PATH python3-pycrypto: remove obsolete pycrypto module python3-smbus: use setuptools python3-greenlet: remove redundant distutils3 inherit python3-hexdump: remove python3-pyparted: port to setuptools python3-dbussy: port to setuptools cxxtest: move to setuptools iotop: move to the C port of iotop sanlock: port to setuptools pyxdg: upgrade and remove distutils Sakib Sajal (2): io-compress-lzma-perl: add recipe for version 2.096 nss: upgrade 3.64 -> 3.73.1 Salman Ahmed (2): openldap: upgrade 2.4.58 -> 2.5.8 python3-ldap: for openldap v2.5.8, link with libldap instead of libldap_r Sean Nyekjaer (1): msgpack-cpp: fix msgpack-cpp is a header only library Stanislav Angelovic (1): Bump sdbus-c++ to version v1.0.0 Tim Orling (12): python3-gammu: add recipe for v3.2.4 python3-setuptools-rust-native: add v1.1.2 recipe python3-pyruvate: add recipe for v1.1.2 python3-pytest-subtests: upgrade 0.5.0 -> 0.6.0 python3-cryptography-vectors: upgrade 35.0.0 => 36.0.1 python3-cryptography: upgrade 3.3.2 -> 36.0.1 gammu: upgrade 1.32.0 -> 1.42.0 tiptop: update download URL and HOMEPAGE cmocka: use https protocol for fetching pyo3.bbclass: add class for PyO3 cross-compilation setuptools3_rust.bbclass: setuptoools Rust plugin python3-pyruvate: disable 64 bit atomics for mips Trevor Gamblin (7): python3-pycparser: RSUGGESTS cpp and cpp-symlinks libnftnl: upgrade 1.2.0 -> 1.2.1 python3-django: upgrade 3.2.5 -> 3.2.10 libnftnl: add ptest python3-django: upgrade 2.2.25 -> 2.2.26 python3-django: upgrade 3.2.10 -> 3.2.11 python3-django: Add recipe for 4.0.1 Wang Mingyu (10): gsl: upgrade 2.7 -> 2.7.1 mozjs: upgrade 91.2.0 -> 91.4.0 libgusb: upgrade 0.3.8 -> 0.3.9 python3-pychromecast: upgrade 10.1.0 -> 10.1.1 python3-websocket-client: upgrade 1.2.1 -> 1.2.3 python3-sqlalchemy: upgrade 1.4.27 -> 1.4.28 dnf-plugin-tui: Fix bug when generating CSV file sdbus-c++-tools: upgrade 1.0.0 -> 1.1.0 sdbus-c++-libsystemd: upgrade 249 -> 250.3 fmt: upgrade 8.0.1 -> 8.1.1 William A. Kennington III (2): ipmitool: Split ipmievd into a separate package jq: upgrade 1.6 -> 2021-10-24 git Windel Bouwman (1): python3-coloredlogs: Added nativesdk Xu Huan (35): python3-websockets: upgrade 10.0 -> 10.1 python3-xlsxwriter: upgrade 3.0.1 -> 3.0.2 python3-socketio: upgrade 5.4.1 -> 5.5.0 python3-pymongo: upgrade 3.12.0 -> 4.0 python3-pyephem: upgrade 4.1 -> 4.1.1 python3-pycparser: upgrade 2.20 -> 2.21 python3-aiofiles: upgrade 0.7.0 -> 0.8.0 python3-bitstruct: upgrade 8.11.1 -> 8.12.1 python3-cmd2: upgrade 2.3.1 -> 2.3.3 python3-configparser: upgrade 5.1.0 -> 5.2.0 python3-rsa: upgrade 4.7.2 -> 4.8 python3-django: upgrade 2.2.24 -> 2.2.25 python3-gnupg: upgrade 0.4.7 ->0.4.8 python3-graphviz: upgrade 0.19 -> 0.19.1 python3-gmpy2: upgrade 2.1.0rc1 -> 2.1.1 python3-grpcio: upgrade 1.41.1 -> 1.43.0 python3-sqlalchemy: upgrade 1.4.28 ->1.4.29 python3-pyro4: upgrade 4.81 -> 4.82 python3-huey: upgrade 2.4.1 -> 2.4.2 python3-msgpack: upgrade 1.0.2 -> 1.0.3 python3-smpplib: upgrade 2.2.0 -> 2.2.1 python3-wheel: upgrade 0.37.0 -> 0.37.1 python3-meh: upgrade 0.50 -> 0.50.1 python3-pandas: upgrade 1.3.4 -> 1.3.5 python3-paramiko: upgrade 2.8.0 ->2.9.1 python3-parso: upgrade 0.8.2 -> 0.8.3 python3-protobuf: upgrade 3.19.0 ->3.19.3 python3-pymongo: upgrade 4.0 -> 4.0.1 python3-pynacl: upgrade 1.4.0 -> 1.5.0 python3-pytest-timeout: upgrade 2.0.1 -> 2.0.2 python3-socketio: upgrade 5.5.0 -> 5.5.1 python3-argcomplete upgrade 1.12.3 -> 2.0.0 python3-async-timeout: upgrade 4.0.0 -> 4.0.2 python3-engineio: upgrade 4.3.0 -> 4.3.1 python3-google-api-python-client: upgrade 2.33.0 -> 2.36.0 Yi Zhao (31): netplan: fix hardcoded path for /lib/netplan libssh: use https instead of git in SRC_URI strongswan: add required kernel modules to RRECOMMENDS libldb: upgrade 2.3.0 -> 2.3.2 samba: upgrade 4.14.8 -> 4.14.10 libtalloc: fix pyext_PATTERN for cross compilation libtdb: fix pyext_PATTERN for cross compilation libtevent: fix pyext_PATTERN for cross compilation libldb: fix pyext_PATTERN for cross compilation samba: fix pyext_PATTERN for cross compilation samba: add pyldb to rdepends for samba-python3 samba: update cross-answers files openldap: fix parallel build failure openldap: upgrade 2.5.8 -> 2.5.9 openldap: fix strip issue with new patch postfix: upgrade 3.6.2 -> 3.6.3 openipmi: upgrade 2.0.31 -> 2.0.32 xmlsec1: enable native build upower: add UPSTREAM_CHECK_GITTAGREGEX lvm2: add UPSTREAM_CHECK_GITTAGREGEX ndctl: add UPSTREAM_CHECK_GITTAGREGEX nftables: upgrade 1.0.0 -> 1.0.1 ipset: upgrade 7.11 -> 7.15 libnetfilter-queue: upgrade 1.0.3 -> 1.0.5 bridge-utils: upgrade 1.7 -> 1.7.1 iscsi-initiator-utils: upgrade 2.1.4. -> 2.1.5 openldap: ignore the mkdir errors in Makefile tnftp: upgrade 20151004 -> 20210827 dracut: upgrade 051 -> 055 tree: upgrade 2.0.0 -> 2.0.1 postfix: upgrade 3.6.3 -> 3.6.4 Zheng Ruoqin (4): spitools: upgrade 1.0.0 -> 1.0.1 python3-rdflib: upgrade 6.0.0 -> 6.0.2 python3-typeguard: upgrade 2.13.0 -> 2.13.2 python3-ujson: upgrade 4.2.0 -> 4.3.0 leimaohui (5): dstat: Deleted terminated project. pcp: Added a new recipe which provides dstat command. dool: Added a new OSS that forked from dstat project. xrdp: Fixed build error with openssl 3.0 and upgraded from 0.9.17 to 0.9.18. xorg-xrdp: Upgraded from 0.2.5 to 0.2.18. mk (1): python3-marshmallow: add recipe at version 3.14.0 wangmy (79): avro-c: upgrade 1.10.2 -> 1.11.0 botan: upgrade 2.18.1 -> 2.18.2 c-ares: upgrade 1.17.2 -> 1.18.1 grpc: upgrade 1.41.0 -> 1.41.1 libcrypt-openssl-guess-perl: upgrade 0.13 -> 0.14 fetchmail: upgrade 6.4.21 -> 6.4.23 iwd: upgrade 1.18 -> 1.19 debootstrap: upgrade 1.0.124 -> 1.0.126 jsoncpp: upgrade 1.9.4 -> 1.9.5 python3-aenum: upgrade 3.1.2 -> 3.1.3 python3-aiohttp: upgrade 3.7.4 -> 3.8.0 python3-async-timeout: upgrade 3.0.1 -> 4.0.0 python3-fastnumbers: upgrade 3.1.0 -> 3.2.1 python3-google-api-python-client: upgrade 2.28.0 -> 2.30.0 python3-graphviz: upgrade 0.17 -> 0.18 python3-httplib2: upgrade 0.20.1 -> 0.20.2 openvpn: Change the default cipher to AES-256-GCM for server configurations ctags: upgrade 5.9.20210905.0 -> 5.9.20211114.0 libmbim: upgrade 1.26.0 -> 1.26.2 smcroute: upgrade 2.5.3 -> 2.5.4 python3-absl: upgrade 0.15.0 -> 1.0.0 python3-alembic: upgrade 1.7.4 -> 1.7.5 python3-cmd2: upgrade 2.2.0 -> 2.3.0 python3-gast: upgrade 0.5.2 -> 0.5.3 python3-isort: upgrade 5.10.0 -> 5.10.1 python3-pychromecast: upgrade 9.3.1 -> 10.1.0 python3-sqlalchemy: upgrade 1.4.26 -> 1.4.27 wireguard-tools: upgrade 1.0.20210315 -> 1.0.20210914 cryptsetup: upgrade 2.4.1 -> 2.4.2 libqb: upgrade 2.0.3 -> 2.0.4 qpdf: upgrade 10.3.2 -> 10.4.0 tesseract: upgrade 4.1.1 -> 4.1.3 thin-provisioning-tools: upgrade 0.8.5 -> 0.9.0 xmlsec1: upgrade 1.2.32 -> 1.2.33 libnetfilter-log: upgrade 1.0.1 -> 1.0.2 python3-autobahn: upgrade 21.3.1 -> 21.11.1 pure-ftpd: upgrade 1.0.49 -> 1.0.50 icewm: upgrade 2.8.0 -> 2.9.0 ostree: upgrade 2021.5 -> 2021.6 ply: upgrade 2.1.1 -> 2.2.0 pps-tools: upgrade 1.0.2 -> 1.0.3 dnf-plugin-tui: Fix a bug with newer version rpm. snort: upgrade 2.9.18.1 -> 2.9.19 cloc: upgrade 1.90 -> 1.92 python3-scrypt: upgrade 0.8.18 -> 0.8.19 fio: upgrade 3.28 -> 3.29 mpich: upgrade 3.4.2 -> 3.4.3 nano: upgrade 5.9 -> 6.0 redis-plus-plus: upgrade 1.3.2 -> 1.3.3 satyr: upgrade 0.38 -> 0.39 qpdf: upgrade 10.4.0 -> 10.5.0 tree: upgrade 1.8.0 -> 2.0.0 libfile-slurper-perl: upgrade 0.012 -> 0.013 libio-socket-ssl-perl: upgrade 2.072 -> 2.073 python3-ipython: upgrade 7.28.0 -> 7.30.1 apache2: upgrade 2.4.51 -> 2.4.52 python3-pyhamcrest: upgrade 2.0.2 -> 2.0.3 python3-pymisp: upgrade 2.4.148 -> 2.4.152 weechat: upgrade 3.0 -> 3.4 wolfssl: upgrade 5.0.0 -> 5.1.0 pkcs11-helper: upgrade 1.27 -> 1.28 bats: upgrade 1.4.1 -> 1.5.0 doxygen: upgrade 1.9.2 -> 1.9.3 pcsc-tools: upgrade 1.5.7 -> 1.5.8 dnfdragora: upgrade 1.1.2 -> 2.1.2 iwd: upgrade 1.20 -> 1.21 python3-pyscaffold: upgrade 4.1.1 -> 4.1.4 python3-supervisor: upgrade 4.2.2 -> 4.2.4 rdma-core: upgrade 36.0 -> 38.0 nlohmann-json: upgrade 3.10.4 -> 3.10.5 protobuf: upgrade 3.19.1 -> 3.19.3 uriparser: upgrade 0.9.5 -> 0.9.6 mtr: upgrade 0.94 -> 0.95 networkmanager: upgrade 1.32.12 -> 1.34.0 cryptsetup: upgrade 2.4.2 -> 2.4.3 cups-filters: upgrade 1.27.2 -> 1.28.11 libmodbus: upgrade 3.1.6 -> 3.1.7 libsdl2-ttf: upgrade 2.0.15 -> 2.0.18 monit: upgrade 5.29.0 -> 5.30.0 zangrc (1): python3-smpplib: upgrade 2.1.0 -> 2.2.0 zhengruoqin (18): python3-cantools: upgrade 36.4.0 -> 36.5.0 python3-coverage: upgrade 6.0.2 -> 6.1.1 python3-cycler: upgrade 0.10.0 -> 0.11.0 python3-engineio: upgrade 4.2.1 -> 4.3.0 python3-grpcio-tools: upgrade 1.41.0 -> 1.41.1 python3-grpcio: upgrade 1.41.0 -> 1.41.1 python3-ujson: upgrade 4.3.0 -> 5.0.0 chrony: upgrade 4.1 -> 4.2 openvpn: upgrade 2.5.4 -> 2.5.5 samba: upgrade 4.14.10 -> 4.14.11 libnet-dns-perl: upgrade 1.32 -> 1.33 byacc: upgrade 20210808 -> 20211224 glmark2: upgrade 2021.02 -> 2021.12 python3-djangorestframework: upgrade 3.12.4 -> 3.13.1 python3-google-api-python-client: upgrade 2.30.0 -> 2.33.0 python3-networkx: upgrade 2.6.2 -> 2.6.3 python3-pyatspi: upgrade 2.38.1 -> 2.38.2 pugixml: upgrade 1.11.2 -> 1.11.4 poky: d78650b980..27ff420543: Adrian Freihofer (1): runqemu: support rootfs mounted ro Alejandro Hernandez Samaniego (3): tclibc-newlib: Supply missing /bin/sh target in newlib sdk tclibc-baremetal: Supply missing /bin/sh target in the baremetal sdk gcc-cross-canadian: Fix cross canadian compiler for baremetal targets Alexander Kanavin (262): runqemu: unbreak non-gl displays curl: submit patch upstream libxml2: submit patch upstream psplash: upgrade to latest revision python3-gitdb: upgrade 4.0.7 -> 4.0.9 python3-pyparsing: upgrade 3.0.0 -> 3.0.4 vala: upgrade 0.54.2 -> 0.54.3 asciidoc: upgrade 10.0.0 -> 10.0.1 lighttpd: upgrade 1.4.60 -> 1.4.61 stress-ng: upgrade 0.13.00 -> 0.13.06 mesa: upgrade 21.2.4 -> 21.2.5 linux-firmware: upgrade 20210919 -> 20211027 puzzles: upgrade to latest revision libsoup: upgrade 3.0.1 -> 3.0.2 libsoup-2.4: upgrade 2.74.0 -> 2.74.1 nghttp2: upgrade 1.45.1 -> 1.46.0 diffoscope: upgrade 188 -> 189 gawk: update 5.1.0 -> 5.1.1 cmake: update 3.21.3 -> 3.21.4 ffmpeg: update 4.4 -> 4.4.1 icu: update 69.1 -> 70.1 librsvg: update 2.52.2 -> 2.52.3 xf86-video-intel: update to latest commit cracklib: update 2.9.5 -> 2.9.7 cracklib: patches submitted upstream docbook-xml: patch is not upstreamable lrzsz: patch is not upstreamable libjitterentropy: upgrade 3.3.0 -> 3.3.1 gdbm: upgrade 1.19 -> 1.22 perl: backport gdbm 1.2x compatibility fixes valgrind: mark ptest-specific patch as inappropriate systemd-bootchart: submit musl patches upstream librsvg: set the needed atomic configuration flags directly per-target libxml2: mark patch as non-upstreamable libpcre/libpcre2: correct SRC_URI ovmf: submit patch upstream mesa-demos: drop glx option and patch mesa-demos: mark glew/glu patch as non-upstreamable xserver-xorg: update 1.20.13 -> 21.1.1 xserver-xorg: convert from autotools to meson xserver-xorg: add missing libtirpc dependency rust: update 1.56.0 -> 1.56.1 libgpg-error: update 1.42 -> 1.43 socat: upgrade 1.7.4.1 -> 1.7.4.2 kexec-tools: update 2.0.22 -> 2.0.23 python3-hypothesis: upgrade 6.24.0 -> 6.24.2 python3-numpy: upgrade 1.21.3 -> 1.21.4 python3-packaging: upgrade 21.0 -> 21.2 python3-pbr: upgrade 5.6.0 -> 5.7.0 python3-py: upgrade 1.10.0 -> 1.11.0 python3-setuptools: upgrade 58.3.0 -> 58.5.3 python3-pyparsing: update 3.0.4 -> 3.0.5 vulkan-samples: update to latest revision gnu-config: update to latest revision libgpg-error: mark patch as non-upstreamable valgrind: submit patch upstream meson: upgrade 0.59.2 -> 0.60.1 shared-mime-info: fix meson 0.60 builds webkitgtk: submit patches upstream webkitgtk: remove unneeded patch spirv-headers: PV should be 1.5.4 ovmf: submit patch upstream weston: submit patch upstream db: mark all patches as non-upstreamable unzip/zip: mark all patches as non-upstreamable automake: update 1.16.3 -> 1.16.5 libunistring: address automake 1.16.5 failures gettext: address automake 1.16.5 failures ccache: upgrade 4.4.2 -> 4.5 python3-hypothesis: upgrade 6.24.2 -> 6.24.3 python3-pyparsing: upgrade 3.0.5 -> 3.0.6 asciidoc: upgrade 10.0.1 -> 10.0.2 libpipeline: upgrade 1.5.3 -> 1.5.4 diffoscope: upgrade 190 -> 192 piglit: upgrade to latest revision systemd: upgrade 249.5 -> 249.6 xwayland: upgrade 21.1.2 -> 21.1.3 librstd-rs: submit patches upstream curl: update 7.79.1 -> 7.80.0 librsvg: update 2.52.3 -> 2.52.4 libsamplerate0: update 0.1.9 -> 0.2.2 patches: correct whitespace/spelling for Upstream-Status tags autoconf: add missing Upstream-Status to patches libxml2: add missing Upstream-Status tag unfs3: add missing Upstream-Status tag kea: add missing Upstream-Status to a patch libnl: add missing Upstream-Status tag rust-hello-world: add missing Upstream-Status to a patch numactl: add missing Upstream-Status to a patch expect: do not install examples, drop related patch slang: mark patch as inappropriate for upstream submission busybox: drop 0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch librsvg: submit system-deps patch upstream groff: include references to corresponding upstream commits in a patch logrotate: add a link to upstream review for one of the patch glib-2.0: submit patch upstream ell: remove unneeded patch apt: drop unneeded chunk from a musl patch, submit the rest upstream diffstat: remove unneeded patch dpkg: replace a patch with a tweak to an already existing sed fixup elfutils: update 0.185 -> 0.186 elfutils: submit patch upstream weston: mark patch as denied gptfdisk: submit patch upstream git: update 2.33.1 -> 2.34.0 cmake: update 3.21.4 -> 3.22.0 systemd: update 249.6 -> 249.7 vulkan: update 1.2.191.0 -> 1.2.198.0 bind: update 9.16.22 -> 9.16.23 python3-packaging: update 21.2 -> 21.3 python3-setuptools: update 58.5.3 -> 59.2.0 libcomps: remove unneeded patch libdnf: submit patches upstream meson: submit patch upstream perl-cross: submit patches upstream perl: submitted patch upstream testimage.bbclass: request the use of kvm by default go-helloworld: update to latest revision go-helloworld: test at runtime python3-rfc3339/3986-validator: correct upstream version check go: update 1.16.10 -> 1.17.3 ovmf: remove patch merged upstream insane.bbclass: add a check that Upstream-Status patch tag is present and correctly formed perl: replace a patch with a config option meson: configure and use generic exe_wrapper perlcross: do not copy ${S}/patches into sysroot python3: mark patch as inappropriate, with better explanation vala: submit patch upstream valgrind: remove unneeded patch lighttpd: remove unneeded (since meson switch) patch stress-ng: submit patch upstream zstd: submit patch upstream sudo: submit patch upstream adwaita-icon-theme: submit patch upstream igt-gpu-tools: correct patch status wayland: drop unnecessary patch xserver-xorg: remove unneeded patch kexec-tools: drop unneeded patch piglit: submit patches upstream systemtap: submit patch upstream ffmpeg: submit patch upstream libfm: submit patches upstream libgcrypt: submit patch upstream libgpg-error: submit patch upstream lttng: submit patches upstream rustfmt: remove the recipe python3-pycryptodome: update to 3.12.0 strace: update 5.14 -> 5.15 cups: update 2.3.3op2 -> 2.4.0 erofs-utils: update 1.3 -> 1.4 rust: update 1.56.1 -> 1.57.0 git: upgrade 2.34.0 -> 2.34.1 go: update 1.17.3 -> 1.17.4 libunwind: update 1.6.0 -> 1.6.2 libseccomp: update 2.5.2 -> 2.5.3 bitbake: fetch2/wget: do not hardcode tarball compressors in version check ruby: update 3.0.2 -> 3.0.3 glib-2.0: upgrade 2.70.1 -> 2.70.2 ell: upgrade 0.45 -> 0.46 ccache: upgrade 4.5 -> 4.5.1 mmc-utils: upgrade to latest revision python3-hypothesis: upgrade 6.24.3 -> 6.30.0 python3-markdown: upgrade 3.3.4 -> 3.3.6 python3-more-itertools: upgrade 8.11.0 -> 8.12.0 python3-pbr: upgrade 5.7.0 -> 5.8.0 python3-ruamel-yaml: upgrade 0.17.16 -> 0.17.17 python3-setuptools: upgrade 59.2.0 -> 59.4.0 freetype: upgrade 2.11.0 -> 2.11.1 harfbuzz: upgrade 3.1.1 -> 3.1.2 vulkan-loader: upgrade 1.2.198.0 -> 1.2.198.1 mesa: upgrade 21.3.0 -> 21.3.1 piglit: upgrade to latest revision webkitgtk: upgrade 2.34.1 -> 2.34.2 diffoscope: upgrade 192 -> 194 enchant2: upgrade 2.3.1 -> 2.3.2 libsoup: upgrade 3.0.2 -> 3.0.3 xxhash: upgrade 0.8.0 -> 0.8.1 kern-tools-native: check tags, not commits for new versions libid3tag: move to meta-oe bitbake: fetch: add a test for version check where compression changes meson: upgrade 0.60.1 -> 0.60.2 sstatetests: add a test for moving oe-core around in the filesystem serf: mark upstream as inactive rust-hello-world: test at runtime btrfs-tools: upgrade 5.15 -> 5.15.1 python3-hypothesis: upgrade 6.30.0 -> 6.31.4 elfutils: update patch submitted upstream python3-setuptools: upgrade 59.4.0 -> 59.5.0 lighttpd: upgrade 1.4.61 -> 1.4.63 vim: do not report upstream version check as broken harfbuzz: upgrade 3.1.2 -> 3.2.0 less: upgrade 590 -> 598 alsa: upgrade 1.2.5 -> 1.2.6 dpkg: update 1.20.9 -> 1.21.1 piglit: upgrade to latest revision go: upgrade 1.17.4 -> 1.17.5 repo: update 2.18 -> 2.19 libptytty: add recipe boost: update 1.77.0 -> 1.78.0 rxvt-unicode: upgrade 9.26 -> 9.30 diffoscope: upgrade 194 -> 196 debianutils: update 4.11.2 -> 5.5 libx11: update 1.7.3 -> 1.7.3.1 libsdl2: update 2.0.16 -> 2.0.18 runqemu: additional setting to force software rendering with sdl 2.0.18 cantarell-fonts: update 0.301 -> 0.303.1 go: log build id computations lib/oe/reproducible: correctly set .git location when recursively looking for git repos go: correctly set debug-prefix-map and build directory go: additional patches to help reproducibility selftest/reproducible: drop go items from exception list virgl: skip headless test on alma 8 ruby: disable rdoc due to non-reproducibility rust-llvm: apply the same reproducibility patch as for llvm proper busybox: update 1.34.1 -> 1.35.0 systemd: update 249.7 -> 250.1 python3-numpy: update 1.21.4 -> 1.22.0 mdadm: update 4.1 -> 4.2 libportal: update 0.4 -> 0.5 epiphany: make libportal optional, and move it to meta-oe librsvg: update 2.52.4 -> 2.52.5 qemuboot/runqemu: fully form the ip= kernel parameter parselogs: add a couple systemd false positives systemd-boot: restore reproducibility connman-conf: do nothing in qemu, do not touch eth0 python3: drop unneeded multiprocessing module patch ruby: update 3.0.3 -> 3.1.0 meson: fold nativesdk into the main recipe meson: update 0.60.3 -> 0.61.1 efivar: update 37 -> 38 libuv: update 1.42.0 -> 1.43.0 resolvconf: update 1.87 -> 1.91 systemd: update 250.1 -> 250.3 python3: update 3.10.1 -> 3.10.2 logrotate: update 3.18.1 -> 3.19.0, drop rotate-across-filesystems patches sqlite: update 3.37.1 -> 3.37.2 rust: update 1.57.0 -> 1.58.0 readline: upgrade 8.1 -> 8.1.2 socat: upgrade 1.7.4.2 -> 1.7.4.3 go: upgrade 1.17.5 -> 1.17.6 shadow: upgrade 4.10 -> 4.11.1 e2fsprogs: upgrade 1.46.4 -> 1.46.5 mtools: upgrade 4.0.36 -> 4.0.37 python3-pygments: upgrade 2.11.1 -> 2.11.2 python3-pyrsistent: upgrade 0.18.0 -> 0.18.1 python3-ruamel-yaml: upgrade 0.17.19 -> 0.17.20 vala: upgrade 0.54.4 -> 0.54.6 pigz: upgrade 2.6 -> 2.7 rpcsvc-proto: upgrade 1.4.2 -> 1.4.3 piglit: upgrade to latest revision libinput: upgrade 1.19.2 -> 1.19.3 xwayland: upgrade 21.1.3 -> 21.1.4 puzzles: upgrade to latest revision webkitgtk: upgrade 2.34.2 -> 2.34.3 diffoscope: upgrade 199 -> 200 libsoup: upgrade 3.0.3 -> 3.0.4 liburcu: upgrade 0.13.0 -> 0.13.1 ffmpeg: upgrade 4.4.1 -> 5.0 p11-kit: update 0.24.0 -> 0.24.1 libunistring: update 0.9.10 -> 1.0 repo: upgrade 2.19 -> 2.20 stress-ng: upgrade 0.13.09 -> 0.13.10 Alexey Brodkin (1): openssl: Use linux-latomic target for ARC Andreas Müller (1): libsdl2: Move to CMake build Andrei Gherzan (2): gcc: Fix compile of gcc plugins gcc: Fix typo in linux64.h install patch Andres Beltran (2): create-spdx: Set the Organization field via a variable create-spdx: Fix key errors in do_create_runtime_spdx Anton Mikanovich (1): bitbake: process: Do not mix stderr with stdout Anuj Mittal (3): glibc-version.inc: remove branch= from GLIBC_GIT_URI releases.rst: move gatesgarth to outdated releases section xserver-xorg: update CVE_PRODUCT Bruce Ashfield (69): linux-yocto/5.14: update to v5.14.15 linux-yocto/5.10: update to v5.10.76 linux-yocto-rt/5.10: update to -rt54 strace: fix build against 5.15 kernel/kernel-headers ppp: fix build against 5.15 headers linux-libc-headers: update to v5.15 linux-yocto/5.15: introduce recipes linux-yocto-rt/5.15: update to -rt17 linux-yocto/5.14: update to v5.14.16 linux-yocto/5.10: update to v5.10.77 linux-yocto/5.14: update to v5.14.17 linux-yocto/5.15: update to v5.15.1 linux-yocto/5.10: update to v5.10.78 kernel: provide virtual/kernel for all kernels linux-yocto/5.15: update to v5.15.2 linux-yocto/5.14: update to v5.14.18 linux-yocto/5.10: update to v5.10.79 kernel-yocto: conditionally enable stack protection checking on x86-64 linux-yocto-dev: bump to v5.16+ kernel: export native PKGCONFIG variables python: introduce python3-dtschema python: import jsonpointer from meta-python python3-jsonpointer: Update 2.1 to 2.2 python: import jsonschema from meta-python python: import idna from meta-python python: import rfc3339-validator from meta-python python: import rfc3986-validator from meta-python python: import webcolors from meta-python python: import ruamel-yaml from meta-python python: import pyrsistent from meta-python python: import rfc3987 from meta-pyton python: import strict-rfc3339 from meta-python python: import vcversioner from meta-python maintainers: update for kernel dtschema checking dependencies linux-yocto: export pkgconfig variables to devshell kernel: introduce python3-dtschema-wrapper linux-yocto-dev: introduce dt-validation PACKAGECONFIG linux-yocto/5.14: update to v5.14.21 linux-yocto/5.15: update to v5.15.5 linux-yocto/5.10: update to v5.10.82 linux-yocto/5.15: update to v5.15.6 linux-yocto-dev: use versioned branch as default linux-yocto-rt/5.10: update to -rt56 kern-tools: bug fixes and kgit-gconfig linux-yocto/5.10: update to v5.10.84 linux-yocto/5.15: update to v5.15.7 linux-yocto/5.15: update to v5.15.8 linux-yocto/5.10: update to v5.10.85 linux-yocto/5.15: update to v5.15.10 linux-yocto/5.10: update to v5.10.87 linux-yocto/5.10: update to v5.10.89 linux-yocto/5.15: update to v5.15.12 linux-yocto/5.14: fix arm 32bit -rt warnings linux-yocto/5.15: fix arm 32bit -rt warnings linux-yocto/5.10/cfg: add kcov feature fragment linux-yocto/5.15/cfg: add kcov feature fragment linux-yocto/5.15: update to v5.15.13 linux-yocto/5.10: update to v5.10.90 conf/machine: bump qemu preferred versions to 5.15 linux-yocto: drop 5.14 recipes yocto-bsp: change default to 5.15 yocto-bsp/5.14: drop recipes poky: set default kernel to 5.15 linux-yocto/5.15: fix arm defconfig warnings lttng-modules: update to 2.13.1 linux-yocto/5.10: amdgpu: updates for CVE-2021-42327 linux-yocto/5.15: update to v5.15.14 linux-yocto/5.10: update to v5.10.91 linux-yocto-rt/5.15: update to -rt22 Chaitanya Vadrevu (1): python3-pyelftools: Depend on debugger, pprint Changhyeok Bae (2): iputils: update 20210722 to 20211215 iproute2: update 5.15.0 to 5.16.0 Changqing Li (3): cmake: upgrade 3.22.0 -> 3.22.1 rpm: fix CVE-2021-3521 pigz: fix one failure of command "unpigz -l" Chen Qi (7): bitbake: tests/fetch.py: fix premirror test cases bitbake: tests/fetch.py: add test case to ensure downloadfilename is used for premirror bitbake: fetch2: fix downloadfilename issue with premirror opkg: use oe.qa.add_message istead of package_qa_add_message avahi: update CVE id fixed by local-ping.patch waffle: add cmake-native to DEPENDS populate_sdk_base: remove unneeded dirs such as /dev Claus Stovgaard (1): cups: Fix missing installation of cups sysv init scripts Daniel Gomez (1): os-release: Add DISTRO_CODENAME as vardeps for do_compile Denys Dmytriyenko (3): wayland-protocols: upgrade 1.23 -> 1.24 wayland: upgrade 1.19.0 -> 1.20.0 mtd-utils: upgrade 2.1.3 -> 2.1.4 Dhruva Gole (2): scripts/checklayer/common.py: Fixed a minor grammatical error yocto-check-layer: Add additional README checks Dmitry Baryshkov (1): go: fix building without SECURITY_LDFLAGS Florian Amstutz (1): systemd: Fix systemd-journal-gateway user/groups He Zhe (1): linux-yocto-dev: Set KBRANCH with = Jacob Kroon (3): native/cross: Add ar wrapper for determinism no-static-libs.inc: Fixes sstate: Preserve permissions when extracting tar archive Jagadeesh Krishnanjanappa (1): tune-cortexa72: remove crypto for the default cortex-a72 Jasper Orschulko (4): repo: Add recipe for 2.17.3 base.bbclass: Add sysroot deps for repo fetcher repo: Use separate task for patching repo rev repo: upgrade 2.17.3 -> 2.18 Jim Wilson (1): gdb-common: Add --with-liblzma-prefix in xz PACKAGECONFIG. Joel Winarske (1): mesa: Add PACKAGECONFIG option for broadcom v3d Vulkan driver Jon Mason (3): runqemu: work without SERIAL_CONSOLES being defined scripts/lib/wic/help.py: Update Fedora Kickstart URLs yocto-check-layer: disregard checks if referencing another README file Jose Quaresma (11): sstate: another fix for touching files inside pseudo bitbake: cooker: check if upstream hash equivalence server is available spirv-headers: upgrade 1.5.4 -> 1.5.5 spirv-headers: bump to last master spirv-tools: upgrade 2021.3 -> 2021.4 glslang: upgrade 11.6.0 -> 11.7.0 shaderc: upgrade 2021.2 -> 2021.3 sstate: cleanup the sstate mirror progress check sstate: only search on the mirrors for the missing files sstate: add a function to get the sstate file name in sstate_checkhashes glslang: upgrade 11.7.0 -> 11.7.1 Joshua Watt (7): classes/meson: Add optional rust definitions classes/crate-fetch: Ensure crate fetcher is available yocto-check-layer: Relax README case checks webkitgtk: Add packageconfig for libsoup2 epiphany: Add packageconfig for libsoup2 selftest: reproducible: Set maximum report size classes/native: Propagate dependencies to outhash Justin Bronder (1): bitbake: fetch2/wget: add redirectauth parameter Kai Kang (7): squashfs-tools: fix CVE-2021-41072 squashfs-tools: follow-up fix for CVE-2021-41072 convert-srcuri.py: use regex to check space in SRC_URI packagegroup-core-tools-testapps: clear GOTOOLS for riscv32 xserver-xorg: 21.1.2 -> 21.1.3 multilib.bbclass: set rpm file color for 32-bit multilib image speex: fix CVE-2020-23903 Kamil Dziezyk (1): grub-efi: Add xen_boot support when 'xen' is in DISTRO_FEATURES for aarch64 Kevin Hao (6): meta-yocto-bsp: Introduce the v5.15 bbappend tune-cortexa72: Enable the crc extension by default for cortexa72 arch-armv8-5a.inc: Add tune include for armv8.5a armv9a/tune: Add the support for the Neoverse N2 core tune-cortexa72: Drop the redundant cortexa72-crc tune tune-cortexa73: Introduce cortexa73-crypto tune Khairul Rohaizzat Jamaluddin (1): epiphany: update 41.0 -> 41.3 Khem Raj (37): wpebackend-fdo: Add -Wno-c++11-narrowing musl: Update to tip of trunk site/common-musl: Enable qsort_r in glib libsolv: Enable correct qsort_r on musl kernel-devsrc: Add vdso.lds and other build files for riscv64 as well gdb: Upgrade to 11.1 gdb: Add dependency on libgmp librsvg: Disable 64bit atomics on riscv32/mipsel in crossbeam qemu: Build on musl targets qemu: Fix build on aarch64/musl wic: Use os.rename instead of bb.utils.rename qemu: Exclude building on riscv32 ptest-packagelists: Remove qemu ptests for rv32 gobject-introspection: Add -Dintrospection only when GIR_MESON_OPTION is not empty gstreamer1.0-python: Improve introspection option handling python3-pygobject: Improve introspection handling vulkan-samples: Fix cmake errors about plain signature vulkan-samples: Enable for architectures where it builds glibc-tests: Do not set SYSTEMD_SERVICE image: Include psplash only when screen machine feature is enabled weston-init: Pass --continue-without-input when launching weston Revert "weston-init: Pass --continue-without-input when launching weston" boost: Fix build on arches with no atomics glibc: Drop patch to support/workaround prelinked apps on armv5 libunwind: Enable for rv64 perf: Enable libunwind packageconfig on riscv64 glibc: Drop ppc sqrt optimisations ffmpeg: Fix build on ppc32 mesa: Fix build on ARM systems without Neon gdb: Drop sh4 support patch binutils: Drop patch to wider sh regexp mesa: Fix broadcom vulkan driver build on 32bit arches with 64bit time_t mesa: Define broadcom packageconfig knob glibc: Redo tzselect bash dependency problem gcc: Update status of musl stddef.h patch libsdl2: Fix build when libunwind is not used valgrind: Avoid accessing network in ptest task Konrad Weihmann (3): insane: add Inactive-Upstream to Upstream-Status insane: move src-uri-bad checks to unpack stage cve-check: add lockfile to task Leif Middelschulte (1): meson: improve SDK's wrapper to make Wraps work Li Wang (1): libtool: change the default AR_FLAGS from "cru" to "cr" Lukasz Majewski (1): glibc: ptest: Add running glibc time related test suite (Y2038) with ptest Manuel Leonhardt (2): sstate: Account for reserved characters when shortening sstate filenames dpkg: Install dkpg-perl scripts to versioned perl directory Marek Vasut (2): bootchart2: Add missing python3-math dependency u-boot: upgrade 2021.10 -> 2022.01 Markus Volk (2): libva: move PACKAGECONFIG options to libva.inc vulkan-loader: inherit pkgconfig Martin Jansa (1): gdb-cross: add dependency on gmp-native Matt Madison (2): qemu.bbclass: drop OLDEST_KERNEL reference qemu: add patch to set minimum kernel version for riscv32 Matthias Klein (1): gdb: fix aarch64 remote debugging gdb/28355 Max Krummenacher (4): perf: sort-pmuevents: don't drop elements perf: sort-pmuevents: allow for additional type qualifiers and storage class ref-manual: fix patch documentation libsdl2: fix build if egl.pc sets macros in cflags Michael Halstead (3): releases: update to include 3.3.4 releases: update to include 3.4.1 releases: update to include 3.1.13 Michael Opdenacker (35): manuals: correct "take affect" by "take effect" manuals: start of documentation standards document bitbake: doc: bitbake-user-manual: expand SRC_URI description ref-manual: remove reference to TOPDIR ref-manual: BBFILES_DYNAMIC - fix punctuation and quoting issues ref-manual: simplify SRC_URI reference documentation: prepare for 3.1.12 release bitbake: bitbake-user-manual: quoting fixes bitbake: bitbake-user-manual: fix typo bitbake: bitbake-user-manual: add missing reference bitbake: bitbake-user-manual: fix backslash issues bitbake: bitbake-user-manual: SRC_URI: mention gitsm fetcher ref-manual: drop support for Ubuntu 16.04 ref-manual: drop support for Fedora 30-32 dev-manual: remove warning about += and :append manuals: add hyperlinks to files in meta-skeleton dev-manual: how to purge duplicate sstate cache files migration-guides: add more class references ref-manual: add more class references misc manuals: add further class references ref-manual: remove newline string in PREMIRRORS bitbake: doc: bitbake-user-manual: expand BB_HASHSERVE and document BB_HASHSERVE_UPSTREAM documentation: add comment to releases.rst switchers.js overview-manual: fix typo manuals: replace "rootfs" by "root filesystem" quick start manual: update Share State and Hash Equivalence settings documentation/README: trivial typo fix manuals: document hash equivalence dev-manual: update bitbake.conf sample for static libs manuals: add reference to GIR_EXTRA_LIBS_PATH plus minor improvements migration-guides: prepare for release 3.5 manuals: simplify references to class sections ref-manual: Drop TUNEABI, TUNEABI_WHITELIST, TUNEABI_OVERRIDE dev-manual: stop mentioning nightly builds bitbake: doc: bitbake-user-manual: expand BB_HASHSERVE explanations Mike Crowe (3): kernel: improve transformation from KERNEL_IMAGETYPE_FOR_MAKE package: Only snap libraries if they would be processed by ldconfig OS-12840 documentation: Document PACKAGE_SNAP_LIB_SYMLINKS Mingli Yu (4): wic: use shutil.which libpam: Backport ptest fix checking whether files exist libhandy: Backport a makefile header race bootchart2: remove wait_boot logic Oleksandr Kravchuk (5): libxcvt: add recipe python3: udpate to 3.10.1 libx11: update to 1.7.3 xserver-xorg: update to 21.1.2 ofono: update to 1.34 Oleksiy Obitotskyy (1): package_manager: ipk: Fix host manifest generation Otavio Salvador (20): acpica: upgrade 20210930 -> 20211217 asciidoc: upgrade 10.0.2 -> 10.1.1 alsa-ucm-conf: upgrade 1.2.6.2 -> 1.2.6.3 bind: upgrade 9.16.23 -> 9.16.24 kea: upgrade 2.0.0 -> 2.0.1 meson: upgrade 0.60.2 -> 0.60.3 mmc-utils: upgrade to latest revision python3-attrs: upgrade 21.2.0 -> 21.4.0 python3-cython: upgrade 0.29.25 -> 0.29.26 python3-hypothesis: upgrade 6.31.4 -> 6.34.1 python3-importlib-metadata: upgrade 4.9.0 -> 4.10.0 python3-pygments: upgrade 2.10.0 -> 2.11.1 python3-ruamel-yaml: upgrade 0.17.17 -> 0.17.19 python3-tomli: upgrade 1.2.2 -> 2.0.0 python3-zipp: upgrade 3.6.0 -> 3.7.0 sqlite3: upgrade 3.37.0 -> 3.37.1 stress-ng: upgrade 0.13.08 -> 0.13.09 python3-dtschema: upgrade 2021.10 -> 2021.12 mesa: 21.3.1 -> 21.3.3 libxcrypt, libxcrypt-compat: upgrade 4.4.26 -> 4.4.27 Paul Eggleton (4): classes/kernel*: allow disabling symlink creation classes/qemuboot: allow IMAGE_LINK_NAME to be empty classes/kernel*: add variables to allow changing artifact extension classes/create-spdx: handle if IMAGE_LINK_NAME is empty Pavel Zhukov (2): go: upgrade 1.16.8 -> 1.16.10 patch.py: Initialize git repo before patching Peter Kjellerstedt (22): systemd: Do not install anything in /var/volatile base-files: Ignore the empty-dirs QA error due to files in /var/volatile apt: Do not install /var/log/apt for target insane.bbclass: Add a check for directories that are expected to be empty libx11: Update LICENSE to better reflect reality libx11-compose-data: Update LICENSE to better reflect reality ncurses.inc: Remove a no longer relevant comment systemd: Revert inappropriate use of ${systemd_system_unitdir} systemd-conf: Revert inappropriate use of ${systemd_system_unitdir} systemd-bootchart: Revert inappropriate use of ${systemd_system_unitdir} mirrors.bbclass: Clean up the additions to MIRRORS own-mirrors.bbclass: Clean up the additions to PREMIRRORS gcc-common.inc: Clean up the additions to MIRRORS slang: Clean up the additions to PREMIRRORS testsdk.py: Clean up the additions to PREMIRRORS and SSTATE_MIRRORS gcc-common.inc: Remove mirrors that are no longer available tzdata: Make it compatible with devtool modify tzdata: Remove unnecessary RPROVIDES tzdata: Clean up tzdata: Remove no longer relevant RCONFLICTS:${PN} rootfs-postcommands.bbclass: Make two comments use the new variable syntax systemd: Avoid a Python deprecation warning Pgowda (2): gcc: Fix CVE-2021-35465 rust-cross: Replace TARGET_ARCH with TUNE_PKGARCH Quentin Schulz (10): README.OE-Core.md: update URLs ptest-packagelists: Add missing python3-webcolors entry make the documentation a bit more inclusive docs: dev-manual: common-tasks: highlight creating your own layer is not required documentation: conf.py: add knob for loading appropriate objects.inv kmscube: fix build on OpenGL ES 3 dependencies not providing GLES3/gl3ext.h mesa: PROVIDES virtual/libgles3 kmscube: add build dependency on virtual/libgles3 mesa: make ligles3-dev RDEPENDS on libgles2-dev bitbake: doc: bitbake-user-manual: specify the URL to be used with SSH over git is different from `git clone`'s Randy MacLeod (5): valgrind: Add util-linux-taskset ptest dependency valgrind: backport rseq work-around valgrind: remove duplicate and skipped tests from remove-for-aarch64 valgrind: skip boost_thread for aarch64 ptests valgrind: make run-ptest better Richard Purdie (133): meta: Add explict branch to git SRC_URIs meta/scripts: Manual git url branch additions linunistring: Add missing gperf-native dependency archiver: Default to xz compresison instead of gz gcc: Drop libgfortran patch pseudo: Add fcntl64 wrapper libgfortran: Set GFORTRAN bitbake: fetch2/git: Allow git fetcher to support subdir param bitbake: fetch2/git: Add a warning asking users to set a branch in git urls bitbake: tests/fetch: Update github urls bitbake: fetch/git: Handle github dropping git:// support bitbake: fetch/git: Show warning for invalid github urls bitbake: lib/bb: Clean up use of len() bitbake: daemonize: Avoid unclosed file warning bitbake: lib/bb: Fix string concatination potential performance issues bitbake: fetch: Handle mirror user/password replacements correctly bitbake: tests/fetch: Add test for url parameter rewriting bitbake.conf: Fix corruption of GNOME mirror url scripts/convert-srcuri: Update SRC_URI conversion script to handle github url changes recipes: Update github.com urls to use https go-helloworld/glide: Fix urls opkg: Fix poor operator combination choice bitbake: runqueue: Fix runall option task deletion ordering issue bitbake: tests/fetch: Update pcre.org address after github changes bitbake: cooker: Handle parse threads disappearing to avoid hangs bitbake: fetch2/checksum/siggen: Fix taskhashes not tracking file directories bitbake: runqueue: Fix runall option handling bitbake: cooker: Remove debug code, oops :( bitbake: parse/ast: Show warnings for append/prepend/remove operators combined with +=/.= bitbake: fetch/wget: Add timeout for checkstatus calls (30s) bitbake: cooker: Handle parsing results queue race mirrors: Add uninative mirror on kernel.org scripts/oe-package-browser: Fix after overrides change scripts/oe-package-browser: Handle no packages being built xserver-xorg: Remove orphaned comment bitbake: fetch: Add README on fetcher design constraints wpa-supplicant: Match package override to PACKAGES for pkg_postinst uninative: Add version to uninative tarball name packagegroup-core-buildessential: Mark as TUNE_PKGARCH specific packagegroups-core-full-cmdline: Drop libraries packagegroup and gmp packagegroup-core-full-cmdline: Drop compatibility mappings packagegroup-core-x11-base: Drop dbus dependency mirrors: Add kernel.org sources mirror for downloads.yoctoproject.org bitbake: cooker: Fix task-depends.dot for multiconfig targets bitbake: tests/runqueue: Set TOPDIR in test bitbake: cookerdata: Set TOPDIR explicitly and fix broken findTopdir() bitbake: cache/ConfHandler: Drop TOPDIR/chdir manipulations package: Add sanity check for allarch packagegroups gcc: Dropping mips workaround lua: Backport fix for CVE-2021-43396 glibc: Backport fix for CVE-2021-43396 gcc: Tweak Upstream-Status formatting bitbake: utils: Handle lockfile filenames that are too long for filesystems bitbake: fetch2: Fix url remap issue and add testcase bitbake: bitbake-user-manual: Remove newline string in MIRRORS/PREMIRRORS buildhistory: Drop support for older bitbakes buildhistory: Fix srcrevs output ptest-packagelists: Handle glibc vs musl for ptest buildhistory: Fix do_package race issues bitbake.conf: Pass -D option to ranlib for determisim glibc: Fix i586/c3 support gcc: Drop no longer needed patch ptest-packagelists: Add missing python3-jsonpointer entry python3: Add missing HOMEPAGE entries nativesdk: Handle chown/chgrp calls in nativesdk do_install tasks gcc: Drop mips default ABI patch gcc: Drop further unneeded precompiled header patch oeqa/utils/dump: Fix typo oeqa/parselogs: Fix quoting sanity/lib: Replace usage of LooseVersion() with bb.utils.vercmp_string_op() patchelf: Upgrade 0.14.1 -> 0.14.2 debian: Fix renaming packagedata dependencies gst-plugins-bad: Add missing libxkbcommon vulkan dependency gcc: Update patch status submitted->backport minicom: Mark patches as backports minicom: Upgrade 2.7.1 -> 2.8 glibc: Drop patch for obsolete conflict issue gst-plugins-bad: Bump cache versions to avoid libxkbcommon sstate issues puzzles: Refresh patches based upon upstream discussion gcc: Add CVE-2021-37322 to the list of CVEs to ignore bitbake: siggen: Ensure dumpsig output is deterministic build-appliance-image: Update to master head revision binutils: Drop mips gold patch binutils: Add more detail to the ppc patch binutils: Drop mips default target patch perf: Tweak for mips n64 binutils: Drop mips XLP support patch puzzles: Upgrade to latest git with patches merged lttng-ust: upgrade 2.13.0 -> 2.13.1 patchelf: upgrade 0.14.2 -> 0.14.3 lttng-tools: Backport ptest fix lttng-tools: Disable problem tests bitbake: tests/runqueue: Improve lockfile handling race python3-idna: Update license to Unicode-TOU bitbake: tests/fetch: Drop gnu urls from wget connectivity test manpages: Fix override/append ordering and hence task signatures qemu: Upgrade 6.1.0 -> 6.2.0 lttng-tools: Upgrade 2.13.1 -> 2.13.2 oeqa/selftest/bbtests: Use YP sources mirror instead of GNU qemu: Add selinux PACKAGECONFIG package_deb/ipk/rpm: Add more minimal do_build dependencies back meson: Handle qemu riscv issues openssl: Add reproducibility fix webkitgtk: Add reproducibility fix scripts: Update to use exec_module() instead of load_module() bitbake: utils: Update to use exec_module() instead of load_module() gtk-doc/meson: Fix typos libsdl2: Fix X11 configure options Revert "qemu.bbclass: drop OLDEST_KERNEL reference" allarch: Fix interaction with qemu class expat: Update HOMEPAGE to current url wayland-protocols: Change inherit order sstatetests: Add OLDEST_KERNEL to allarch tests oeqa/sstate: Fix allarch samesigs test buildtools-installer: Update to use 3.4 bitbake: utils: Add disable_network function bitbake: bitbake-worker: Add/support network task flag bitbake: runqueue: Drop BB_STAMP_POLICY/BB_STAMP_WHITELIST classes: Only allow network in existing network accessing code sanity: Drop TUNEABI, TUNEABI_WHITELIST, TUNEABI_OVERRIDE expat: Upgrade 2.4.2 -> 2.4.3 expat: Drop unneeded libtool patch, we use cmake bitbake: doc: Drop BB_STAMP_POLICY/BB_STAMP_WHITELIST expat: Simplify ptest-runner build-appliance-image: Update to master head revision bitbake: build: Tweak exception handling for setscene tasks bitbake: fetch2: Add crate fetcher sstate: Show better exception information for failures sstate: Improve failure to obtain archive message/handling abi_version: Bump HASHEQUIV_HASH_VERSION crate-fetch: Switch to version contained in bitbake build-appliance-image: Update to master head revision build-appliance-image: Update to master head revision Robert Joslyn (4): ref-manual: Fix module_conf typo curl: Update to 7.81.0 curl: Rework openssl and random PACKAGECONFIGs maintainers.inc: Add myself as maintainer for curl Robert P. J. Day (1): ref-manual: generalize definition of "container layer" Robert Yang (3): sanity.bbclass: Update required gcc version to v7.5 bitbake: lib/pyinotify.py: Remove deprecated module asyncore bitbake: data_smart.py: Skip old override syntax checking for anonymous functions Ross Burton (61): openssl: fix builds on ARMv8 targets without Aarch64 python3: silence DeprecationWarnings in python3-config meson: set objcopy in the cross and native toolchain files ref-manual: improve documentation for SDKMACHINE kickstart: update busybox note regarding PARTUUID scons: support out-of-tree builds vim: fix CVE-2021-3796, CVE-2021-3872, and CVE-2021-3875 vim: add patch number to CVE-2021-3778 patch meta: use ln -rs instead of lnr insane: remove unrecognised option check for Meson dtc: merge .bb/.inc dtc: use Meson to build dtc: add PACKAGECONFIGs for tools and yaml dtc: fix mingw build ncurses: poll() works, but only on Linux vim: fix CVE-2021-3927 and CVE-2021-3928 scripts/lnr: remove gmp: fix CVE-2021-43618 oe/utils: allow naming threads in ThreadedPool sstate: explicitly name the checkhashes thread pool oe/utils: by default cap cpu_count() to 64 cores vim: fix CVE-2021-3968 and CVE-2021-3973 vim: set PACKAGECONFIG idiomatically openssl: fix EVP_PKEY_CTX_get_rsa_pss_saltlen() not returning a value recipetool: handle GitLab URLs like we do GitHub recipetool: extend curl detection when creating recipes glew: update patch status libx11: update patch status libxkbcommon: remove obsolete util-macros dependency libxkbcommon: allow building of API documentation xkbcommon: split xkbcli into a separate package libxkbcommon: split libraries into separate packages xkbcommon: add option for xkbregistry tcf-agent: cleanup patches vim: upgrade to 8.2 patch 3752 runqemu: check the qemu PID has been set before kill()ing it gstreamer1.0-plugins-bad: clean up X11 dependencies libtool: don't prefix the installed binary binutils: don't expect libtool to be host-prefixed pkgconfig: remove obsolete support for renamed libtool gtk+3: remove obsolete support for renamed libtool db: remove obsolete support for renamed libtool freetype: remove obsolete support for renamed libtool apr: remove obsolete support for renamed libtool qemu: remove obsolete support for renamed libtool subversion: remove obsolete support for renamed libtool apmd: remove obsolete support for renamed libtool libical: upgrade to 3.0.12 python3: backport a fix so the test suite passes with OpenSSL 3.0.1 openssl: upgrade to 3.0.1 kmod: remove obsolete ac_pwd manipulation kmod: merge target/native recipes kmod: expand compression PACKAGECONFIGs gawk: remove load-sensitive tests linux-yocto: add libmpc-native to DEPENDS xserver-xorg: whitelist two CVEs systemtap: fix vsprintf errors oeqa/runtime/stap: rewrite test vim: update to include latest CVE fixes lighttpd: backport a fix for CVE-2022-22707 oeqa/runtime/stap: increase buffer size S. Lockwood-Childs (1): cups: fix typo in flags to disable avahi Samuli Piippo (1): rpm: remove tmp folder created during install Saul Wold (7): create_spdx: ensure is_work_shared() is unique create-spdx: Protect against None from LICENSE_PATH kernel: add -dbg package perl: Enable threading kernel.bbclass: use common strip() package: Add support for kernel stripping create-spdx: Add kernel work-shared source Schmidt, Adriaan (1): wic: support rootdev identified by partition label Stefan Herbrechtsmeier (17): bitbake: fetch2: npmsw: Add support for duplicate dependencies without url bitbake: fetch2: npmsw: Add support for github prefix in npm shrinkwrap version bitbake: fetch2: Unify tar command in unpack bitbake: fetch2: Add striplevel support to unpack bitbake: bitbake-user-manual: Add striplevel unpack parameter bitbake: test/fetch: Add striplevel unpack parameter test recipetool: Set master branch only as fallback selftest/devtool: Check branch in git fetch selftest/recipetool: Split tests into separate test classes selftest: devtool: Separate common functions and devtool sstate setup into two classes selftest/recipetool: Add tests for branch parameter and srcbranch option bitbake: fetch: npm: Quote destdir in run chmod command bitbake: fetch: npm: Use temporary file for empty user config recipetool: Sort output of guess_license function to be deterministic recipetool: Separate licenses with & operator selftest: recipetool: Add test for split_pkg_licenses function selftest: recipetool: Add test for handle_license_vars function Steve Sakoman (4): ref-system-requirements.rst: Add Debian 11 to list of supported distros ref-system-requirements.rst: Add Fedora 33 and 34 to list of supported distros ref-system-requirements.rst: Add openSUSE Leap 15.2 to list of supported distros cve-extra-exclusions: add db CVEs to exclusion list Sundeep KOKKONDA (2): glibc : Fix CVE-2022-23218 glibc : Fix CVE-2022-23219 Teoh Jay Shen (2): linux-yocto/5.10: update genericx86* machines to v5.10.87 linux-yocto/5.14: update genericx86* machines to v5.14.21 Thomas Perrot (1): uboot-sign: fix the concatenation when multiple U-BOOT configurations are specified Tim Orling (29): scripts/buildhistory-diff: drop use of distutils maintainers.inc: update email address poky.yaml: centos-7 python36-pip -> python3-pip classes/distutils-*: add warning of deprecation setuptools3: refactor for no distutils bbclasses dnf: inherit setuptools3-base instead of distutils libdnf: inherit setuptools3-base not distutils python3-cython: DISTUTILS_* -> SETUPTOOLS_* python3-dbus: inherit setuptools3-base not distuils gpgme: inherit setuptools-base not distuils python3-pip: inherit setuptools3 not distuils3 systemtap: use setuptools-base not distutils libcomps: inherit setuptools3-base not distutils createrepo-c: inherit setuptools3-base not distutils librepo: inherit setuptools3-base not distutils btrfs-tools: use setuptools3-base not distutils bind: inherit setuptools3-base instead of distutils python3-pygobject: setuptools instead of distuils python3-setuptools: do not depend on distutils gstreamer1.0-python: inherit setuptools3-base recipetool/create_buildsys_python.py: less distutils waf.bbclass: drop usage of distutils dnf: drop python3-distutils dependency python3native.bbclass: distutils -> sysconfig rootfs_rpm.bbclass: distutils -> sysconfig module python3-hypothesis: upgrade 6.34.1 -> 6.35.0 ref-manual/variables.rst: add SETUPTOOLS_SETUP_PATH ref-manual/variables.rst: add SETUPTOOLS_*_ARGS ref-manual/classes.rst: add setuptools3-base Tom Hochstein (3): wayland: Fix wayland-tools packaging nativesdk-packagegroup-sdk-host.bb: Update host tools for wayland bitbake.conf: Use wayland distro feature for native builds Ulrich Ölmann (1): gstreamer1.0-plugins-base: add support for graphene Valerii Chernous (1): elf: Discard input .note.gnu.build-id sections Vivien Didelot (2): beaglebone-yocto: prefer u-boot beaglebone-yocto: move kernel and dtb to packagegroup-core-boot Vyacheslav Yurkov (17): overlayfs: all overlays unit oeqa/selftest: refactor common functions overlayfs: meta-selftest recipe fix oeqa/selftest: extend overlayfs test overlayfs: add debug information ref-manual: update overlayfs class rootfs-postcommands: update systemd_create_users files: add overlayfs-etc-preinit.sh.in wic: image for overlayfs-etc tests overlayfs-etc: mount etc as overlayfs image: add overlayfs-etc image feature oeqa/selftest: overlayfs helper function oeqa/selftest: unit tests for overlayfs-etc overlayfs: update notes on /etc overlayfs: move templates to files directory ref-manual: add overlayfs-etc class ref-manual: document overlayfs-etc image feature Yi Zhao (6): bind: remove -r option from rndc-confgen in initscript rpcbind: install rpcbind.conf python3-numpy: move recipe to python directory python3-numpy: add python3-json to RDEPENDS oeqa: fix warnings for append operators combined with += meta-skeleton: fix warnings for append operators combined with += Yongxin Liu (1): grub2: fix CVE-2021-3981 Zev Weiss (1): u-boot: Split do_configure logic into separate file pgowda (2): gcc: Fix CVE-2021-42574 binutils: CVE-2021-42574 wangmy (67): bind: upgrade 9.16.21 -> 9.16.22 glib-2.0: upgrade 2.70.0 -> 2.70.1 python3-dbusmock: upgrade 0.24.0 -> 0.24.1 python3-docutils: upgrade 0.17.1 -> 0.18 btrfs-tools: upgrade 5.14.2 -> 5.15 diffoscope: upgrade 189 -> 190 ell: upgrade 0.44 -> 0.45 harfbuzz: upgrade 3.0.0 -> 3.1.1 iproute2: upgrade 5.14.0 -> 5.15.0 iso-codes: upgrade 4.7.0 -> 4.8.0 iw: upgrade 5.9 -> 5.16 libpcre2: upgrade 10.37 -> 10.39 msmtp: upgrade 1.8.18 -> 1.8.19 libevdev: upgrade 1.11.0 -> 1.12.0 libdrm: upgrade 2.4.107 -> 2.4.108 libhandy: upgrade 1.4.0 -> 1.5.0 python3-importlib-metadata: upgrade 4.8.1 -> 4.8.2 python3-jinja2: upgrade 3.0.2 -> 3.0.3 python3-more-itertools: upgrade 8.10.0 -> 8.11.0 libtasn1: upgrade 4.17.0 -> 4.18.0 ethtool: upgrade 5.14 -> 5.15 stress-ng: upgrade 0.13.06 -> 0.13.07 systemtap: upgrade 4.5 -> 4.6 python3-scons: upgrade 4.2.0 -> 4.3.0 libcap: upgrade 2.60 -> 2.61 mesa: upgrade 21.2.5 -> 21.3.0 python3-mako: upgrade 1.1.5 -> 1.1.6 libjpeg-turbo: upgrade 2.1.1 -> 2.1.2 libdrm: upgrade 2.4.108 -> 2.4.109 libsoup-2.4: upgrade 2.74.1 -> 2.74.2 libunwind: upgrade 1.5.0 -> 1.6.0 libexif: upgrade 0.6.23 -> 0.6.24 mtools: upgrade 4.0.35 -> 4.0.36 patchelf: upgrade 0.13 -> 0.14.1 sqlite3: upgrade 3.36.0 -> 3.37.0 sysklogd: upgrade 2.2.3 -> 2.3.0 ovmf: upgrade 202108 -> 202111 python3-docutils: upgrade 0.18 -> 0.18.1 python3-libarchive-c: upgrade 3.1 -> 3.2 sysstat: upgrade 12.4.3 -> 12.4.4 vala: upgrade 0.54.3 -> 0.54.4 xauth: upgrade 1.1 -> 1.1.1 mpg123: upgrade 1.29.2 -> 1.29.3 python3-cython: upgrade 0.29.24 -> 0.29.25 libcap: upgrade 2.61 -> 2.62 linux-firmware: upgrade 20211027 -> 20211216 python3-importlib-metadata: upgrade 4.8.2 -> 4.9.0 sysvinit: upgrade 3.00 -> 3.01 python3-dbusmock: upgrade 0.24.1 -> 0.25.0 python3-numpy: upgrade 1.21.4 -> 1.21.5 expat: upgrade 2.4.1 -> 2.4.2 gnupg: upgrade 2.3.3 -> 2.3.4 ell: upgrade 0.46 -> 0.47 bash: upgrade 5.1.8 -> 5.1.16 createrepo-c: upgrade 0.17.7 -> 0.18.0 bluez5: upgrade 5.62 -> 5.63 iso-codes: upgrade 4.8.0 -> 4.9.0 less: upgrade 598 -> 600 libpipeline: upgrade 1.5.4 -> 1.5.5 diffoscope: upgrade 196 -> 199 libsdl2: upgrade 2.0.18 -> 2.0.20 hdparm: upgrade 9.62 -> 9.63 mesa: upgrade 21.3.3 -> 21.3.4 python3-git: upgrade 3.1.24 -> 3.1.26 python3-numpy: upgrade 1.22.0 -> 1.22.1 strace: upgrade 5.15 -> 5.16 btrfs-tools: upgrade 5.15.1 -> 5.16 zhengruoqin (9): opkg-utils: upgrade 0.4.5 -> 0.5.0 opkg: upgrade 0.4.5 -> 0.5.0 glib-networking: upgrade 2.70.0 -> 2.70.1 stress-ng: upgrade 0.13.07 -> 0.13.08 vte: upgrade 0.66.0 -> 0.66.2 rt-tests: upgrade 2.2 -> 2.3 shadow: upgrade 4.9 -> 4.10 libmicrohttpd: upgrade 0.9.73 -> 0.9.75 gtk+3: upgrade 3.24.30 -> 3.24.31 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I11c88e9f9999d629de5a0ecdb44ccc1003b02376
Diffstat (limited to 'poky/bitbake/lib/bb')
-rw-r--r--poky/bitbake/lib/bb/build.py14
-rw-r--r--poky/bitbake/lib/bb/cache.py29
-rw-r--r--poky/bitbake/lib/bb/checksum.py12
-rw-r--r--poky/bitbake/lib/bb/cooker.py36
-rw-r--r--poky/bitbake/lib/bb/cookerdata.py14
-rw-r--r--poky/bitbake/lib/bb/daemonize.py42
-rw-r--r--poky/bitbake/lib/bb/data.py24
-rw-r--r--poky/bitbake/lib/bb/data_smart.py8
-rw-r--r--poky/bitbake/lib/bb/fetch2/README57
-rw-r--r--poky/bitbake/lib/bb/fetch2/__init__.py55
-rw-r--r--poky/bitbake/lib/bb/fetch2/crate.py137
-rw-r--r--poky/bitbake/lib/bb/fetch2/git.py37
-rw-r--r--poky/bitbake/lib/bb/fetch2/gitsm.py2
-rw-r--r--poky/bitbake/lib/bb/fetch2/npm.py2
-rw-r--r--poky/bitbake/lib/bb/fetch2/npmsw.py8
-rw-r--r--poky/bitbake/lib/bb/fetch2/wget.py16
-rw-r--r--poky/bitbake/lib/bb/parse/ast.py4
-rw-r--r--poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py5
-rw-r--r--poky/bitbake/lib/bb/process.py2
-rw-r--r--poky/bitbake/lib/bb/runqueue.py160
-rw-r--r--poky/bitbake/lib/bb/server/process.py6
-rw-r--r--poky/bitbake/lib/bb/siggen.py27
-rw-r--r--poky/bitbake/lib/bb/taskdata.py4
-rw-r--r--poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/m/minicom/index.html59
-rw-r--r--poky/bitbake/lib/bb/tests/fetch.py113
-rw-r--r--poky/bitbake/lib/bb/tests/runqueue.py43
-rw-r--r--poky/bitbake/lib/bb/ui/buildinfohelper.py36
-rw-r--r--poky/bitbake/lib/bb/ui/uievent.py4
-rw-r--r--poky/bitbake/lib/bb/utils.py44
29 files changed, 724 insertions, 276 deletions
diff --git a/poky/bitbake/lib/bb/build.py b/poky/bitbake/lib/bb/build.py
index d6418e40b3..65b7fc000d 100644
--- a/poky/bitbake/lib/bb/build.py
+++ b/poky/bitbake/lib/bb/build.py
@@ -714,19 +714,23 @@ def _exec_task(fn, task, d, quieterr):
logger.debug2("Zero size logfn %s, removing", logfn)
bb.utils.remove(logfn)
bb.utils.remove(loglink)
- except bb.BBHandledException:
- event.fire(TaskFailed(task, fn, logfn, localdata, True), localdata)
- return 1
except (Exception, SystemExit) as exc:
+ handled = False
+ if isinstance(exc, bb.BBHandledException):
+ handled = True
+
if quieterr:
+ if not handled:
+ logger.warning(repr(exc))
event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
else:
errprinted = errchk.triggered
# If the output is already on stdout, we've printed the information in the
# logs once already so don't duplicate
- if verboseStdoutLogging:
+ if verboseStdoutLogging or handled:
errprinted = True
- logger.error(repr(exc))
+ if not handled:
+ logger.error(repr(exc))
event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
return 1
diff --git a/poky/bitbake/lib/bb/cache.py b/poky/bitbake/lib/bb/cache.py
index 4e08c100ab..fcb15796cc 100644
--- a/poky/bitbake/lib/bb/cache.py
+++ b/poky/bitbake/lib/bb/cache.py
@@ -284,36 +284,15 @@ def parse_recipe(bb_data, bbfile, appends, mc=''):
Parse a recipe
"""
- chdir_back = False
-
bb_data.setVar("__BBMULTICONFIG", mc)
- # expand tmpdir to include this topdir
- bb_data.setVar('TMPDIR', bb_data.getVar('TMPDIR') or "")
bbfile_loc = os.path.abspath(os.path.dirname(bbfile))
- oldpath = os.path.abspath(os.getcwd())
bb.parse.cached_mtime_noerror(bbfile_loc)
- # The ConfHandler first looks if there is a TOPDIR and if not
- # then it would call getcwd().
- # Previously, we chdir()ed to bbfile_loc, called the handler
- # and finally chdir()ed back, a couple of thousand times. We now
- # just fill in TOPDIR to point to bbfile_loc if there is no TOPDIR yet.
- if not bb_data.getVar('TOPDIR', False):
- chdir_back = True
- bb_data.setVar('TOPDIR', bbfile_loc)
- try:
- if appends:
- bb_data.setVar('__BBAPPEND', " ".join(appends))
- bb_data = bb.parse.handle(bbfile, bb_data)
- if chdir_back:
- os.chdir(oldpath)
- return bb_data
- except:
- if chdir_back:
- os.chdir(oldpath)
- raise
-
+ if appends:
+ bb_data.setVar('__BBAPPEND', " ".join(appends))
+ bb_data = bb.parse.handle(bbfile, bb_data)
+ return bb_data
class NoCache(object):
diff --git a/poky/bitbake/lib/bb/checksum.py b/poky/bitbake/lib/bb/checksum.py
index 1d50a26426..fb8a77f6ab 100644
--- a/poky/bitbake/lib/bb/checksum.py
+++ b/poky/bitbake/lib/bb/checksum.py
@@ -50,6 +50,7 @@ class FileChecksumCache(MultiProcessCache):
MultiProcessCache.__init__(self)
def get_checksum(self, f):
+ f = os.path.normpath(f)
entry = self.cachedata[0].get(f)
cmtime = self.mtime_cache.cached_mtime(f)
if entry:
@@ -84,15 +85,24 @@ class FileChecksumCache(MultiProcessCache):
return None
return checksum
+ #
+ # Changing the format of file-checksums is problematic as both OE and Bitbake have
+ # knowledge of them. We need to encode a new piece of data, the portion of the path
+ # we care about from a checksum perspective. This means that files that change subdirectory
+ # are tracked by the task hashes. To do this, we do something horrible and put a "/./" into
+ # the path. The filesystem handles it but it gives us a marker to know which subsection
+ # of the path to cache.
+ #
def checksum_dir(pth):
# Handle directories recursively
if pth == "/":
bb.fatal("Refusing to checksum /")
+ pth = pth.rstrip("/")
dirchecksums = []
for root, dirs, files in os.walk(pth, topdown=True):
[dirs.remove(d) for d in list(dirs) if d in localdirsexclude]
for name in files:
- fullpth = os.path.join(root, name)
+ fullpth = os.path.join(root, name).replace(pth, os.path.join(pth, "."))
checksum = checksum_file(fullpth)
if checksum:
dirchecksums.append((fullpth, checksum))
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index af794b4c42..08e45e79d0 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -388,12 +388,22 @@ class BBCooker:
# Create a new hash server bound to a unix domain socket
if not self.hashserv:
dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db"
+ upstream = self.data.getVar("BB_HASHSERVE_UPSTREAM") or None
+ if upstream:
+ import socket
+ try:
+ sock = socket.create_connection(upstream.split(":"), 5)
+ sock.close()
+ except socket.error as e:
+ bb.warn("BB_HASHSERVE_UPSTREAM is not valid, unable to connect hash equivalence server at '%s': %s"
+ % (upstream, repr(e)))
+
self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR")
self.hashserv = hashserv.create_server(
self.hashservaddr,
dbfile,
sync=False,
- upstream=self.data.getVar("BB_HASHSERVE_UPSTREAM") or None,
+ upstream=upstream,
)
self.hashserv.serve_as_process()
self.data.setVar("BB_HASHSERVE", self.hashservaddr)
@@ -804,7 +814,9 @@ class BBCooker:
for dep in rq.rqdata.runtaskentries[tid].depends:
(depmc, depfn, _, deptaskfn) = bb.runqueue.split_tid_mcfn(dep)
deppn = self.recipecaches[depmc].pkg_fn[deptaskfn]
- depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, bb.runqueue.taskname_from_tid(dep)))
+ if depmc:
+ depmc = "mc:" + depmc + ":"
+ depend_tree["tdepends"][dotname].append("%s%s.%s" % (depmc, deppn, bb.runqueue.taskname_from_tid(dep)))
if taskfn not in seen_fns:
seen_fns.append(taskfn)
packages = []
@@ -1656,7 +1668,7 @@ class BBCooker:
# Return a copy, don't modify the original
pkgs_to_build = pkgs_to_build[:]
- if len(pkgs_to_build) == 0:
+ if not pkgs_to_build:
raise NothingToBuild
ignore = (self.data.getVar("ASSUME_PROVIDED") or "").split()
@@ -1795,10 +1807,10 @@ class CookerCollectFiles(object):
files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem)[0] )
config.setVar("BBFILES_PRIORITIZED", " ".join(files))
- if not len(files):
+ if not files:
files = self.get_bbfiles()
- if not len(files):
+ if not files:
collectlog.error("no recipe files to build, check your BBPATH and BBFILES?")
bb.event.fire(CookerExit(), eventdata)
@@ -2208,21 +2220,33 @@ class CookerParser(object):
yield not cached, mc, infos
def parse_generator(self):
- while True:
+ empty = False
+ while self.processes or not empty:
+ for process in self.processes.copy():
+ if not process.is_alive():
+ process.join()
+ self.processes.remove(process)
+
if self.parsed >= self.toparse:
break
try:
result = self.result_queue.get(timeout=0.25)
except queue.Empty:
+ empty = True
pass
else:
+ empty = False
value = result[1]
if isinstance(value, BaseException):
raise value
else:
yield result
+ if not (self.parsed >= self.toparse):
+ raise bb.parse.ParseError("Not all recipes parsed, parser thread killed/died? Exiting.", None)
+
+
def parse_next(self):
result = []
parsed = None
diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py
index ba657c03b6..397b43dfa7 100644
--- a/poky/bitbake/lib/bb/cookerdata.py
+++ b/poky/bitbake/lib/bb/cookerdata.py
@@ -86,7 +86,7 @@ class ConfigParameters(object):
action['msg'] = "Only one target can be used with the --environment option."
elif self.options.buildfile and len(self.options.pkgs_to_build) > 0:
action['msg'] = "No target should be used with the --environment and --buildfile options."
- elif len(self.options.pkgs_to_build) > 0:
+ elif self.options.pkgs_to_build:
action['action'] = ["showEnvironmentTarget", self.options.pkgs_to_build]
else:
action['action'] = ["showEnvironment", self.options.buildfile]
@@ -210,7 +210,7 @@ def findConfigFile(configfile, data):
#
# We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
-# up to /. If that fails, we search for a conf/bitbake.conf in BBPATH.
+# up to /. If that fails, bitbake would fall back to cwd.
#
def findTopdir():
@@ -223,11 +223,8 @@ def findTopdir():
layerconf = findConfigFile("bblayers.conf", d)
if layerconf:
return os.path.dirname(os.path.dirname(layerconf))
- if bbpath:
- bitbakeconf = bb.utils.which(bbpath, "conf/bitbake.conf")
- if bitbakeconf:
- return os.path.dirname(os.path.dirname(bitbakeconf))
- return None
+
+ return os.path.abspath(os.getcwd())
class CookerDataBuilder(object):
@@ -417,6 +414,9 @@ class CookerDataBuilder(object):
" invoked bitbake from the wrong directory?")
raise SystemExit(msg)
+ if not data.getVar("TOPDIR"):
+ data.setVar("TOPDIR", os.path.abspath(os.getcwd()))
+
data = parse_config_file(os.path.join("conf", "bitbake.conf"), data)
# Parse files for loading *after* bitbake.conf and any includes
diff --git a/poky/bitbake/lib/bb/daemonize.py b/poky/bitbake/lib/bb/daemonize.py
index c187fcfc6c..40fabd0c0a 100644
--- a/poky/bitbake/lib/bb/daemonize.py
+++ b/poky/bitbake/lib/bb/daemonize.py
@@ -74,26 +74,26 @@ def createDaemon(function, logfile):
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
- try:
- so = open(logfile, 'a+')
- os.dup2(so.fileno(), sys.stdout.fileno())
- os.dup2(so.fileno(), sys.stderr.fileno())
- except io.UnsupportedOperation:
- sys.stdout = open(logfile, 'a+')
+ with open(logfile, 'a+') as so:
+ try:
+ os.dup2(so.fileno(), sys.stdout.fileno())
+ os.dup2(so.fileno(), sys.stderr.fileno())
+ except io.UnsupportedOperation:
+ sys.stdout = so
- # Have stdout and stderr be the same so log output matches chronologically
- # and there aren't two seperate buffers
- sys.stderr = sys.stdout
+ # Have stdout and stderr be the same so log output matches chronologically
+ # and there aren't two seperate buffers
+ sys.stderr = sys.stdout
- try:
- function()
- except Exception as e:
- traceback.print_exc()
- finally:
- bb.event.print_ui_queue()
- # os._exit() doesn't flush open files like os.exit() does. Manually flush
- # stdout and stderr so that any logging output will be seen, particularly
- # exception tracebacks.
- sys.stdout.flush()
- sys.stderr.flush()
- os._exit(0)
+ try:
+ function()
+ except Exception as e:
+ traceback.print_exc()
+ finally:
+ bb.event.print_ui_queue()
+ # os._exit() doesn't flush open files like os.exit() does. Manually flush
+ # stdout and stderr so that any logging output will be seen, particularly
+ # exception tracebacks.
+ sys.stdout.flush()
+ sys.stderr.flush()
+ os._exit(0)
diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py
index 9d18b1e2bf..ee5557abfa 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -285,21 +285,19 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
vardeps = varflags.get("vardeps")
def handle_contains(value, contains, d):
- newvalue = ""
+ newvalue = []
+ if value:
+ newvalue.append(str(value))
for k in sorted(contains):
l = (d.getVar(k) or "").split()
for item in sorted(contains[k]):
for word in item.split():
if not word in l:
- newvalue += "\n%s{%s} = Unset" % (k, item)
+ newvalue.append("\n%s{%s} = Unset" % (k, item))
break
else:
- newvalue += "\n%s{%s} = Set" % (k, item)
- if not newvalue:
- return value
- if not value:
- return newvalue
- return value + newvalue
+ newvalue.append("\n%s{%s} = Set" % (k, item))
+ return "".join(newvalue)
def handle_remove(value, deps, removes, d):
for r in sorted(removes):
@@ -406,7 +404,9 @@ def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
if data is None:
bb.error("Task %s from %s seems to be empty?!" % (task, fn))
- data = ''
+ data = []
+ else:
+ data = [data]
gendeps[task] -= whitelist
newdeps = gendeps[task]
@@ -424,12 +424,12 @@ def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
alldeps = sorted(seen)
for dep in alldeps:
- data = data + dep
+ data.append(dep)
var = lookupcache[dep]
if var is not None:
- data = data + str(var)
+ data.append(str(var))
k = fn + ":" + task
- basehash[k] = hashlib.sha256(data.encode("utf-8")).hexdigest()
+ basehash[k] = hashlib.sha256("".join(data).encode("utf-8")).hexdigest()
taskdeps[task] = alldeps
return taskdeps, basehash
diff --git a/poky/bitbake/lib/bb/data_smart.py b/poky/bitbake/lib/bb/data_smart.py
index 8d235da121..543372d153 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -492,7 +492,7 @@ class DataSmart(MutableMapping):
def setVar(self, var, value, **loginfo):
#print("var=" + str(var) + " val=" + str(value))
- if "_append" in var or "_prepend" in var or "_remove" in var:
+ if not var.startswith("__anon_") and ("_append" in var or "_prepend" in var or "_remove" in var):
info = "%s" % var
if "filename" in loginfo:
info += " file: %s" % loginfo[filename]
@@ -810,7 +810,7 @@ class DataSmart(MutableMapping):
expanded_removes[r] = self.expand(r).split()
parser.removes = set()
- val = ""
+ val = []
for v in __whitespace_split__.split(parser.value):
skip = False
for r in removes:
@@ -819,8 +819,8 @@ class DataSmart(MutableMapping):
skip = True
if skip:
continue
- val = val + v
- parser.value = val
+ val.append(v)
+ parser.value = "".join(val)
if expand:
value = parser.value
diff --git a/poky/bitbake/lib/bb/fetch2/README b/poky/bitbake/lib/bb/fetch2/README
new file mode 100644
index 0000000000..67b787ef47
--- /dev/null
+++ b/poky/bitbake/lib/bb/fetch2/README
@@ -0,0 +1,57 @@
+There are expectations of users of the fetcher code. This file attempts to document
+some of the constraints that are present. Some are obvious, some are less so. It is
+documented in the context of how OE uses it but the API calls are generic.
+
+a) network access for sources is only expected to happen in the do_fetch task.
+ This is not enforced or tested but is required so that we can:
+
+ i) audit the sources used (i.e. for license/manifest reasons)
+ ii) support offline builds with a suitable cache
+ iii) allow work to continue even with downtime upstream
+ iv) allow for changes upstream in incompatible ways
+ v) allow rebuilding of the software in X years time
+
+b) network access is not expected in do_unpack task.
+
+c) you can take DL_DIR and use it as a mirror for offline builds.
+
+d) access to the network is only made when explicitly configured in recipes
+ (e.g. use of AUTOREV, or use of git tags which change revision).
+
+e) fetcher output is deterministic (i.e. if you fetch configuration XXX now it
+ will match in future exactly in a clean build with a new DL_DIR).
+ One specific pain point example are git tags. They can be replaced and change
+ so the git fetcher has to resolve them with the network. We use git revisions
+ where possible to avoid this and ensure determinism.
+
+f) network access is expected to work with the standard linux proxy variables
+ so that access behind firewalls works (the fetcher sets these in the
+ environment but only in the do_fetch tasks).
+
+g) access during parsing has to be minimal, a "git ls-remote" for an AUTOREV
+ git recipe might be ok but you can't expect to checkout a git tree.
+
+h) we need to provide revision information during parsing such that a version
+ for the recipe can be constructed.
+
+i) versions are expected to be able to increase in a way which sorts allowing
+ package feeds to operate (see PR server required for git revisions to sort).
+
+j) API to query for possible version upgrades of a url is highly desireable to
+ allow our automated upgrage code to function (it is implied this does always
+ have network access).
+
+k) Where fixes or changes to behaviour in the fetcher are made, we ask that
+ test cases are added (run with "bitbake-selftest bb.tests.fetch"). We do
+ have fairly extensive test coverage of the fetcher as it is the only way
+ to track all of its corner cases, it still doesn't give entire coverage
+ though sadly.
+
+l) If using tools during parse time, they will have to be in ASSUME_PROVIDED
+ in OE's context as we can't build git-native, then parse a recipe and use
+ git ls-remote.
+
+Not all fetchers support all features, autorev is optional and doesn't make
+sense for some. Upgrade detection means different things in different contexts
+too.
+
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 666cc1306a..d37174185a 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -402,24 +402,24 @@ def encodeurl(decoded):
if not type:
raise MissingParameterError('type', "encoded from the data %s" % str(decoded))
- url = '%s://' % type
+ url = ['%s://' % type]
if user and type != "file":
- url += "%s" % user
+ url.append("%s" % user)
if pswd:
- url += ":%s" % pswd
- url += "@"
+ url.append(":%s" % pswd)
+ url.append("@")
if host and type != "file":
- url += "%s" % host
+ url.append("%s" % host)
if path:
# Standardise path to ensure comparisons work
while '//' in path:
path = path.replace("//", "/")
- url += "%s" % urllib.parse.quote(path)
+ url.append("%s" % urllib.parse.quote(path))
if p:
for parm in p:
- url += ";%s=%s" % (parm, p[parm])
+ url.append(";%s=%s" % (parm, p[parm]))
- return url
+ return "".join(url)
def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
if not ud.url or not uri_find or not uri_replace:
@@ -430,6 +430,7 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
uri_replace_decoded = list(decodeurl(uri_replace))
logger.debug2("For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
result_decoded = ['', '', '', '', '', {}]
+ # 0 - type, 1 - host, 2 - path, 3 - user, 4- pswd, 5 - params
for loc, i in enumerate(uri_find_decoded):
result_decoded[loc] = uri_decoded[loc]
regexp = i
@@ -449,6 +450,9 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
for l in replacements:
uri_replace_decoded[loc][k] = uri_replace_decoded[loc][k].replace(l, replacements[l])
result_decoded[loc][k] = uri_replace_decoded[loc][k]
+ elif (loc == 3 or loc == 4) and uri_replace_decoded[loc]:
+ # User/password in the replacement is just a straight replacement
+ result_decoded[loc] = uri_replace_decoded[loc]
elif (re.match(regexp, uri_decoded[loc])):
if not uri_replace_decoded[loc]:
result_decoded[loc] = ""
@@ -466,9 +470,13 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
# Kill parameters, they make no sense for mirror tarballs
uri_decoded[5] = {}
elif ud.localpath and ud.method.supports_checksum(ud):
- basename = os.path.basename(uri_decoded[loc])
- if basename and not result_decoded[loc].endswith(basename):
- result_decoded[loc] = os.path.join(result_decoded[loc], basename)
+ basename = os.path.basename(ud.localpath)
+ if basename:
+ uri_basename = os.path.basename(uri_decoded[loc])
+ if uri_basename and basename != uri_basename and result_decoded[loc].endswith(uri_basename):
+ result_decoded[loc] = result_decoded[loc].replace(uri_basename, basename)
+ elif not result_decoded[loc].endswith(basename):
+ result_decoded[loc] = os.path.join(result_decoded[loc], basename)
else:
return None
result = encodeurl(result_decoded)
@@ -766,7 +774,7 @@ def get_srcrev(d, method_name='sortable_revision'):
if urldata[u].method.supports_srcrev():
scms.append(u)
- if len(scms) == 0:
+ if not scms:
raise FetchError("SRCREV was used yet no valid SCM was found in SRC_URI")
if len(scms) == 1 and len(urldata[scms[0]].names) == 1:
@@ -1450,30 +1458,33 @@ class FetchMethod(object):
cmd = None
if unpack:
+ tar_cmd = 'tar --extract --no-same-owner'
+ if 'striplevel' in urldata.parm:
+ tar_cmd += ' --strip-components=%s' % urldata.parm['striplevel']
if file.endswith('.tar'):
- cmd = 'tar x --no-same-owner -f %s' % file
+ cmd = '%s -f %s' % (tar_cmd, file)
elif file.endswith('.tgz') or file.endswith('.tar.gz') or file.endswith('.tar.Z'):
- cmd = 'tar xz --no-same-owner -f %s' % file
+ cmd = '%s -z -f %s' % (tar_cmd, file)
elif file.endswith('.tbz') or file.endswith('.tbz2') or file.endswith('.tar.bz2'):
- cmd = 'bzip2 -dc %s | tar x --no-same-owner -f -' % file
+ cmd = 'bzip2 -dc %s | %s -f -' % (file, tar_cmd)
elif file.endswith('.gz') or file.endswith('.Z') or file.endswith('.z'):
cmd = 'gzip -dc %s > %s' % (file, efile)
elif file.endswith('.bz2'):
cmd = 'bzip2 -dc %s > %s' % (file, efile)
elif file.endswith('.txz') or file.endswith('.tar.xz'):
- cmd = 'xz -dc %s | tar x --no-same-owner -f -' % file
+ cmd = 'xz -dc %s | %s -f -' % (file, tar_cmd)
elif file.endswith('.xz'):
cmd = 'xz -dc %s > %s' % (file, efile)
elif file.endswith('.tar.lz'):
- cmd = 'lzip -dc %s | tar x --no-same-owner -f -' % file
+ cmd = 'lzip -dc %s | %s -f -' % (file, tar_cmd)
elif file.endswith('.lz'):
cmd = 'lzip -dc %s > %s' % (file, efile)
elif file.endswith('.tar.7z'):
- cmd = '7z x -so %s | tar x --no-same-owner -f -' % file
+ cmd = '7z x -so %s | %s -f -' % (file, tar_cmd)
elif file.endswith('.7z'):
cmd = '7za x -y %s 1>/dev/null' % file
elif file.endswith('.tzst') or file.endswith('.tar.zst'):
- cmd = 'zstd --decompress --stdout %s | tar x --no-same-owner -f -' % file
+ cmd = 'zstd --decompress --stdout %s | %s -f -' % (file, tar_cmd)
elif file.endswith('.zst'):
cmd = 'zstd --decompress --stdout %s > %s' % (file, efile)
elif file.endswith('.zip') or file.endswith('.jar'):
@@ -1506,7 +1517,7 @@ class FetchMethod(object):
raise UnpackError("Unable to unpack deb/ipk package - does not contain data.tar.* file", urldata.url)
else:
raise UnpackError("Unable to unpack deb/ipk package - could not list contents", urldata.url)
- cmd = 'ar x %s %s && tar --no-same-owner -xpf %s && rm %s' % (file, datafile, datafile, datafile)
+ cmd = 'ar x %s %s && %s -p -f %s && rm %s' % (file, datafile, tar_cmd, datafile, datafile)
# If 'subdir' param exists, create a dir and use it as destination for unpack cmd
if 'subdir' in urldata.parm:
@@ -1632,7 +1643,7 @@ class Fetch(object):
if localonly and cache:
raise Exception("bb.fetch2.Fetch.__init__: cannot set cache and localonly at same time")
- if len(urls) == 0:
+ if not urls:
urls = d.getVar("SRC_URI").split()
self.urls = urls
self.d = d
@@ -1931,6 +1942,7 @@ from . import clearcase
from . import npm
from . import npmsw
from . import az
+from . import crate
methods.append(local.Local())
methods.append(wget.Wget())
@@ -1951,3 +1963,4 @@ methods.append(clearcase.ClearCase())
methods.append(npm.Npm())
methods.append(npmsw.NpmShrinkWrap())
methods.append(az.Az())
+methods.append(crate.Crate())
diff --git a/poky/bitbake/lib/bb/fetch2/crate.py b/poky/bitbake/lib/bb/fetch2/crate.py
new file mode 100644
index 0000000000..f7e2354afb
--- /dev/null
+++ b/poky/bitbake/lib/bb/fetch2/crate.py
@@ -0,0 +1,137 @@
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+"""
+BitBake 'Fetch' implementation for crates.io
+"""
+
+# Copyright (C) 2016 Doug Goldstein
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Based on functions from the base bb module, Copyright 2003 Holger Schurig
+
+import hashlib
+import json
+import os
+import shutil
+import subprocess
+import bb
+from bb.fetch2 import logger, subprocess_setup, UnpackError
+from bb.fetch2.wget import Wget
+
+
+class Crate(Wget):
+
+ """Class to fetch crates via wget"""
+
+ def _cargo_bitbake_path(self, rootdir):
+ return os.path.join(rootdir, "cargo_home", "bitbake")
+
+ def supports(self, ud, d):
+ """
+ Check to see if a given url is for this fetcher
+ """
+ return ud.type in ['crate']
+
+ def recommends_checksum(self, urldata):
+ return False
+
+ def urldata_init(self, ud, d):
+ """
+ Sets up to download the respective crate from crates.io
+ """
+
+ if ud.type == 'crate':
+ self._crate_urldata_init(ud, d)
+
+ super(Crate, self).urldata_init(ud, d)
+
+ def _crate_urldata_init(self, ud, d):
+ """
+ Sets up the download for a crate
+ """
+
+ # URL syntax is: crate://NAME/VERSION
+ # break the URL apart by /
+ parts = ud.url.split('/')
+ if len(parts) < 5:
+ raise bb.fetch2.ParameterError("Invalid URL: Must be crate://HOST/NAME/VERSION", ud.url)
+
+ # last field is version
+ version = parts[len(parts) - 1]
+ # second to last field is name
+ name = parts[len(parts) - 2]
+ # host (this is to allow custom crate registries to be specified
+ host = '/'.join(parts[2:len(parts) - 2])
+
+ # if using upstream just fix it up nicely
+ if host == 'crates.io':
+ host = 'crates.io/api/v1/crates'
+
+ ud.url = "https://%s/%s/%s/download" % (host, name, version)
+ ud.parm['downloadfilename'] = "%s-%s.crate" % (name, version)
+ ud.parm['name'] = name
+
+ logger.debug(2, "Fetching %s to %s" % (ud.url, ud.parm['downloadfilename']))
+
+ def unpack(self, ud, rootdir, d):
+ """
+ Uses the crate to build the necessary paths for cargo to utilize it
+ """
+ if ud.type == 'crate':
+ return self._crate_unpack(ud, rootdir, d)
+ else:
+ super(Crate, self).unpack(ud, rootdir, d)
+
+ def _crate_unpack(self, ud, rootdir, d):
+ """
+ Unpacks a crate
+ """
+ thefile = ud.localpath
+
+ # possible metadata we need to write out
+ metadata = {}
+
+ # change to the rootdir to unpack but save the old working dir
+ save_cwd = os.getcwd()
+ os.chdir(rootdir)
+
+ pn = d.getVar('BPN')
+ if pn == ud.parm.get('name'):
+ cmd = "tar -xz --no-same-owner -f %s" % thefile
+ else:
+ cargo_bitbake = self._cargo_bitbake_path(rootdir)
+
+ cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_bitbake)
+
+ # ensure we've got these paths made
+ bb.utils.mkdirhier(cargo_bitbake)
+
+ # generate metadata necessary
+ with open(thefile, 'rb') as f:
+ # get the SHA256 of the original tarball
+ tarhash = hashlib.sha256(f.read()).hexdigest()
+
+ metadata['files'] = {}
+ metadata['package'] = tarhash
+
+ path = d.getVar('PATH')
+ if path:
+ cmd = "PATH=\"%s\" %s" % (path, cmd)
+ bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
+
+ ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
+
+ os.chdir(save_cwd)
+
+ if ret != 0:
+ raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
+
+ # if we have metadata to write out..
+ if len(metadata) > 0:
+ cratepath = os.path.splitext(os.path.basename(thefile))[0]
+ bbpath = self._cargo_bitbake_path(rootdir)
+ mdfile = '.cargo-checksum.json'
+ mdpath = os.path.join(bbpath, cratepath, mdfile)
+ with open(mdpath, "w") as f:
+ json.dump(metadata, f)
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index e8ddf2c761..30da8e95b7 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -142,6 +142,11 @@ class Git(FetchMethod):
ud.proto = 'file'
else:
ud.proto = "git"
+ if ud.host == "github.com" and ud.proto == "git":
+ # github stopped supporting git protocol
+ # https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git
+ ud.proto = "https"
+ bb.warn("URL: %s uses git protocol which is no longer supported by github. Please change to ;protocol=https in the url." % ud.url)
if not ud.proto in ('git', 'file', 'ssh', 'http', 'https', 'rsync'):
raise bb.fetch2.ParameterError("Invalid protocol type", ud.url)
@@ -165,7 +170,10 @@ class Git(FetchMethod):
ud.nocheckout = 1
ud.unresolvedrev = {}
- branches = ud.parm.get("branch", "master").split(',')
+ branches = ud.parm.get("branch", "").split(',')
+ if branches == [""] and not ud.nobranch:
+ bb.warn("URL: %s does not set any branch parameter. The future default branch used by tools and repositories is uncertain and we will therefore soon require this is set in all git urls." % ud.url)
+ branches = ["master"]
if len(branches) != len(ud.names):
raise bb.fetch2.ParameterError("The number of name and branch parameters is not balanced", ud.url)
@@ -516,13 +524,24 @@ class Git(FetchMethod):
def unpack(self, ud, destdir, d):
""" unpack the downloaded src to destdir"""
- subdir = ud.parm.get("subpath", "")
- if subdir != "":
- readpathspec = ":%s" % subdir
- def_destsuffix = "%s/" % os.path.basename(subdir.rstrip('/'))
- else:
- readpathspec = ""
- def_destsuffix = "git/"
+ subdir = ud.parm.get("subdir")
+ subpath = ud.parm.get("subpath")
+ readpathspec = ""
+ def_destsuffix = "git/"
+
+ if subpath:
+ readpathspec = ":%s" % subpath
+ def_destsuffix = "%s/" % os.path.basename(subpath.rstrip('/'))
+
+ if subdir:
+ # If 'subdir' param exists, create a dir and use it as destination for unpack cmd
+ if os.path.isabs(subdir):
+ if not os.path.realpath(subdir).startswith(os.path.realpath(destdir)):
+ raise bb.fetch2.UnpackError("subdir argument isn't a subdirectory of unpack root %s" % destdir, ud.url)
+ destdir = subdir
+ else:
+ destdir = os.path.join(destdir, subdir)
+ def_destsuffix = ""
destsuffix = ud.parm.get("destsuffix", def_destsuffix)
destdir = ud.destdir = os.path.join(destdir, destsuffix)
@@ -569,7 +588,7 @@ class Git(FetchMethod):
bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
if not ud.nocheckout:
- if subdir != "":
+ if subpath:
runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.revisions[ud.names[0]], readpathspec), d,
workdir=destdir)
runfetchcmd("%s checkout-index -q -f -a" % ud.basecmd, d, workdir=destdir)
diff --git a/poky/bitbake/lib/bb/fetch2/gitsm.py b/poky/bitbake/lib/bb/fetch2/gitsm.py
index a7110a988d..c5c23d5260 100644
--- a/poky/bitbake/lib/bb/fetch2/gitsm.py
+++ b/poky/bitbake/lib/bb/fetch2/gitsm.py
@@ -163,7 +163,7 @@ class GitSM(Git):
else:
self.process_submodules(ud, ud.clonedir, need_update_submodule, d)
- if len(need_update_list) > 0:
+ if need_update_list:
logger.debug('gitsm: Submodules requiring update: %s' % (' '.join(need_update_list)))
return True
diff --git a/poky/bitbake/lib/bb/fetch2/npm.py b/poky/bitbake/lib/bb/fetch2/npm.py
index 3c41cb295c..b3a3a444ee 100644
--- a/poky/bitbake/lib/bb/fetch2/npm.py
+++ b/poky/bitbake/lib/bb/fetch2/npm.py
@@ -72,7 +72,7 @@ def npm_unpack(tarball, destdir, d):
cmd += " --delay-directory-restore"
cmd += " --strip-components=1"
runfetchcmd(cmd, d, workdir=destdir)
- runfetchcmd("chmod -R +X %s" % (destdir), d, quiet=True, workdir=destdir)
+ runfetchcmd("chmod -R +X '%s'" % (destdir), d, quiet=True, workdir=destdir)
class NpmEnvironment(object):
"""
diff --git a/poky/bitbake/lib/bb/fetch2/npmsw.py b/poky/bitbake/lib/bb/fetch2/npmsw.py
index 426a139653..879ba5de0f 100644
--- a/poky/bitbake/lib/bb/fetch2/npmsw.py
+++ b/poky/bitbake/lib/bb/fetch2/npmsw.py
@@ -88,7 +88,11 @@ class NpmShrinkWrap(FetchMethod):
version = params.get("version", None)
# Handle registry sources
- if is_semver(version) and resolved and integrity:
+ if is_semver(version) and integrity:
+ # Handle duplicate dependencies without url
+ if not resolved:
+ return
+
localfile = npm_localfile(name, version)
uri = URI(resolved)
@@ -127,6 +131,8 @@ class NpmShrinkWrap(FetchMethod):
# Handle git sources
elif version.startswith("git"):
+ if version.startswith("github:"):
+ version = "git+https://github.com/" + version[len("github:"):]
regex = re.compile(r"""
^
git\+
diff --git a/poky/bitbake/lib/bb/fetch2/wget.py b/poky/bitbake/lib/bb/fetch2/wget.py
index 349891e852..253cabce75 100644
--- a/poky/bitbake/lib/bb/fetch2/wget.py
+++ b/poky/bitbake/lib/bb/fetch2/wget.py
@@ -112,7 +112,17 @@ class Wget(FetchMethod):
fetchcmd += " -O %s" % shlex.quote(localpath)
if ud.user and ud.pswd:
- fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (ud.user, ud.pswd)
+ fetchcmd += " --auth-no-challenge"
+ if ud.parm.get("redirectauth", "1") == "1":
+ # An undocumented feature of wget is that if the
+ # username/password are specified on the URI, wget will only
+ # send the Authorization header to the first host and not to
+ # any hosts that it is redirected to. With the increasing
+ # usage of temporary AWS URLs, this difference now matters as
+ # AWS will reject any request that has authentication both in
+ # the query parameters (from the redirect) and in the
+ # Authorization header.
+ fetchcmd += " --user=%s --password=%s" % (ud.user, ud.pswd)
uri = ud.url.split(";")[0]
if os.path.exists(ud.localpath):
@@ -356,7 +366,7 @@ class Wget(FetchMethod):
except (TypeError, ImportError, IOError, netrc.NetrcParseError):
pass
- with opener.open(r) as response:
+ with opener.open(r, timeout=30) as response:
pass
except urllib.error.URLError as e:
if try_again:
@@ -583,7 +593,7 @@ class Wget(FetchMethod):
# src.rpm extension was added only for rpm package. Can be removed if the rpm
# packaged will always be considered as having to be manually upgraded
- psuffix_regex = r"(tar\.gz|tgz|tar\.bz2|zip|xz|tar\.lz|rpm|bz2|orig\.tar\.gz|tar\.xz|src\.tar\.gz|src\.tgz|svnr\d+\.tar\.bz2|stable\.tar\.gz|src\.rpm)"
+ psuffix_regex = r"(tar\.\w+|tgz|zip|xz|rpm|bz2|orig\.tar\.\w+|src\.tar\.\w+|src\.tgz|svnr\d+\.tar\.\w+|stable\.tar\.\w+|src\.rpm)"
# match name, version and archive type of a package
package_regex_comp = re.compile(r"(?P<name>%s?\.?v?)(?P<pver>%s)(?P<arch>%s)?[\.-](?P<type>%s$)"
diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py
index 743ea0dfc0..31bcc8e7ac 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -130,6 +130,10 @@ class DataNode(AstNode):
else:
val = groupd["value"]
+ if ":append" in key or ":remove" in key or ":prepend" in key:
+ if op in ["append", "prepend", "postdot", "predot", "ques"]:
+ bb.warn(key + " " + groupd[op] + " is not a recommended operator combination, please replace it.")
+
flag = None
if 'flag' in groupd and groupd['flag'] is not None:
flag = groupd['flag']
diff --git a/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index 0834fe3f9b..b895d5b5ef 100644
--- a/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -48,10 +48,7 @@ __unset_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/~]+)$" )
__unset_flag_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/~]+)\[([a-zA-Z0-9\-_+.]+)\]$" )
def init(data):
- topdir = data.getVar('TOPDIR', False)
- if not topdir:
- data.setVar('TOPDIR', os.getcwd())
-
+ return
def supports(fn, d):
return fn[-5:] == ".conf"
diff --git a/poky/bitbake/lib/bb/process.py b/poky/bitbake/lib/bb/process.py
index d5a1775fce..af5d804a1d 100644
--- a/poky/bitbake/lib/bb/process.py
+++ b/poky/bitbake/lib/bb/process.py
@@ -60,7 +60,7 @@ class Popen(subprocess.Popen):
"close_fds": True,
"preexec_fn": subprocess_setup,
"stdout": subprocess.PIPE,
- "stderr": subprocess.STDOUT,
+ "stderr": subprocess.PIPE,
"stdin": subprocess.PIPE,
"shell": False,
}
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 10511a09dc..8ae3fe85f1 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -385,7 +385,6 @@ class RunQueueData:
self.rq = rq
self.warn_multi_bb = False
- self.stampwhitelist = cfgData.getVar("BB_STAMP_WHITELIST") or ""
self.multi_provider_whitelist = (cfgData.getVar("MULTI_PROVIDER_WHITELIST") or "").split()
self.setscenewhitelist = get_setscene_enforce_whitelist(cfgData, targets)
self.setscenewhitelist_checked = False
@@ -547,7 +546,7 @@ class RunQueueData:
next_points.append(revdep)
task_done[revdep] = True
endpoints = next_points
- if len(next_points) == 0:
+ if not next_points:
break
# Circular dependency sanity check
@@ -589,7 +588,7 @@ class RunQueueData:
found = False
for mc in self.taskData:
- if len(taskData[mc].taskentries) > 0:
+ if taskData[mc].taskentries:
found = True
break
if not found:
@@ -773,7 +772,7 @@ class RunQueueData:
# Find the dependency chain endpoints
endpoints = set()
for tid in self.runtaskentries:
- if len(deps[tid]) == 0:
+ if not deps[tid]:
endpoints.add(tid)
# Iterate the chains collating dependencies
while endpoints:
@@ -784,11 +783,11 @@ class RunQueueData:
cumulativedeps[dep].update(cumulativedeps[tid])
if tid in deps[dep]:
deps[dep].remove(tid)
- if len(deps[dep]) == 0:
+ if not deps[dep]:
next.add(dep)
endpoints = next
#for tid in deps:
- # if len(deps[tid]) != 0:
+ # if deps[tid]:
# bb.warn("Sanity test failure, dependencies left for %s (%s)" % (tid, deps[tid]))
# Loop here since recrdeptasks can depend upon other recrdeptasks and we have to
@@ -926,39 +925,37 @@ class RunQueueData:
#
# Once all active tasks are marked, prune the ones we don't need.
- delcount = {}
- for tid in list(self.runtaskentries.keys()):
- if tid not in runq_build:
- delcount[tid] = self.runtaskentries[tid]
- del self.runtaskentries[tid]
-
# Handle --runall
if self.cooker.configuration.runall:
# re-run the mark_active and then drop unused tasks from new list
+ reduced_tasklist = set(self.runtaskentries.keys())
+ for tid in list(self.runtaskentries.keys()):
+ if tid not in runq_build:
+ reduced_tasklist.remove(tid)
runq_build = {}
for task in self.cooker.configuration.runall:
if not task.startswith("do_"):
task = "do_{0}".format(task)
runall_tids = set()
- for tid in list(self.runtaskentries):
+ for tid in reduced_tasklist:
wanttid = "{0}:{1}".format(fn_from_tid(tid), task)
- if wanttid in delcount:
- self.runtaskentries[wanttid] = delcount[wanttid]
if wanttid in self.runtaskentries:
runall_tids.add(wanttid)
for tid in list(runall_tids):
- mark_active(tid,1)
+ mark_active(tid, 1)
if self.cooker.configuration.force:
invalidate_task(tid, False)
- for tid in list(self.runtaskentries.keys()):
- if tid not in runq_build:
- delcount[tid] = self.runtaskentries[tid]
- del self.runtaskentries[tid]
+ delcount = set()
+ for tid in list(self.runtaskentries.keys()):
+ if tid not in runq_build:
+ delcount.add(tid)
+ del self.runtaskentries[tid]
- if len(self.runtaskentries) == 0:
+ if self.cooker.configuration.runall:
+ if not self.runtaskentries:
bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets)))
self.init_progress_reporter.next_stage()
@@ -971,19 +968,19 @@ class RunQueueData:
for task in self.cooker.configuration.runonly:
if not task.startswith("do_"):
task = "do_{0}".format(task)
- runonly_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == task }
+ runonly_tids = [k for k in self.runtaskentries.keys() if taskname_from_tid(k) == task]
- for tid in list(runonly_tids):
- mark_active(tid,1)
+ for tid in runonly_tids:
+ mark_active(tid, 1)
if self.cooker.configuration.force:
invalidate_task(tid, False)
for tid in list(self.runtaskentries.keys()):
if tid not in runq_build:
- delcount[tid] = self.runtaskentries[tid]
+ delcount.add(tid)
del self.runtaskentries[tid]
- if len(self.runtaskentries) == 0:
+ if not self.runtaskentries:
bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the taskgraphs of the targets %s" % (str(self.cooker.configuration.runonly), str(self.targets)))
#
@@ -991,7 +988,7 @@ class RunQueueData:
#
# Check to make sure we still have tasks to run
- if len(self.runtaskentries) == 0:
+ if not self.runtaskentries:
if not taskData[''].abort:
bb.msg.fatal("RunQueue", "All buildable tasks have been run but the build is incomplete (--continue mode). Errors for the tasks that failed will have been printed above.")
else:
@@ -1015,7 +1012,7 @@ class RunQueueData:
endpoints = []
for tid in self.runtaskentries:
revdeps = self.runtaskentries[tid].revdeps
- if len(revdeps) == 0:
+ if not revdeps:
endpoints.append(tid)
for dep in revdeps:
if dep in self.runtaskentries[tid].depends:
@@ -1061,12 +1058,12 @@ class RunQueueData:
seen_pn.append(pn)
else:
bb.fatal("Multiple versions of %s are due to be built (%s). Only one version of a given PN should be built in any given build. You likely need to set PREFERRED_VERSION_%s to select the correct version or don't depend on multiple versions." % (pn, " ".join(prov_list[prov]), pn))
- msg = "Multiple .bb files are due to be built which each provide %s:\n %s" % (prov, "\n ".join(prov_list[prov]))
+ msgs = ["Multiple .bb files are due to be built which each provide %s:\n %s" % (prov, "\n ".join(prov_list[prov]))]
#
# Construct a list of things which uniquely depend on each provider
# since this may help the user figure out which dependency is triggering this warning
#
- msg += "\nA list of tasks depending on these providers is shown and may help explain where the dependency comes from."
+ msgs.append("\nA list of tasks depending on these providers is shown and may help explain where the dependency comes from.")
deplist = {}
commondeps = None
for provfn in prov_list[prov]:
@@ -1086,12 +1083,12 @@ class RunQueueData:
commondeps &= deps
deplist[provfn] = deps
for provfn in deplist:
- msg += "\n%s has unique dependees:\n %s" % (provfn, "\n ".join(deplist[provfn] - commondeps))
+ msgs.append("\n%s has unique dependees:\n %s" % (provfn, "\n ".join(deplist[provfn] - commondeps)))
#
# Construct a list of provides and runtime providers for each recipe
# (rprovides has to cover RPROVIDES, PACKAGES, PACKAGES_DYNAMIC)
#
- msg += "\nIt could be that one recipe provides something the other doesn't and should. The following provider and runtime provider differences may be helpful."
+ msgs.append("\nIt could be that one recipe provides something the other doesn't and should. The following provider and runtime provider differences may be helpful.")
provide_results = {}
rprovide_results = {}
commonprovs = None
@@ -1118,29 +1115,18 @@ class RunQueueData:
else:
commonrprovs &= rprovides
rprovide_results[provfn] = rprovides
- #msg += "\nCommon provides:\n %s" % ("\n ".join(commonprovs))
- #msg += "\nCommon rprovides:\n %s" % ("\n ".join(commonrprovs))
+ #msgs.append("\nCommon provides:\n %s" % ("\n ".join(commonprovs)))
+ #msgs.append("\nCommon rprovides:\n %s" % ("\n ".join(commonrprovs)))
for provfn in prov_list[prov]:
- msg += "\n%s has unique provides:\n %s" % (provfn, "\n ".join(provide_results[provfn] - commonprovs))
- msg += "\n%s has unique rprovides:\n %s" % (provfn, "\n ".join(rprovide_results[provfn] - commonrprovs))
+ msgs.append("\n%s has unique provides:\n %s" % (provfn, "\n ".join(provide_results[provfn] - commonprovs)))
+ msgs.append("\n%s has unique rprovides:\n %s" % (provfn, "\n ".join(rprovide_results[provfn] - commonrprovs)))
if self.warn_multi_bb:
- logger.verbnote(msg)
+ logger.verbnote("".join(msgs))
else:
- logger.error(msg)
+ logger.error("".join(msgs))
self.init_progress_reporter.next_stage()
-
- # Create a whitelist usable by the stamp checks
- self.stampfnwhitelist = {}
- for mc in self.taskData:
- self.stampfnwhitelist[mc] = []
- for entry in self.stampwhitelist.split():
- if entry not in self.taskData[mc].build_targets:
- continue
- fn = self.taskData.build_targets[entry][0]
- self.stampfnwhitelist[mc].append(fn)
-
self.init_progress_reporter.next_stage()
# Iterate over the task list looking for tasks with a 'setscene' function
@@ -1188,9 +1174,9 @@ class RunQueueData:
# Iterate over the task list and call into the siggen code
dealtwith = set()
todeal = set(self.runtaskentries)
- while len(todeal) > 0:
+ while todeal:
for tid in todeal.copy():
- if len(self.runtaskentries[tid].depends - dealtwith) == 0:
+ if not (self.runtaskentries[tid].depends - dealtwith):
dealtwith.add(tid)
todeal.remove(tid)
self.prepare_task_hash(tid)
@@ -1229,7 +1215,6 @@ class RunQueue:
self.cfgData = cfgData
self.rqdata = RunQueueData(self, cooker, cfgData, dataCaches, taskData, targets)
- self.stamppolicy = cfgData.getVar("BB_STAMP_POLICY") or "perfile"
self.hashvalidate = cfgData.getVar("BB_HASHCHECK_FUNCTION") or None
self.depvalidate = cfgData.getVar("BB_SETSCENE_DEPVALID") or None
@@ -1358,14 +1343,6 @@ class RunQueue:
if taskname is None:
taskname = tn
- if self.stamppolicy == "perfile":
- fulldeptree = False
- else:
- fulldeptree = True
- stampwhitelist = []
- if self.stamppolicy == "whitelist":
- stampwhitelist = self.rqdata.stampfnwhitelist[mc]
-
stampfile = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn)
# If the stamp is missing, it's not current
@@ -1397,7 +1374,7 @@ class RunQueue:
continue
if t3 and t3 > t2:
continue
- if fn == fn2 or (fulldeptree and fn2 not in stampwhitelist):
+ if fn == fn2:
if not t2:
logger.debug2('Stampfile %s does not exist', stampfile2)
iscurrent = False
@@ -1500,10 +1477,10 @@ class RunQueue:
self.rqexe = RunQueueExecute(self)
# If we don't have any setscene functions, skip execution
- if len(self.rqdata.runq_setscene_tids) == 0:
+ if not self.rqdata.runq_setscene_tids:
logger.info('No setscene tasks')
for tid in self.rqdata.runtaskentries:
- if len(self.rqdata.runtaskentries[tid].depends) == 0:
+ if not self.rqdata.runtaskentries[tid].depends:
self.rqexe.setbuildable(tid)
self.rqexe.tasks_notcovered.add(tid)
self.rqexe.sqdone = True
@@ -1780,7 +1757,7 @@ class RunQueueExecute:
bb.fatal("Invalid scheduler '%s'. Available schedulers: %s" %
(self.scheduler, ", ".join(obj.name for obj in schedulers)))
- #if len(self.rqdata.runq_setscene_tids) > 0:
+ #if self.rqdata.runq_setscene_tids:
self.sqdata = SQData()
build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self)
@@ -1821,7 +1798,7 @@ class RunQueueExecute:
# worker must have died?
pass
- if len(self.failed_tids) != 0:
+ if self.failed_tids:
self.rq.state = runQueueFailed
return
@@ -1837,7 +1814,7 @@ class RunQueueExecute:
self.rq.read_workers()
return self.rq.active_fds()
- if len(self.failed_tids) != 0:
+ if self.failed_tids:
self.rq.state = runQueueFailed
return True
@@ -1935,7 +1912,7 @@ class RunQueueExecute:
self.stats.taskFailed()
self.failed_tids.append(task)
- fakeroot_log = ""
+ fakeroot_log = []
if fakerootlog and os.path.exists(fakerootlog):
with open(fakerootlog) as fakeroot_log_file:
fakeroot_failed = False
@@ -1945,12 +1922,12 @@ class RunQueueExecute:
fakeroot_failed = True
if 'doing new pid setup and server start' in line:
break
- fakeroot_log = line + fakeroot_log
+ fakeroot_log.append(line)
if not fakeroot_failed:
- fakeroot_log = None
+ fakeroot_log = []
- bb.event.fire(runQueueTaskFailed(task, self.stats, exitcode, self.rq, fakeroot_log=fakeroot_log), self.cfgData)
+ bb.event.fire(runQueueTaskFailed(task, self.stats, exitcode, self.rq, fakeroot_log=("".join(fakeroot_log) or None)), self.cfgData)
if self.rqdata.taskData[''].abort:
self.rq.state = runQueueCleanUp
@@ -2001,7 +1978,7 @@ class RunQueueExecute:
if x not in self.tasks_scenequeue_done:
logger.error("Task %s was never processed by the setscene code" % x)
err = True
- if len(self.rqdata.runtaskentries[x].depends) == 0 and x not in self.runq_buildable:
+ if not self.rqdata.runtaskentries[x].depends and x not in self.runq_buildable:
logger.error("Task %s was never marked as buildable by the setscene code" % x)
err = True
return err
@@ -2025,7 +2002,7 @@ class RunQueueExecute:
# Find the next setscene to run
for nexttask in self.sorted_setscene_tids:
if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values():
- if nexttask not in self.sqdata.unskippable and len(self.sqdata.sq_revdeps[nexttask]) > 0 and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]):
+ if nexttask not in self.sqdata.unskippable and self.sqdata.sq_revdeps[nexttask] and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]):
if nexttask not in self.rqdata.target_tids:
logger.debug2("Skipping setscene for task %s" % nexttask)
self.sq_task_skip(nexttask)
@@ -2189,7 +2166,7 @@ class RunQueueExecute:
if self.can_start_task():
return True
- if self.stats.active > 0 or len(self.sq_live) > 0:
+ if self.stats.active > 0 or self.sq_live:
self.rq.read_workers()
return self.rq.active_fds()
@@ -2201,7 +2178,7 @@ class RunQueueExecute:
self.sq_task_failoutright(tid)
return True
- if len(self.failed_tids) != 0:
+ if self.failed_tids:
self.rq.state = runQueueFailed
return True
@@ -2280,7 +2257,7 @@ class RunQueueExecute:
covered.intersection_update(self.tasks_scenequeue_done)
for tid in notcovered | covered:
- if len(self.rqdata.runtaskentries[tid].depends) == 0:
+ if not self.rqdata.runtaskentries[tid].depends:
self.setbuildable(tid)
elif self.rqdata.runtaskentries[tid].depends.issubset(self.runq_complete):
self.setbuildable(tid)
@@ -2339,7 +2316,7 @@ class RunQueueExecute:
# Now iterate those tasks in dependency order to regenerate their taskhash/unihash
next = set()
for p in total:
- if len(self.rqdata.runtaskentries[p].depends) == 0:
+ if not self.rqdata.runtaskentries[p].depends:
next.add(p)
elif self.rqdata.runtaskentries[p].depends.isdisjoint(total):
next.add(p)
@@ -2349,7 +2326,7 @@ class RunQueueExecute:
current = next.copy()
next = set()
for tid in current:
- if len(self.rqdata.runtaskentries[p].depends) and not self.rqdata.runtaskentries[tid].depends.isdisjoint(total):
+ if self.rqdata.runtaskentries[p].depends and not self.rqdata.runtaskentries[tid].depends.isdisjoint(total):
continue
orighash = self.rqdata.runtaskentries[tid].hash
dc = bb.parse.siggen.get_data_caches(self.rqdata.dataCaches, mc_from_tid(tid))
@@ -2436,7 +2413,7 @@ class RunQueueExecute:
if not harddepfail and self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered):
if tid not in self.sq_buildable:
self.sq_buildable.add(tid)
- if len(self.sqdata.sq_revdeps[tid]) == 0:
+ if not self.sqdata.sq_revdeps[tid]:
self.sq_buildable.add(tid)
if tid in self.sqdata.outrightfail:
@@ -2608,12 +2585,13 @@ class RunQueueExecute:
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist):
if tid in self.rqdata.runq_setscene_tids:
- msg = 'Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname)
+ msg = ['Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname)]
else:
- msg = 'Task %s.%s attempted to execute unexpectedly' % (pn, taskname)
+ msg = ['Task %s.%s attempted to execute unexpectedly' % (pn, taskname)]
for t in self.scenequeue_notcovered:
- msg = msg + "\nTask %s, unihash %s, taskhash %s" % (t, self.rqdata.runtaskentries[t].unihash, self.rqdata.runtaskentries[t].hash)
- logger.error(msg + '\nThis is usually due to missing setscene tasks. Those missing in this build were: %s' % pprint.pformat(self.scenequeue_notcovered))
+ msg.append("\nTask %s, unihash %s, taskhash %s" % (t, self.rqdata.runtaskentries[t].unihash, self.rqdata.runtaskentries[t].hash))
+ msg.append('\nThis is usually due to missing setscene tasks. Those missing in this build were: %s' % pprint.pformat(self.scenequeue_notcovered))
+ logger.error("".join(msg))
return True
return False
@@ -2652,7 +2630,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
for tid in rqdata.runtaskentries:
sq_revdeps[tid] = copy.copy(rqdata.runtaskentries[tid].revdeps)
sq_revdeps_squash[tid] = set()
- if (len(sq_revdeps[tid]) == 0) and tid not in rqdata.runq_setscene_tids:
+ if not sq_revdeps[tid] and tid not in rqdata.runq_setscene_tids:
#bb.warn("Added endpoint %s" % (tid))
endpoints[tid] = set()
@@ -2693,9 +2671,9 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
sq_revdeps[dep].remove(point)
if tasks:
sq_revdeps_squash[dep] |= tasks
- if len(sq_revdeps[dep]) == 0 and dep not in rqdata.runq_setscene_tids:
+ if not sq_revdeps[dep] and dep not in rqdata.runq_setscene_tids:
newendpoints[dep] = task
- if len(newendpoints) != 0:
+ if newendpoints:
process_endpoints(newendpoints)
process_endpoints(endpoints)
@@ -2707,7 +2685,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
# Take the build endpoints (no revdeps) and find the sstate tasks they depend upon
new = True
for tid in rqdata.runtaskentries:
- if len(rqdata.runtaskentries[tid].revdeps) == 0:
+ if not rqdata.runtaskentries[tid].revdeps:
sqdata.unskippable.add(tid)
sqdata.unskippable |= sqrq.cantskip
while new:
@@ -2716,7 +2694,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
for tid in sorted(orig, reverse=True):
if tid in rqdata.runq_setscene_tids:
continue
- if len(rqdata.runtaskentries[tid].depends) == 0:
+ if not rqdata.runtaskentries[tid].depends:
# These are tasks which have no setscene tasks in their chain, need to mark as directly buildable
sqrq.setbuildable(tid)
sqdata.unskippable |= rqdata.runtaskentries[tid].depends
@@ -2731,7 +2709,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
for taskcounter, tid in enumerate(rqdata.runtaskentries):
if tid in rqdata.runq_setscene_tids:
pass
- elif len(sq_revdeps_squash[tid]) != 0:
+ elif sq_revdeps_squash[tid]:
bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, aborting. Please report this problem.")
else:
del sq_revdeps_squash[tid]
@@ -2796,7 +2774,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
sqdata.multiconfigs = set()
for tid in sqdata.sq_revdeps:
sqdata.multiconfigs.add(mc_from_tid(tid))
- if len(sqdata.sq_revdeps[tid]) == 0:
+ if not sqdata.sq_revdeps[tid]:
sqrq.sq_buildable.add(tid)
rqdata.init_progress_reporter.finish()
@@ -3050,7 +3028,7 @@ class runQueuePipe():
raise
end = len(self.queue)
found = True
- while found and len(self.queue):
+ while found and self.queue:
found = False
index = self.queue.find(b"</event>")
while index != -1 and self.queue.startswith(b"<event>"):
@@ -3088,7 +3066,7 @@ class runQueuePipe():
def close(self):
while self.read():
continue
- if len(self.queue) > 0:
+ if self.queue:
print("Warning, worker left partial message: %s" % self.queue)
self.input.close()
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index 8fdcc66dc7..1636616660 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -326,10 +326,10 @@ class ProcessServer():
if e.errno != errno.ENOENT:
raise
- msg = "Delaying shutdown due to active processes which appear to be holding bitbake.lock"
+ msg = ["Delaying shutdown due to active processes which appear to be holding bitbake.lock"]
if procs:
- msg += ":\n%s" % str(procs.decode("utf-8"))
- serverlog(msg)
+ msg.append(":\n%s" % str(procs.decode("utf-8")))
+ serverlog("".join(msg))
def idle_commands(self, delay, fds=None):
nextsleep = delay
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index 578ba5d661..e0ec736dff 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -328,6 +328,8 @@ class SignatureGeneratorBasic(SignatureGenerator):
for (f, cs) in self.file_checksum_values[tid]:
if cs:
+ if "/./" in f:
+ data = data + "./" + f.split("/./")[1]
data = data + cs
if tid in self.taints:
@@ -385,7 +387,12 @@ class SignatureGeneratorBasic(SignatureGenerator):
if runtime and tid in self.taskhash:
data['runtaskdeps'] = self.runtaskdeps[tid]
- data['file_checksum_values'] = [(os.path.basename(f), cs) for f,cs in self.file_checksum_values[tid]]
+ data['file_checksum_values'] = []
+ for f,cs in self.file_checksum_values[tid]:
+ if "/./" in f:
+ data['file_checksum_values'].append(("./" + f.split("/./")[1], cs))
+ else:
+ data['file_checksum_values'].append((os.path.basename(f), cs))
data['runtaskhashes'] = {}
for dep in data['runtaskdeps']:
data['runtaskhashes'][dep] = self.get_unihash(dep)
@@ -1028,6 +1035,8 @@ def calc_taskhash(sigdata):
for c in sigdata['file_checksum_values']:
if c[1]:
+ if "./" in c[0]:
+ data = data + c[0]
data = data + c[1]
if 'taint' in sigdata:
@@ -1045,28 +1054,28 @@ def dump_sigfile(a):
with bb.compress.zstd.open(a, "rt", encoding="utf-8", num_threads=1) as f:
a_data = json.load(f, object_hook=SetDecoder)
- output.append("basewhitelist: %s" % (a_data['basewhitelist']))
+ output.append("basewhitelist: %s" % (sorted(a_data['basewhitelist'])))
- output.append("taskwhitelist: %s" % (a_data['taskwhitelist']))
+ output.append("taskwhitelist: %s" % (sorted(a_data['taskwhitelist'] or [])))
output.append("Task dependencies: %s" % (sorted(a_data['taskdeps'])))
output.append("basehash: %s" % (a_data['basehash']))
- for dep in a_data['gendeps']:
- output.append("List of dependencies for variable %s is %s" % (dep, a_data['gendeps'][dep]))
+ for dep in sorted(a_data['gendeps']):
+ output.append("List of dependencies for variable %s is %s" % (dep, sorted(a_data['gendeps'][dep])))
- for dep in a_data['varvals']:
+ for dep in sorted(a_data['varvals']):
output.append("Variable %s value is %s" % (dep, a_data['varvals'][dep]))
if 'runtaskdeps' in a_data:
- output.append("Tasks this task depends on: %s" % (a_data['runtaskdeps']))
+ output.append("Tasks this task depends on: %s" % (sorted(a_data['runtaskdeps'])))
if 'file_checksum_values' in a_data:
- output.append("This task depends on the checksums of files: %s" % (a_data['file_checksum_values']))
+ output.append("This task depends on the checksums of files: %s" % (sorted(a_data['file_checksum_values'])))
if 'runtaskhashes' in a_data:
- for dep in a_data['runtaskhashes']:
+ for dep in sorted(a_data['runtaskhashes']):
output.append("Hash for dependent task %s is %s" % (dep, a_data['runtaskhashes'][dep]))
if 'taint' in a_data:
diff --git a/poky/bitbake/lib/bb/taskdata.py b/poky/bitbake/lib/bb/taskdata.py
index 47bad6d1fa..7bfcdb8414 100644
--- a/poky/bitbake/lib/bb/taskdata.py
+++ b/poky/bitbake/lib/bb/taskdata.py
@@ -451,12 +451,12 @@ class TaskData:
for target in self.build_targets:
if fn in self.build_targets[target]:
self.build_targets[target].remove(fn)
- if len(self.build_targets[target]) == 0:
+ if not self.build_targets[target]:
self.remove_buildtarget(target, missing_list)
for target in self.run_targets:
if fn in self.run_targets[target]:
self.run_targets[target].remove(fn)
- if len(self.run_targets[target]) == 0:
+ if not self.run_targets[target]:
self.remove_runtarget(target, missing_list)
def remove_buildtarget(self, target, missing_list=None):
diff --git a/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/m/minicom/index.html b/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/m/minicom/index.html
new file mode 100644
index 0000000000..4a1eb4de13
--- /dev/null
+++ b/poky/bitbake/lib/bb/tests/fetch-testdata/debian/pool/main/m/minicom/index.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>Index of /debian/pool/main/m/minicom</title>
+ </head>
+ <body>
+<h1>Index of /debian/pool/main/m/minicom</h1>
+ <table>
+ <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th></tr>
+ <tr><th colspan="4"><hr></th></tr>
+<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/debian/pool/main/m/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1+deb8u1.debian.tar.xz">minicom_2.7-1+deb8u1.debian.tar.xz</a></td><td align="right">2017-04-24 08:22 </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1+deb8u1.dsc">minicom_2.7-1+deb8u1.dsc</a></td><td align="right">2017-04-24 08:22 </td><td align="right">1.9K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1+deb8u1_amd64.deb">minicom_2.7-1+deb8u1_amd64.deb</a></td><td align="right">2017-04-25 21:10 </td><td align="right">257K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1+deb8u1_armel.deb">minicom_2.7-1+deb8u1_armel.deb</a></td><td align="right">2017-04-26 00:58 </td><td align="right">246K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1+deb8u1_armhf.deb">minicom_2.7-1+deb8u1_armhf.deb</a></td><td align="right">2017-04-26 00:58 </td><td align="right">245K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1+deb8u1_i386.deb">minicom_2.7-1+deb8u1_i386.deb</a></td><td align="right">2017-04-25 21:41 </td><td align="right">258K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1.debian.tar.xz">minicom_2.7-1.1.debian.tar.xz</a></td><td align="right">2017-04-22 09:34 </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1.dsc">minicom_2.7-1.1.dsc</a></td><td align="right">2017-04-22 09:34 </td><td align="right">1.9K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_amd64.deb">minicom_2.7-1.1_amd64.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">261K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_arm64.deb">minicom_2.7-1.1_arm64.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">250K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_armel.deb">minicom_2.7-1.1_armel.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">255K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_armhf.deb">minicom_2.7-1.1_armhf.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">254K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_i386.deb">minicom_2.7-1.1_i386.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">266K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_mips.deb">minicom_2.7-1.1_mips.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">258K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_mips64el.deb">minicom_2.7-1.1_mips64el.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">259K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_mipsel.deb">minicom_2.7-1.1_mipsel.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">259K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_ppc64el.deb">minicom_2.7-1.1_ppc64el.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">253K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7-1.1_s390x.deb">minicom_2.7-1.1_s390x.deb</a></td><td align="right">2017-04-22 15:29 </td><td align="right">261K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_amd64.deb">minicom_2.7.1-1+b1_amd64.deb</a></td><td align="right">2018-05-06 08:14 </td><td align="right">262K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_arm64.deb">minicom_2.7.1-1+b1_arm64.deb</a></td><td align="right">2018-05-06 07:58 </td><td align="right">250K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_armel.deb">minicom_2.7.1-1+b1_armel.deb</a></td><td align="right">2018-05-06 08:45 </td><td align="right">253K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_armhf.deb">minicom_2.7.1-1+b1_armhf.deb</a></td><td align="right">2018-05-06 10:42 </td><td align="right">253K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_i386.deb">minicom_2.7.1-1+b1_i386.deb</a></td><td align="right">2018-05-06 08:55 </td><td align="right">266K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_mips.deb">minicom_2.7.1-1+b1_mips.deb</a></td><td align="right">2018-05-06 08:14 </td><td align="right">258K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_mipsel.deb">minicom_2.7.1-1+b1_mipsel.deb</a></td><td align="right">2018-05-06 12:13 </td><td align="right">259K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_ppc64el.deb">minicom_2.7.1-1+b1_ppc64el.deb</a></td><td align="right">2018-05-06 09:10 </td><td align="right">260K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b1_s390x.deb">minicom_2.7.1-1+b1_s390x.deb</a></td><td align="right">2018-05-06 08:14 </td><td align="right">257K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1+b2_mips64el.deb">minicom_2.7.1-1+b2_mips64el.deb</a></td><td align="right">2018-05-06 09:41 </td><td align="right">260K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1.debian.tar.xz">minicom_2.7.1-1.debian.tar.xz</a></td><td align="right">2017-08-13 15:40 </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.7.1-1.dsc">minicom_2.7.1-1.dsc</a></td><td align="right">2017-08-13 15:40 </td><td align="right">1.8K</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="minicom_2.7.1.orig.tar.gz">minicom_2.7.1.orig.tar.gz</a></td><td align="right">2017-08-13 15:40 </td><td align="right">855K</td></tr>
+<tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="minicom_2.7.orig.tar.gz">minicom_2.7.orig.tar.gz</a></td><td align="right">2014-01-01 09:36 </td><td align="right">843K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2.debian.tar.xz">minicom_2.8-2.debian.tar.xz</a></td><td align="right">2021-06-15 03:47 </td><td align="right"> 14K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2.dsc">minicom_2.8-2.dsc</a></td><td align="right">2021-06-15 03:47 </td><td align="right">1.8K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_amd64.deb">minicom_2.8-2_amd64.deb</a></td><td align="right">2021-06-15 03:58 </td><td align="right">280K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_arm64.deb">minicom_2.8-2_arm64.deb</a></td><td align="right">2021-06-15 04:13 </td><td align="right">275K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_armel.deb">minicom_2.8-2_armel.deb</a></td><td align="right">2021-06-15 04:13 </td><td align="right">271K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_armhf.deb">minicom_2.8-2_armhf.deb</a></td><td align="right">2021-06-15 04:13 </td><td align="right">272K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_i386.deb">minicom_2.8-2_i386.deb</a></td><td align="right">2021-06-15 04:13 </td><td align="right">285K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_mips64el.deb">minicom_2.8-2_mips64el.deb</a></td><td align="right">2021-06-15 04:13 </td><td align="right">277K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_mipsel.deb">minicom_2.8-2_mipsel.deb</a></td><td align="right">2021-06-15 04:13 </td><td align="right">278K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_ppc64el.deb">minicom_2.8-2_ppc64el.deb</a></td><td align="right">2021-06-15 04:13 </td><td align="right">286K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8-2_s390x.deb">minicom_2.8-2_s390x.deb</a></td><td align="right">2021-06-15 03:58 </td><td align="right">275K</td></tr>
+<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="minicom_2.8.orig.tar.bz2">minicom_2.8.orig.tar.bz2</a></td><td align="right">2021-01-03 12:44 </td><td align="right">598K</td></tr>
+ <tr><th colspan="4"><hr></th></tr>
+</table>
+<address>Apache Server at ftp.debian.org Port 80</address>
+</body></html>
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index 8ad1c85990..ec7d83c959 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -430,6 +430,12 @@ class MirrorUriTest(FetcherTest):
: "http://somewhere2.org/somefile_1.2.3.tar.gz",
("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master", "git://someserver.org/bitbake;branch=master", "git://git.openembedded.org/bitbake;protocol=http")
: "git://git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http",
+ ("git://user1@someserver.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master", "git://someserver.org/bitbake;branch=master", "git://user2@git.openembedded.org/bitbake;protocol=http")
+ : "git://user2@git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890;branch=master;protocol=http",
+ ("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890;protocol=git;branch=master", "git://someserver.org/bitbake", "git://someotherserver.org/bitbake;protocol=https")
+ : "git://someotherserver.org/bitbake;tag=1234567890123456789012345678901234567890;protocol=https;branch=master",
+
+ ("gitsm://git.qemu.org/git/seabios.git/;protocol=https;name=roms/seabios;subpath=roms/seabios;bareclone=1;nobranch=1;rev=1234567890123456789012345678901234567890", "gitsm://.*/.*", "http://petalinux.xilinx.com/sswreleases/rel-v${XILINX_VER_MAIN}/downloads") : "http://petalinux.xilinx.com/sswreleases/rel-v%24%7BXILINX_VER_MAIN%7D/downloads/git2_git.qemu.org.git.seabios.git..tar.gz",
#Renaming files doesn't work
#("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz") : "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz"
@@ -491,7 +497,7 @@ class GitDownloadDirectoryNamingTest(FetcherTest):
super(GitDownloadDirectoryNamingTest, self).setUp()
self.recipe_url = "git://git.openembedded.org/bitbake"
self.recipe_dir = "git.openembedded.org.bitbake"
- self.mirror_url = "git://github.com/openembedded/bitbake.git"
+ self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
self.mirror_dir = "github.com.openembedded.bitbake.git"
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
@@ -539,7 +545,7 @@ class TarballNamingTest(FetcherTest):
super(TarballNamingTest, self).setUp()
self.recipe_url = "git://git.openembedded.org/bitbake"
self.recipe_tarball = "git2_git.openembedded.org.bitbake.tar.gz"
- self.mirror_url = "git://github.com/openembedded/bitbake.git"
+ self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
self.mirror_tarball = "git2_github.com.openembedded.bitbake.git.tar.gz"
self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '1')
@@ -573,7 +579,7 @@ class GitShallowTarballNamingTest(FetcherTest):
super(GitShallowTarballNamingTest, self).setUp()
self.recipe_url = "git://git.openembedded.org/bitbake"
self.recipe_tarball = "gitshallow_git.openembedded.org.bitbake_82ea737-1_master.tar.gz"
- self.mirror_url = "git://github.com/openembedded/bitbake.git"
+ self.mirror_url = "git://github.com/openembedded/bitbake.git;protocol=https"
self.mirror_tarball = "gitshallow_github.com.openembedded.bitbake.git_82ea737-1_master.tar.gz"
self.d.setVar('BB_GIT_SHALLOW', '1')
@@ -620,6 +626,9 @@ class FetcherLocalTest(FetcherTest):
os.makedirs(os.path.join(self.localsrcdir, 'dir', 'subdir'))
touch(os.path.join(self.localsrcdir, 'dir', 'subdir', 'e'))
touch(os.path.join(self.localsrcdir, r'backslash\x2dsystemd-unit.device'))
+ bb.process.run('tar cf archive.tar -C dir .', cwd=self.localsrcdir)
+ bb.process.run('tar czf archive.tar.gz -C dir .', cwd=self.localsrcdir)
+ bb.process.run('tar cjf archive.tar.bz2 -C dir .', cwd=self.localsrcdir)
self.d.setVar("FILESPATH", self.localsrcdir)
def fetchUnpack(self, uris):
@@ -674,6 +683,18 @@ class FetcherLocalTest(FetcherTest):
with self.assertRaises(bb.fetch2.UnpackError):
self.fetchUnpack(['file://a;subdir=/bin/sh'])
+ def test_local_striplevel(self):
+ tree = self.fetchUnpack(['file://archive.tar;subdir=bar;striplevel=1'])
+ self.assertEqual(tree, ['bar/c', 'bar/d', 'bar/subdir/e'])
+
+ def test_local_striplevel_gzip(self):
+ tree = self.fetchUnpack(['file://archive.tar.gz;subdir=bar;striplevel=1'])
+ self.assertEqual(tree, ['bar/c', 'bar/d', 'bar/subdir/e'])
+
+ def test_local_striplevel_bzip2(self):
+ tree = self.fetchUnpack(['file://archive.tar.bz2;subdir=bar;striplevel=1'])
+ self.assertEqual(tree, ['bar/c', 'bar/d', 'bar/subdir/e'])
+
def dummyGitTest(self, suffix):
# Create dummy local Git repo
src_dir = tempfile.mkdtemp(dir=self.tempdir,
@@ -875,17 +896,25 @@ class FetcherNetworkTest(FetcherTest):
@skipIfNoNetwork()
def test_fetch_premirror_specify_downloadfilename_regex_uri(self):
self.d.setVar("PREMIRRORS", "http://.*/.* https://downloads.yoctoproject.org/releases/bitbake/")
- fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz;downloadfilename=bitbake-v1.0.0.tar.gz"], self.d)
+ fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/1.0.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
fetcher.download()
- self.assertEqual(os.path.getsize(self.dldir + "/bitbake-v1.0.0.tar.gz"), 57749)
+ self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
@skipIfNoNetwork()
# BZ13039
def test_fetch_premirror_specify_downloadfilename_specific_uri(self):
self.d.setVar("PREMIRRORS", "http://invalid.yoctoproject.org/releases/bitbake https://downloads.yoctoproject.org/releases/bitbake")
- fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz;downloadfilename=bitbake-v1.0.0.tar.gz"], self.d)
+ fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/1.0.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
fetcher.download()
- self.assertEqual(os.path.getsize(self.dldir + "/bitbake-v1.0.0.tar.gz"), 57749)
+ self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
+
+ @skipIfNoNetwork()
+ def test_fetch_premirror_use_downloadfilename_to_fetch(self):
+ # Ensure downloadfilename is used when fetching from premirror.
+ self.d.setVar("PREMIRRORS", "http://.*/.* https://downloads.yoctoproject.org/releases/bitbake")
+ fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz;downloadfilename=bitbake-1.0.tar.gz"], self.d)
+ fetcher.download()
+ self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
@skipIfNoNetwork()
def gitfetcher(self, url1, url2):
@@ -996,7 +1025,7 @@ class FetcherNetworkTest(FetcherTest):
def test_git_submodule_dbus_broker(self):
# The following external repositories have show failures in fetch and unpack operations
# We want to avoid regressions!
- url = "gitsm://github.com/bus1/dbus-broker;protocol=git;rev=fc874afa0992d0c75ec25acb43d344679f0ee7d2;branch=main"
+ url = "gitsm://github.com/bus1/dbus-broker;protocol=https;rev=fc874afa0992d0c75ec25acb43d344679f0ee7d2;branch=main"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
@@ -1012,7 +1041,7 @@ class FetcherNetworkTest(FetcherTest):
@skipIfNoNetwork()
def test_git_submodule_CLI11(self):
- url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf;branch=main"
+ url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf;branch=main"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
@@ -1027,12 +1056,12 @@ class FetcherNetworkTest(FetcherTest):
@skipIfNoNetwork()
def test_git_submodule_update_CLI11(self):
""" Prevent regression on update detection not finding missing submodule, or modules without needed commits """
- url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714;branch=main"
+ url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714;branch=main"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# CLI11 that pulls in a newer nlohmann-json
- url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca;branch=main"
+ url = "gitsm://github.com/CLIUtils/CLI11;protocol=https;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca;branch=main"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
@@ -1046,7 +1075,7 @@ class FetcherNetworkTest(FetcherTest):
@skipIfNoNetwork()
def test_git_submodule_aktualizr(self):
- url = "gitsm://github.com/advancedtelematic/aktualizr;branch=master;protocol=git;rev=d00d1a04cc2366d1a5f143b84b9f507f8bd32c44"
+ url = "gitsm://github.com/advancedtelematic/aktualizr;branch=master;protocol=https;rev=d00d1a04cc2366d1a5f143b84b9f507f8bd32c44"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
@@ -1066,7 +1095,7 @@ class FetcherNetworkTest(FetcherTest):
""" Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
# This repository also has submodules where the module (name), path and url do not align
- url = "gitsm://github.com/azure/iotedge.git;protocol=git;rev=d76e0316c6f324345d77c48a83ce836d09392699"
+ url = "gitsm://github.com/azure/iotedge.git;protocol=https;rev=d76e0316c6f324345d77c48a83ce836d09392699"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
# Previous cwd has been deleted
@@ -1124,7 +1153,7 @@ class SVNTest(FetcherTest):
bb.process.run("svn co %s svnfetch_co" % self.repo_url, cwd=self.tempdir)
# Github will emulate SVN. Use this to check if we're downloding...
- bb.process.run("svn propset svn:externals 'bitbake svn://vcs.pcre.org/pcre2/code' .",
+ bb.process.run("svn propset svn:externals 'bitbake https://github.com/PhilipHazel/pcre2.git' .",
cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk'))
bb.process.run("svn commit --non-interactive -m 'Add external'",
cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk'))
@@ -1242,7 +1271,7 @@ class FetchLatestVersionTest(FetcherTest):
test_git_uris = {
# version pattern "X.Y.Z"
- ("mx-1.0", "git://github.com/clutter-project/mx.git;branch=mx-1.4", "9b1db6b8060bd00b121a692f942404a24ae2960f", "")
+ ("mx-1.0", "git://github.com/clutter-project/mx.git;branch=mx-1.4;protocol=https", "9b1db6b8060bd00b121a692f942404a24ae2960f", "")
: "1.99.4",
# version pattern "vX.Y"
# mirror of git.infradead.org since network issues interfered with testing
@@ -1269,9 +1298,9 @@ class FetchLatestVersionTest(FetcherTest):
: "0.4.3",
("build-appliance-image", "git://git.yoctoproject.org/poky", "b37dd451a52622d5b570183a81583cc34c2ff555", r"(?P<pver>(([0-9][\.|_]?)+[0-9]))")
: "11.0.0",
- ("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot", "cd437ecbd8986c894442f8fce1e0061e20f04dee", r"chkconfig\-(?P<pver>((\d+[\.\-_]*)+))")
+ ("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot;protocol=https", "cd437ecbd8986c894442f8fce1e0061e20f04dee", r"chkconfig\-(?P<pver>((\d+[\.\-_]*)+))")
: "1.3.59",
- ("remake", "git://github.com/rocky/remake.git", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))")
+ ("remake", "git://github.com/rocky/remake.git;protocol=https", "f05508e521987c8494c92d9c2871aec46307d51d", r"(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))")
: "3.82+dbg0.9",
}
@@ -1317,6 +1346,12 @@ class FetchLatestVersionTest(FetcherTest):
# http://ftp.debian.org/debian/pool/main/d/db5.3/
("db", "/berkeley-db/db-5.3.21.tar.gz", "/debian/pool/main/d/db5.3/", r"(?P<name>db5\.3_)(?P<pver>\d+(\.\d+)+).+\.orig\.tar\.xz")
: "5.3.10",
+ #
+ # packages where the tarball compression changed in the new version
+ #
+ # http://ftp.debian.org/debian/pool/main/m/minicom/minicom_2.7.1.orig.tar.gz
+ ("minicom", "/debian/pool/main/m/minicom/minicom_2.7.1.orig.tar.gz", "", "")
+ : "2.8",
}
@skipIfNoNetwork()
@@ -1365,9 +1400,6 @@ class FetchCheckStatusTest(FetcherTest):
"https://downloads.yoctoproject.org/releases/opkg/opkg-0.1.7.tar.gz",
"https://downloads.yoctoproject.org/releases/opkg/opkg-0.3.0.tar.gz",
"ftp://sourceware.org/pub/libffi/libffi-1.20.tar.gz",
- "http://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz",
- "https://ftp.gnu.org/gnu/chess/gnuchess-5.08.tar.gz",
- "https://ftp.gnu.org/gnu/gmp/gmp-4.0.tar.gz",
# GitHub releases are hosted on Amazon S3, which doesn't support HEAD
"https://github.com/kergoth/tslib/releases/download/1.1/tslib-1.1.tar.xz"
]
@@ -2058,7 +2090,7 @@ class GitShallowTest(FetcherTest):
@skipIfNoNetwork()
def test_bitbake(self):
- self.git('remote add --mirror=fetch origin git://github.com/openembedded/bitbake', cwd=self.srcdir)
+ self.git('remote add --mirror=fetch origin https://github.com/openembedded/bitbake', cwd=self.srcdir)
self.git('config core.bare true', cwd=self.srcdir)
self.git('fetch', cwd=self.srcdir)
@@ -2149,7 +2181,7 @@ class GitLfsTest(FetcherTest):
def test_lfs_enabled(self):
import shutil
- uri = 'git://%s;protocol=file;subdir=${S};lfs=1' % self.srcdir
+ uri = 'git://%s;protocol=file;lfs=1' % self.srcdir
self.d.setVar('SRC_URI', uri)
# Careful: suppress initial attempt at downloading until
@@ -2174,7 +2206,7 @@ class GitLfsTest(FetcherTest):
def test_lfs_disabled(self):
import shutil
- uri = 'git://%s;protocol=file;subdir=${S};lfs=0' % self.srcdir
+ uri = 'git://%s;protocol=file;lfs=0' % self.srcdir
self.d.setVar('SRC_URI', uri)
# In contrast to test_lfs_enabled(), allow the implicit download
@@ -2228,6 +2260,41 @@ class GitURLWithSpacesTest(FetcherTest):
self.assertEqual(ud.clonedir, os.path.join(self.dldir, "git2", ref['gitsrcname']))
self.assertEqual(ud.fullmirror, os.path.join(self.dldir, "git2_" + ref['gitsrcname'] + '.tar.gz'))
+class CrateTest(FetcherTest):
+ def test_crate_url(self):
+
+ uri = "crate://crates.io/glob/0.2.11"
+ self.d.setVar('SRC_URI', uri)
+
+ uris = self.d.getVar('SRC_URI').split()
+ d = self.d
+
+ fetcher = bb.fetch2.Fetch(uris, self.d)
+ fetcher.download()
+ fetcher.unpack(self.tempdir)
+ self.assertEqual(sorted(os.listdir(self.tempdir)), ['cargo_home', 'download' , 'unpacked'])
+ self.assertEqual(sorted(os.listdir(self.tempdir + "/download")), ['glob-0.2.11.crate', 'glob-0.2.11.crate.done'])
+ self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/.cargo-checksum.json"))
+ self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/src/lib.rs"))
+
+ def test_crate_url_multi(self):
+
+ uri = "crate://crates.io/glob/0.2.11 crate://crates.io/time/0.1.35"
+ self.d.setVar('SRC_URI', uri)
+
+ uris = self.d.getVar('SRC_URI').split()
+ d = self.d
+
+ fetcher = bb.fetch2.Fetch(uris, self.d)
+ fetcher.download()
+ fetcher.unpack(self.tempdir)
+ self.assertEqual(sorted(os.listdir(self.tempdir)), ['cargo_home', 'download' , 'unpacked'])
+ self.assertEqual(sorted(os.listdir(self.tempdir + "/download")), ['glob-0.2.11.crate', 'glob-0.2.11.crate.done', 'time-0.1.35.crate', 'time-0.1.35.crate.done'])
+ self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/.cargo-checksum.json"))
+ self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/glob-0.2.11/src/lib.rs"))
+ self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/time-0.1.35/.cargo-checksum.json"))
+ self.assertTrue(os.path.exists(self.tempdir + "/cargo_home/bitbake/time-0.1.35/src/lib.rs"))
+
class NPMTest(FetcherTest):
def skipIfNoNpm():
import shutil
diff --git a/poky/bitbake/lib/bb/tests/runqueue.py b/poky/bitbake/lib/bb/tests/runqueue.py
index 5b6ada886a..35d5a843ff 100644
--- a/poky/bitbake/lib/bb/tests/runqueue.py
+++ b/poky/bitbake/lib/bb/tests/runqueue.py
@@ -29,9 +29,10 @@ class RunQueueTests(unittest.TestCase):
def run_bitbakecmd(self, cmd, builddir, sstatevalid="", slowtasks="", extraenv=None, cleanup=False):
env = os.environ.copy()
env["BBPATH"] = os.path.realpath(os.path.join(os.path.dirname(__file__), "runqueue-tests"))
- env["BB_ENV_EXTRAWHITE"] = "SSTATEVALID SLOWTASKS"
+ env["BB_ENV_EXTRAWHITE"] = "SSTATEVALID SLOWTASKS TOPDIR"
env["SSTATEVALID"] = sstatevalid
env["SLOWTASKS"] = slowtasks
+ env["TOPDIR"] = builddir
if extraenv:
for k in extraenv:
env[k] = extraenv[k]
@@ -58,6 +59,8 @@ class RunQueueTests(unittest.TestCase):
expected = ['a1:' + x for x in self.alltasks]
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_single_setscenevalid(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "a1"]
@@ -68,6 +71,8 @@ class RunQueueTests(unittest.TestCase):
'a1:populate_sysroot', 'a1:build']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_intermediate_setscenevalid(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "a1"]
@@ -77,6 +82,8 @@ class RunQueueTests(unittest.TestCase):
'a1:populate_sysroot_setscene', 'a1:build']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_intermediate_notcovered(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "a1"]
@@ -86,6 +93,8 @@ class RunQueueTests(unittest.TestCase):
'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_all_setscenevalid(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "a1"]
@@ -95,6 +104,8 @@ class RunQueueTests(unittest.TestCase):
'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_no_settasks(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "a1", "-c", "patch"]
@@ -103,6 +114,8 @@ class RunQueueTests(unittest.TestCase):
expected = ['a1:fetch', 'a1:unpack', 'a1:patch']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_mix_covered_notcovered(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "a1:do_patch", "a1:do_populate_sysroot"]
@@ -111,6 +124,7 @@ class RunQueueTests(unittest.TestCase):
expected = ['a1:fetch', 'a1:unpack', 'a1:patch', 'a1:populate_sysroot_setscene']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
# Test targets with intermediate setscene tasks alongside a target with no intermediate setscene tasks
def test_mixed_direct_tasks_setscene_tasks(self):
@@ -122,6 +136,8 @@ class RunQueueTests(unittest.TestCase):
'a1:package_qa_setscene', 'a1:build', 'a1:populate_sysroot_setscene']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
# This test slows down the execution of do_package_setscene until after other real tasks have
# started running which tests for a bug where tasks were being lost from the buildable list of real
# tasks if they weren't in tasks_covered or tasks_notcovered
@@ -136,6 +152,8 @@ class RunQueueTests(unittest.TestCase):
'a1:populate_sysroot', 'a1:build']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_setscenewhitelist(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "a1"]
@@ -149,6 +167,8 @@ class RunQueueTests(unittest.TestCase):
'a1:populate_sysroot_setscene', 'a1:package_setscene']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
# Tests for problems with dependencies between setscene tasks
def test_no_setscenevalid_harddeps(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
@@ -162,6 +182,8 @@ class RunQueueTests(unittest.TestCase):
'd1:populate_sysroot', 'd1:build']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_no_setscenevalid_withdeps(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "b1"]
@@ -172,6 +194,8 @@ class RunQueueTests(unittest.TestCase):
expected.remove('a1:package_qa')
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_single_a1_setscenevalid_withdeps(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "b1"]
@@ -182,6 +206,8 @@ class RunQueueTests(unittest.TestCase):
'a1:populate_sysroot'] + ['b1:' + x for x in self.alltasks]
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_single_b1_setscenevalid_withdeps(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "b1"]
@@ -193,6 +219,8 @@ class RunQueueTests(unittest.TestCase):
expected.remove('b1:package')
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_intermediate_setscenevalid_withdeps(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "b1"]
@@ -203,6 +231,8 @@ class RunQueueTests(unittest.TestCase):
expected.remove('b1:package')
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_all_setscenevalid_withdeps(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
cmd = ["bitbake", "b1"]
@@ -213,6 +243,8 @@ class RunQueueTests(unittest.TestCase):
'b1:packagedata_setscene', 'b1:package_qa_setscene', 'b1:populate_sysroot_setscene']
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_multiconfig_setscene_optimise(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
@@ -232,6 +264,8 @@ class RunQueueTests(unittest.TestCase):
expected.remove(x)
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_multiconfig_bbmask(self):
# This test validates that multiconfigs can independently mask off
# recipes they do not want with BBMASK. It works by having recipes
@@ -248,6 +282,8 @@ class RunQueueTests(unittest.TestCase):
cmd = ["bitbake", "mc:mc-1:fails-mc2", "mc:mc_2:fails-mc1"]
self.run_bitbakecmd(cmd, tempdir, "", extraenv=extraenv)
+ self.shutdown(tempdir)
+
def test_multiconfig_mcdepends(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
@@ -278,6 +314,8 @@ class RunQueueTests(unittest.TestCase):
["mc_2:a1:%s" % t for t in rerun_tasks]
self.assertEqual(set(tasks), set(expected))
+ self.shutdown(tempdir)
+
def test_hashserv_single(self):
with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
extraenv = {
@@ -358,7 +396,6 @@ class RunQueueTests(unittest.TestCase):
def shutdown(self, tempdir):
# Wait for the hashserve socket to disappear else we'll see races with the tempdir cleanup
- while (os.path.exists(tempdir + "/hashserve.sock") or os.path.exists(tempdir + "cache/hashserv.db-wal")):
+ while (os.path.exists(tempdir + "/hashserve.sock") or os.path.exists(tempdir + "cache/hashserv.db-wal") or os.path.exists(tempdir + "/bitbake.lock")):
time.sleep(0.5)
-
diff --git a/poky/bitbake/lib/bb/ui/buildinfohelper.py b/poky/bitbake/lib/bb/ui/buildinfohelper.py
index 43aa592842..835e92c299 100644
--- a/poky/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/poky/bitbake/lib/bb/ui/buildinfohelper.py
@@ -483,11 +483,11 @@ class ORMWrapper(object):
# we already created the root directory, so ignore any
# entry for it
- if len(path) == 0:
+ if not path:
continue
parent_path = "/".join(path.split("/")[:len(path.split("/")) - 1])
- if len(parent_path) == 0:
+ if not parent_path:
parent_path = "/"
parent_obj = self._cached_get(Target_File, target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
tf_obj = Target_File.objects.create(
@@ -571,7 +571,7 @@ class ORMWrapper(object):
assert isinstance(build_obj, Build)
assert isinstance(target_obj, Target)
- errormsg = ""
+ errormsg = []
for p in packagedict:
# Search name swtiches round the installed name vs package name
# by default installed name == package name
@@ -633,10 +633,10 @@ class ORMWrapper(object):
packagefile_objects.append(Package_File( package = packagedict[p]['object'],
path = targetpath,
size = targetfilesize))
- if len(packagefile_objects):
+ if packagefile_objects:
Package_File.objects.bulk_create(packagefile_objects)
except KeyError as e:
- errormsg += " stpi: Key error, package %s key %s \n" % ( p, e )
+ errormsg.append(" stpi: Key error, package %s key %s \n" % (p, e))
# save disk installed size
packagedict[p]['object'].installed_size = packagedict[p]['size']
@@ -673,13 +673,13 @@ class ORMWrapper(object):
logger.warning("Could not add dependency to the package %s "
"because %s is an unknown package", p, px)
- if len(packagedeps_objs) > 0:
+ if packagedeps_objs:
Package_Dependency.objects.bulk_create(packagedeps_objs)
else:
logger.info("No package dependencies created")
- if len(errormsg) > 0:
- logger.warning("buildinfohelper: target_package_info could not identify recipes: \n%s", errormsg)
+ if errormsg:
+ logger.warning("buildinfohelper: target_package_info could not identify recipes: \n%s", "".join(errormsg))
def save_target_image_file_information(self, target_obj, file_name, file_size):
Target_Image_File.objects.create(target=target_obj,
@@ -767,7 +767,7 @@ class ORMWrapper(object):
packagefile_objects.append(Package_File( package = bp_object,
path = path,
size = package_info['FILES_INFO'][path] ))
- if len(packagefile_objects):
+ if packagefile_objects:
Package_File.objects.bulk_create(packagefile_objects)
def _po_byname(p):
@@ -809,7 +809,7 @@ class ORMWrapper(object):
packagedeps_objs.append(Package_Dependency( package = bp_object,
depends_on = _po_byname(p), dep_type = Package_Dependency.TYPE_RCONFLICTS))
- if len(packagedeps_objs) > 0:
+ if packagedeps_objs:
Package_Dependency.objects.bulk_create(packagedeps_objs)
return bp_object
@@ -826,7 +826,7 @@ class ORMWrapper(object):
desc = vardump[root_var]['doc']
if desc is None:
desc = ''
- if len(desc):
+ if desc:
HelpText.objects.get_or_create(build=build_obj,
area=HelpText.VARIABLE,
key=k, text=desc)
@@ -846,7 +846,7 @@ class ORMWrapper(object):
file_name = vh['file'],
line_number = vh['line'],
operation = vh['op']))
- if len(varhist_objects):
+ if varhist_objects:
VariableHistory.objects.bulk_create(varhist_objects)
@@ -1069,7 +1069,7 @@ class BuildInfoHelper(object):
for t in self.internal_state['targets']:
buildname = self.internal_state['build'].build_name
pe, pv = task_object.recipe.version.split(":",1)
- if len(pe) > 0:
+ if pe:
package = task_object.recipe.name + "-" + pe + "_" + pv
else:
package = task_object.recipe.name + "-" + pv
@@ -1404,7 +1404,7 @@ class BuildInfoHelper(object):
assert 'pn' in event._depgraph
assert 'tdepends' in event._depgraph
- errormsg = ""
+ errormsg = []
# save layer version priorities
if 'layer-priorities' in event._depgraph.keys():
@@ -1496,7 +1496,7 @@ class BuildInfoHelper(object):
elif dep in self.internal_state['recipes']:
dependency = self.internal_state['recipes'][dep]
else:
- errormsg += " stpd: KeyError saving recipe dependency for %s, %s \n" % (recipe, dep)
+ errormsg.append(" stpd: KeyError saving recipe dependency for %s, %s \n" % (recipe, dep))
continue
recipe_dep = Recipe_Dependency(recipe=target,
depends_on=dependency,
@@ -1537,8 +1537,8 @@ class BuildInfoHelper(object):
taskdeps_objects.append(Task_Dependency( task = target, depends_on = dep ))
Task_Dependency.objects.bulk_create(taskdeps_objects)
- if len(errormsg) > 0:
- logger.warning("buildinfohelper: dependency info not identify recipes: \n%s", errormsg)
+ if errormsg:
+ logger.warning("buildinfohelper: dependency info not identify recipes: \n%s", "".join(errormsg))
def store_build_package_information(self, event):
@@ -1618,7 +1618,7 @@ class BuildInfoHelper(object):
if 'backlog' in self.internal_state:
# if we have a backlog of events, do our best to save them here
- if len(self.internal_state['backlog']):
+ if self.internal_state['backlog']:
tempevent = self.internal_state['backlog'].pop()
logger.debug("buildinfohelper: Saving stored event %s "
% tempevent)
diff --git a/poky/bitbake/lib/bb/ui/uievent.py b/poky/bitbake/lib/bb/ui/uievent.py
index 8607d0523b..e19c770bc9 100644
--- a/poky/bitbake/lib/bb/ui/uievent.py
+++ b/poky/bitbake/lib/bb/ui/uievent.py
@@ -73,13 +73,13 @@ class BBUIEventQueue:
self.eventQueueLock.acquire()
- if len(self.eventQueue) == 0:
+ if not self.eventQueue:
self.eventQueueLock.release()
return None
item = self.eventQueue.pop(0)
- if len(self.eventQueue) == 0:
+ if not self.eventQueue:
self.eventQueueNotify.clear()
self.eventQueueLock.release()
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index 70634910f7..0312231933 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -16,7 +16,8 @@ import bb.msg
import multiprocessing
import fcntl
import importlib
-from importlib import machinery
+import importlib.machinery
+import importlib.util
import itertools
import subprocess
import glob
@@ -26,6 +27,7 @@ import errno
import signal
import collections
import copy
+import ctypes
from subprocess import getstatusoutput
from contextlib import contextmanager
from ctypes import cdll
@@ -451,6 +453,10 @@ def lockfile(name, shared=False, retry=True, block=False):
consider the possibility of sending a signal to the process to break
out - at which point you want block=True rather than retry=True.
"""
+ if len(name) > 255:
+ root, ext = os.path.splitext(name)
+ name = root[:255 - len(ext)] + ext
+
dirname = os.path.dirname(name)
mkdirhier(dirname)
@@ -487,7 +493,7 @@ def lockfile(name, shared=False, retry=True, block=False):
return lf
lf.close()
except OSError as e:
- if e.errno == errno.EACCES:
+ if e.errno == errno.EACCES or e.errno == errno.ENAMETOOLONG:
logger.error("Unable to acquire lock '%s', %s",
e.strerror, name)
sys.exit(1)
@@ -1590,6 +1596,36 @@ def set_process_name(name):
except:
pass
+def disable_network(uid=None, gid=None):
+ """
+ Disable networking in the current process if the kernel supports it, else
+ just return after logging to debug. To do this we need to create a new user
+ namespace, then map back to the original uid/gid.
+ """
+ libc = ctypes.CDLL('libc.so.6')
+
+ # From sched.h
+ # New user namespace
+ CLONE_NEWUSER = 0x10000000
+ # New network namespace
+ CLONE_NEWNET = 0x40000000
+
+ if uid is None:
+ uid = os.getuid()
+ if gid is None:
+ gid = os.getgid()
+
+ ret = libc.unshare(CLONE_NEWNET | CLONE_NEWUSER)
+ if ret != 0:
+ logger.debug("System doesn't suport disabling network without admin privs")
+ return
+ with open("/proc/self/uid_map", "w") as f:
+ f.write("%s %s 1" % (uid, uid))
+ with open("/proc/self/setgroups", "w") as f:
+ f.write("deny")
+ with open("/proc/self/gid_map", "w") as f:
+ f.write("%s %s 1" % (gid, gid))
+
def export_proxies(d):
""" export common proxies variables from datastore to environment """
import os
@@ -1616,7 +1652,9 @@ def load_plugins(logger, plugins, pluginpath):
logger.debug('Loading plugin %s' % name)
spec = importlib.machinery.PathFinder.find_spec(name, path=[pluginpath] )
if spec:
- return spec.loader.load_module()
+ mod = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(mod)
+ return mod
logger.debug('Loading plugins from %s...' % pluginpath)