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