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
diff --git a/poky/bitbake/lib/bb/build.py b/poky/bitbake/lib/bb/build.py
index d6418e4..65b7fc0 100644
--- a/poky/bitbake/lib/bb/build.py
+++ b/poky/bitbake/lib/bb/build.py
@@ -714,19 +714,23 @@
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 4e08c10..fcb1579 100644
--- a/poky/bitbake/lib/bb/cache.py
+++ b/poky/bitbake/lib/bb/cache.py
@@ -284,36 +284,15 @@
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 1d50a26..fb8a77f 100644
--- a/poky/bitbake/lib/bb/checksum.py
+++ b/poky/bitbake/lib/bb/checksum.py
@@ -50,6 +50,7 @@
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 @@
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 af794b4..08e45e7 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -388,12 +388,22 @@
# 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 @@
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 @@
# 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 @@
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 @@
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 ba657c0..397b43d 100644
--- a/poky/bitbake/lib/bb/cookerdata.py
+++ b/poky/bitbake/lib/bb/cookerdata.py
@@ -86,7 +86,7 @@
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 @@
#
# 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 @@
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 @@
" 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 c187fcf..40fabd0 100644
--- a/poky/bitbake/lib/bb/daemonize.py
+++ b/poky/bitbake/lib/bb/daemonize.py
@@ -74,26 +74,26 @@
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 9d18b1e..ee5557a 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -285,21 +285,19 @@
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 @@
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 @@
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 8d235da..543372d 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -492,7 +492,7 @@
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 @@
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 @@
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 0000000..67b787e
--- /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 666cc13..d371741 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -402,24 +402,24 @@
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 @@
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 @@
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 @@
# 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 @@
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 @@
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 @@
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 @@
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 npm
from . import npmsw
from . import az
+from . import crate
methods.append(local.Local())
methods.append(wget.Wget())
@@ -1951,3 +1963,4 @@
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 0000000..f7e2354
--- /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 e8ddf2c..30da8e9 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -142,6 +142,11 @@
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 @@
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 @@
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 @@
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 a7110a9..c5c23d52 100644
--- a/poky/bitbake/lib/bb/fetch2/gitsm.py
+++ b/poky/bitbake/lib/bb/fetch2/gitsm.py
@@ -163,7 +163,7 @@
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 3c41cb2..b3a3a44 100644
--- a/poky/bitbake/lib/bb/fetch2/npm.py
+++ b/poky/bitbake/lib/bb/fetch2/npm.py
@@ -72,7 +72,7 @@
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 426a139..879ba5d 100644
--- a/poky/bitbake/lib/bb/fetch2/npmsw.py
+++ b/poky/bitbake/lib/bb/fetch2/npmsw.py
@@ -88,7 +88,11 @@
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 @@
# 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 349891e..253cabc 100644
--- a/poky/bitbake/lib/bb/fetch2/wget.py
+++ b/poky/bitbake/lib/bb/fetch2/wget.py
@@ -112,7 +112,17 @@
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 @@
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 @@
# 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 743ea0d..31bcc8e 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -130,6 +130,10 @@
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 0834fe3..b895d5b 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_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 d5a1775..af5d804 100644
--- a/poky/bitbake/lib/bb/process.py
+++ b/poky/bitbake/lib/bb/process.py
@@ -60,7 +60,7 @@
"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 10511a0..8ae3fe8 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -385,7 +385,6 @@
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 @@
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 @@
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 @@
# 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 @@
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 @@
#
# 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 @@
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 @@
#
# 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 @@
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 @@
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 @@
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 @@
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 @@
# 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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
# worker must have died?
pass
- if len(self.failed_tids) != 0:
+ if self.failed_tids:
self.rq.state = runQueueFailed
return
@@ -1837,7 +1814,7 @@
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 @@
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 @@
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 @@
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 @@
# 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 @@
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 @@
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 @@
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 @@
# 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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
# 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 @@
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 @@
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 @@
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 @@
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 @@
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 8fdcc66..1636616 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -326,10 +326,10 @@
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 578ba5d..e0ec736 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -328,6 +328,8 @@
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 @@
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 @@
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 @@
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 47bad6d..7bfcdb8 100644
--- a/poky/bitbake/lib/bb/taskdata.py
+++ b/poky/bitbake/lib/bb/taskdata.py
@@ -451,12 +451,12 @@
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 0000000..4a1eb4d
--- /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 8ad1c85..ec7d83c 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -430,6 +430,12 @@
: "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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
@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 @@
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 @@
@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 @@
@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 @@
@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 @@
""" 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 @@
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 @@
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 @@
: "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 @@
# 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 @@
"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 @@
@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 @@
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 @@
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 @@
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 5b6ada8..35d5a84 100644
--- a/poky/bitbake/lib/bb/tests/runqueue.py
+++ b/poky/bitbake/lib/bb/tests/runqueue.py
@@ -29,9 +29,10 @@
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 @@
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 @@
'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 @@
'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 @@
'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 @@
'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 @@
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 @@
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 @@
'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 @@
'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 @@
'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 @@
'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 @@
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 @@
'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 @@
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 @@
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 @@
'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 @@
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 @@
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 @@
["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 @@
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 43aa592..835e92c 100644
--- a/poky/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/poky/bitbake/lib/bb/ui/buildinfohelper.py
@@ -483,11 +483,11 @@
# 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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 8607d05..e19c770 100644
--- a/poky/bitbake/lib/bb/ui/uievent.py
+++ b/poky/bitbake/lib/bb/ui/uievent.py
@@ -73,13 +73,13 @@
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 7063491..0312231 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -16,7 +16,8 @@
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 signal
import collections
import copy
+import ctypes
from subprocess import getstatusoutput
from contextlib import contextmanager
from ctypes import cdll
@@ -451,6 +453,10 @@
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 @@
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 @@
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 @@
logger.debug('Loading plugin %s' % name)
spec = importlib.machinery.PathFinder.find_spec(name, path=[pluginpath] )
if spec:
- return spec.loader.load_module()
+ mod = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(mod)
+ return mod
logger.debug('Loading plugins from %s...' % pluginpath)
diff --git a/poky/bitbake/lib/pyinotify.py b/poky/bitbake/lib/pyinotify.py
index 6ae40a2..8c94b3e 100644
--- a/poky/bitbake/lib/pyinotify.py
+++ b/poky/bitbake/lib/pyinotify.py
@@ -52,7 +52,6 @@
from datetime import datetime, timedelta
import time
import re
-import asyncore
import glob
import locale
import subprocess
@@ -1475,35 +1474,6 @@
self.loop()
-class AsyncNotifier(asyncore.file_dispatcher, Notifier):
- """
- This notifier inherits from asyncore.file_dispatcher in order to be able to
- use pyinotify along with the asyncore framework.
-
- """
- def __init__(self, watch_manager, default_proc_fun=None, read_freq=0,
- threshold=0, timeout=None, channel_map=None):
- """
- Initializes the async notifier. The only additional parameter is
- 'channel_map' which is the optional asyncore private map. See
- Notifier class for the meaning of the others parameters.
-
- """
- Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
- threshold, timeout)
- asyncore.file_dispatcher.__init__(self, self._fd, channel_map)
-
- def handle_read(self):
- """
- When asyncore tells us we can read from the fd, we proceed processing
- events. This method can be overridden for handling a notification
- differently.
-
- """
- self.read_events()
- self.process_events()
-
-
class TornadoAsyncNotifier(Notifier):
"""
Tornado ioloop adapter.