summaryrefslogtreecommitdiff
path: root/poky/bitbake
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
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')
-rwxr-xr-xpoky/bitbake/bin/bitbake-diffsigs4
-rwxr-xr-xpoky/bitbake/bin/bitbake-worker8
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst2
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst42
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst2
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst22
-rw-r--r--poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst138
-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
-rw-r--r--poky/bitbake/lib/pyinotify.py30
37 files changed, 863 insertions, 385 deletions
diff --git a/poky/bitbake/bin/bitbake-diffsigs b/poky/bitbake/bin/bitbake-diffsigs
index 6646dccdfa..cf4cc706a2 100755
--- a/poky/bitbake/bin/bitbake-diffsigs
+++ b/poky/bitbake/bin/bitbake-diffsigs
@@ -60,7 +60,7 @@ def find_siginfo_task(bbhandler, pn, taskname, sig1=None, sig2=None):
if sig1 and sig2:
sigfiles = find_siginfo(bbhandler, pn, taskname, [sig1, sig2])
- if len(sigfiles) == 0:
+ if not sigfiles:
logger.error('No sigdata files found matching %s %s matching either %s or %s' % (pn, taskname, sig1, sig2))
sys.exit(1)
elif not sig1 in sigfiles:
@@ -86,7 +86,7 @@ def recursecb(key, hash1, hash2):
hashfiles = find_siginfo(tinfoil, key, None, hashes)
recout = []
- if len(hashfiles) == 0:
+ if not hashfiles:
recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2))
elif not hash1 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash1))
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index bf96207edc..3aaf3c2444 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -152,6 +152,10 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
fakeenv = {}
umask = None
+ uid = os.getuid()
+ gid = os.getgid()
+
+
taskdep = workerdata["taskdeps"][fn]
if 'umask' in taskdep and taskname in taskdep['umask']:
umask = taskdep['umask'][taskname]
@@ -257,6 +261,10 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN"), taskname.replace("do_", "")))
+ if not the_data.getVarFlag(taskname, 'network', False):
+ logger.debug("Attempting to disable network")
+ bb.utils.disable_network(uid, gid)
+
# exported_vars() returns a generator which *cannot* be passed to os.environ.update()
# successfully. We also need to unset anything from the environment which shouldn't be there
exports = bb.data.exported_vars(the_data)
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
index a4b1efbe8b..7b37f6615a 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
@@ -435,7 +435,7 @@ BitBake writes a shell script to
executes the script. The generated shell script contains all the
exported variables, and the shell functions with all variables expanded.
Output from the shell script goes to the file
-``${T}/log.do_taskname.pid``. Looking at the expanded shell functions in
+``${``\ :term:`T`\ ``}/log.do_taskname.pid``. Looking at the expanded shell functions in
the run file and the output in the log files is a useful debugging
technique.
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
index 4396830a2f..77384cfdc7 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
@@ -84,18 +84,18 @@ fetcher does know how to use HTTP as a transport.
Here are some examples that show commonly used mirror definitions::
PREMIRRORS ?= "\
- bzr://.*/.\* http://somemirror.org/sources/ \\n \
- cvs://.*/.\* http://somemirror.org/sources/ \\n \
- git://.*/.\* http://somemirror.org/sources/ \\n \
- hg://.*/.\* http://somemirror.org/sources/ \\n \
- osc://.*/.\* http://somemirror.org/sources/ \\n \
- p4://.*/.\* http://somemirror.org/sources/ \\n \
- svn://.*/.\* http://somemirror.org/sources/ \\n"
+ bzr://.*/.\* http://somemirror.org/sources/ \
+ cvs://.*/.\* http://somemirror.org/sources/ \
+ git://.*/.\* http://somemirror.org/sources/ \
+ hg://.*/.\* http://somemirror.org/sources/ \
+ osc://.*/.\* http://somemirror.org/sources/ \
+ p4://.*/.\* http://somemirror.org/sources/ \
+ svn://.*/.\* http://somemirror.org/sources/"
MIRRORS =+ "\
- ftp://.*/.\* http://somemirror.org/sources/ \\n \
- http://.*/.\* http://somemirror.org/sources/ \\n \
- https://.*/.\* http://somemirror.org/sources/ \\n"
+ ftp://.*/.\* http://somemirror.org/sources/ \
+ http://.*/.\* http://somemirror.org/sources/ \
+ https://.*/.\* http://somemirror.org/sources/"
It is useful to note that BitBake
supports cross-URLs. It is possible to mirror a Git repository on an
@@ -167,6 +167,9 @@ govern the behavior of the unpack stage:
- *dos:* Applies to ``.zip`` and ``.jar`` files and specifies whether
to use DOS line ending conversion on text files.
+- *striplevel:* Strip specified number of leading components (levels)
+ from file names on extraction
+
- *subdir:* Unpacks the specific URL to the specified subdirectory
within the root directory.
@@ -226,6 +229,11 @@ downloaded file is useful for avoiding collisions in
:term:`DL_DIR` when dealing with multiple files that
have the same name.
+If a username and password are specified in the ``SRC_URI``, a Basic
+Authorization header will be added to each request, including across redirects.
+To instead limit the Authorization header to the first request, add
+"redirectauth=0" to the list of parameters.
+
Some example URLs are as follows::
SRC_URI = "http://oe.handhelds.org/not_there.aac"
@@ -388,6 +396,19 @@ This fetcher supports the following parameters:
protocol is "file". You can also use "http", "https", "ssh" and
"rsync".
+ .. note::
+
+ When ``protocol`` is "ssh", the URL expected in :term:`SRC_URI` differs
+ from the one that is typically passed to ``git clone`` command and provided
+ by the Git server to fetch from. For example, the URL returned by GitLab
+ server for ``mesa`` when cloning over SSH is
+ ``git@gitlab.freedesktop.org:mesa/mesa.git``, however the expected URL in
+ :term:`SRC_URI` is the following::
+
+ SRC_URI = "git://git@gitlab.freedesktop.org/mesa/mesa.git;protocol=ssh;..."
+
+ Note the ``:`` character changed for a ``/`` before the path to the project.
+
- *"nocheckout":* Tells the fetcher to not checkout source code when
unpacking when set to "1". Set this option for the URL where there is
a custom routine to checkout code. The default is "0".
@@ -438,6 +459,7 @@ Here are some example URLs::
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
+ SRC_URI = "git://git@gitlab.freedesktop.org/mesa/mesa.git;protocol=ssh;..."
.. note::
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
index 42263cef3a..1c31c1f9e8 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.rst
@@ -537,7 +537,7 @@ current working directory:
- ``pn-buildlist``: Shows a simple list of targets that are to be
built.
-To stop depending on common depends, use the "-I" depend option and
+To stop depending on common depends, use the ``-I`` depend option and
BitBake omits them from the graph. Leaving this information out can
produce more readable graphs. This way, you can remove from the graph
:term:`DEPENDS` from inherited classes such as ``base.bbclass``.
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
index 119720d527..8496e1da53 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
@@ -104,15 +104,15 @@ Line Joining
Outside of :ref:`functions <bitbake-user-manual/bitbake-user-manual-metadata:functions>`,
BitBake joins any line ending in
-a backslash character ("\") with the following line before parsing
-statements. The most common use for the "\" character is to split
+a backslash character ("\\") with the following line before parsing
+statements. The most common use for the "\\" character is to split
variable assignments over multiple lines, as in the following example::
FOO = "bar \
baz \
qaz"
-Both the "\" character and the newline
+Both the "\\" character and the newline
character that follow it are removed when joining lines. Thus, no
newline characters end up in the value of ``FOO``.
@@ -125,7 +125,7 @@ Consider this additional example where the two assignments both assign
.. note::
- BitBake does not interpret escape sequences like "\n" in variable
+ BitBake does not interpret escape sequences like "\\n" in variable
values. For these to have an effect, the value must be passed to some
utility that interprets escape sequences, such as
``printf`` or ``echo -n``.
@@ -159,7 +159,7 @@ behavior::
C = "qux"
*At this point, ${A} equals "qux bar baz"*
B = "norf"
- *At this point, ${A} equals "norf baz"\*
+ *At this point, ${A} equals "norf baz"*
Contrast this behavior with the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:immediate variable
@@ -894,7 +894,7 @@ Regardless of the type of function, you can only define them in class
Shell Functions
---------------
-Functions written in shell script and executed either directly as
+Functions written in shell script are executed either directly as
functions, tasks, or both. They can also be called by other shell
functions. Here is an example shell function definition::
@@ -944,7 +944,7 @@ Running ``do_foo`` prints the following::
Overrides and override-style operators can be applied to any shell
function, not just :ref:`tasks <bitbake-user-manual/bitbake-user-manual-metadata:tasks>`.
-You can use the ``bitbake -e`` recipename command to view the final
+You can use the ``bitbake -e recipename`` command to view the final
assembled function after all overrides have been applied.
BitBake-Style Python Functions
@@ -996,7 +996,7 @@ Running ``do_foo`` prints the following::
recipename do_foo: second
recipename do_foo: third
-You can use the ``bitbake -e`` recipename command to view
+You can use the ``bitbake -e recipename`` command to view
the final assembled function after all overrides have been applied.
Python Functions
@@ -1921,12 +1921,6 @@ The following list describes related variables:
Specifies a function BitBake calls that determines whether BitBake
requires a setscene dependency to be met.
-- :term:`BB_STAMP_POLICY`: Defines the mode
- for comparing timestamps of stamp files.
-
-- :term:`BB_STAMP_WHITELIST`: Lists stamp
- files that are looked at when the stamp policy is "whitelist".
-
- :term:`BB_TASKHASH`: Within an executing task,
this variable holds the hash of the task as returned by the currently
enabled signature generator.
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
index e955beb130..1bb55fc501 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
@@ -374,12 +374,35 @@ overview of their function and contents.
Specifies the Hash Equivalence server to use.
If set to ``auto``, BitBake automatically starts its own server
- over a UNIX domain socket.
+ over a UNIX domain socket. An option is to connect this server
+ to an upstream one, by setting :term:`BB_HASHSERVE_UPSTREAM`.
- If set to ``host:port``, BitBake will use a remote server on the
+ If set to ``unix://path``, BitBake will connect to an existing
+ hash server available over a UNIX domain socket.
+
+ If set to ``host:port``, BitBake will connect to a remote server on the
specified host. This allows multiple clients to share the same
hash equivalence data.
+ The remote server can be started manually through
+ the ``bin/bitbake-hashserv`` script provided by BitBake,
+ which supports UNIX domain sockets too. This script also allows
+ to start the server in read-only mode, to avoid accepting
+ equivalences that correspond to Share State caches that are
+ only available on specific clients.
+
+ :term:`BB_HASHSERVE_UPSTREAM`
+ Specifies an upstream Hash Equivalence server.
+
+ This optional setting is only useful when a local Hash Equivalence
+ server is started (setting :term:`BB_HASHSERVE` to ``auto``),
+ and you wish the local server to query an upstream server for
+ Hash Equivalence data.
+
+ Example usage::
+
+ BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687"
+
:term:`BB_INVALIDCONF`
Used in combination with the ``ConfigParsed`` event to trigger
re-parsing the base metadata (i.e. all the recipes). The
@@ -526,29 +549,6 @@ overview of their function and contents.
- *clear* - Queries the source controls system every time. With this
policy, there is no cache. The "clear" policy is the default.
- :term:`BB_STAMP_POLICY`
- Defines the mode used for how timestamps of stamp files are compared.
- You can set the variable to one of the following modes:
-
- - *perfile* - Timestamp comparisons are only made between timestamps
- of a specific recipe. This is the default mode.
-
- - *full* - Timestamp comparisons are made for all dependencies.
-
- - *whitelist* - Identical to "full" mode except timestamp
- comparisons are made for recipes listed in the
- :term:`BB_STAMP_WHITELIST` variable.
-
- .. note::
-
- Stamp policies are largely obsolete with the introduction of
- setscene tasks.
-
- :term:`BB_STAMP_WHITELIST`
- Lists files whose stamp file timestamps are compared when the stamp
- policy mode is set to "whitelist". For information on stamp policies,
- see the :term:`BB_STAMP_POLICY` variable.
-
:term:`BB_STRICT_CHECKSUM`
Sets a more strict checksum mechanism for non-local URLs. Setting
this variable to a value causes BitBake to report an error if it
@@ -1333,67 +1333,103 @@ overview of their function and contents.
The list of source files - local or remote. This variable tells
BitBake which bits to pull for the build and how to pull them. For
example, if the recipe or append file needs to fetch a single tarball
- from the Internet, the recipe or append file uses a :term:`SRC_URI` entry
- that specifies that tarball. On the other hand, if the recipe or
- append file needs to fetch a tarball and include a custom file, the
- recipe or append file needs an :term:`SRC_URI` variable that specifies
- all those sources.
-
- The following list explains the available URI protocols:
+ from the Internet, the recipe or append file uses a :term:`SRC_URI`
+ entry that specifies that tarball. On the other hand, if the recipe or
+ append file needs to fetch a tarball, apply two patches, and include
+ a custom file, the recipe or append file needs an :term:`SRC_URI`
+ variable that specifies all those sources.
+
+ The following list explains the available URI protocols. URI
+ protocols are highly dependent on particular BitBake Fetcher
+ submodules. Depending on the fetcher BitBake uses, various URL
+ parameters are employed. For specifics on the supported Fetchers, see
+ the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:fetchers`
+ section.
- - ``file://`` : Fetches files, which are usually files shipped
- with the metadata, from the local machine. The path is relative to
- the :term:`FILESPATH` variable.
+ - ``az://`` : Fetches files from an Azure Storage account using HTTPS.
- ``bzr://`` : Fetches files from a Bazaar revision control
repository.
- - ``git://`` : Fetches files from a Git revision control
+ - ``ccrc://`` - Fetches files from a ClearCase repository.
+
+ - ``cvs://`` : Fetches files from a CVS revision control
repository.
- - ``osc://`` : Fetches files from an OSC (OpenSUSE Build service)
- revision control repository.
+ - ``file://`` - Fetches files, which are usually files shipped
+ with the Metadata, from the local machine.
+ The path is relative to the :term:`FILESPATH`
+ variable. Thus, the build system searches, in order, from the
+ following directories, which are assumed to be a subdirectories of
+ the directory in which the recipe file (``.bb``) or append file
+ (``.bbappend``) resides:
- - ``repo://`` : Fetches files from a repo (Git) repository.
+ - ``${BPN}`` - The base recipe name without any special suffix
+ or version numbers.
- - ``http://`` : Fetches files from the Internet using HTTP.
+ - ``${BP}`` - ``${BPN}-${PV}``. The base recipe name and
+ version but without any special package name suffix.
- - ``https://`` : Fetches files from the Internet using HTTPS.
+ - *files -* Files within a directory, which is named ``files``
+ and is also alongside the recipe or append file.
- ``ftp://`` : Fetches files from the Internet using FTP.
- - ``cvs://`` : Fetches files from a CVS revision control
+ - ``git://`` : Fetches files from a Git revision control
+ repository.
+
+ - ``gitsm://`` : Fetches submodules from a Git revision control
repository.
- ``hg://`` : Fetches files from a Mercurial (``hg``) revision
control repository.
+ - ``http://`` : Fetches files from the Internet using HTTP.
+
+ - ``https://`` : Fetches files from the Internet using HTTPS.
+
+ - ``npm://`` - Fetches JavaScript modules from a registry.
+
+ - ``osc://`` : Fetches files from an OSC (OpenSUSE Build service)
+ revision control repository.
+
- ``p4://`` : Fetches files from a Perforce (``p4``) revision
control repository.
+ - ``repo://`` : Fetches files from a repo (Git) repository.
+
- ``ssh://`` : Fetches files from a secure shell.
- ``svn://`` : Fetches files from a Subversion (``svn``) revision
control repository.
- - ``az://`` : Fetches files from an Azure Storage account using HTTPS.
-
Here are some additional options worth mentioning:
- - ``unpack`` : Controls whether or not to unpack the file if it is
- an archive. The default action is to unpack the file.
+ - ``downloadfilename`` : Specifies the filename used when storing
+ the downloaded file.
+
+ - ``name`` - Specifies a name to be used for association with
+ :term:`SRC_URI` checksums or :term:`SRCREV` when you have more than one
+ file or git repository specified in :term:`SRC_URI`. For example::
+
+ SRC_URI = "git://example.com/foo.git;name=first \
+ git://example.com/bar.git;name=second \
+ http://example.com/file.tar.gz;name=third"
+
+ SRCREV_first = "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15"
+ SRCREV_second = "e242ed3bffccdf271b7fbaf34ed72d089537b42f"
+ SRC_URI[third.sha256sum] = "13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de"
- ``subdir`` : Places the file (or extracts its contents) into the
specified subdirectory. This option is useful for unusual tarballs
or other archives that do not have their files already in a
subdirectory within the archive.
- - ``name`` : Specifies a name to be used for association with
- :term:`SRC_URI` checksums when you have more than one file specified
- in :term:`SRC_URI`.
+ - ``subpath`` - Limits the checkout to a specific subpath of the
+ tree when using the Git fetcher is used.
- - ``downloadfilename`` : Specifies the filename used when storing
- the downloaded file.
+ - ``unpack`` : Controls whether or not to unpack the file if it is
+ an archive. The default action is to unpack the file.
:term:`SRCDATE`
The date of the source code used to build the package. This variable
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)
diff --git a/poky/bitbake/lib/pyinotify.py b/poky/bitbake/lib/pyinotify.py
index 6ae40a2d76..8c94b3e334 100644
--- a/poky/bitbake/lib/pyinotify.py
+++ b/poky/bitbake/lib/pyinotify.py
@@ -52,7 +52,6 @@ from collections import deque
from datetime import datetime, timedelta
import time
import re
-import asyncore
import glob
import locale
import subprocess
@@ -1475,35 +1474,6 @@ class ThreadedNotifier(threading.Thread, Notifier):
self.loop()
-class AsyncNotifier(asyncore.file_dispatcher, Notifier):
- """
- This notifier inherits from asyncore.file_dispatcher in order to be able to
- use pyinotify along with the asyncore framework.
-
- """
- def __init__(self, watch_manager, default_proc_fun=None, read_freq=0,
- threshold=0, timeout=None, channel_map=None):
- """
- Initializes the async notifier. The only additional parameter is
- 'channel_map' which is the optional asyncore private map. See
- Notifier class for the meaning of the others parameters.
-
- """
- Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
- threshold, timeout)
- asyncore.file_dispatcher.__init__(self, self._fd, channel_map)
-
- def handle_read(self):
- """
- When asyncore tells us we can read from the fd, we proceed processing
- events. This method can be overridden for handling a notification
- differently.
-
- """
- self.read_events()
- self.process_events()
-
-
class TornadoAsyncNotifier(Notifier):
"""
Tornado ioloop adapter.