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