diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2023-03-03 21:41:14 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2023-03-17 01:04:34 +0300 |
commit | 6aa7eec5002756f5398774a35fb9d985e15a4573 (patch) | |
tree | e183e1e35404e51cc1f889b603e3500594ce09f6 /poky/bitbake | |
parent | 9347dd4efc156c93b1d9beaeb32e9b719ad6a3d2 (diff) | |
download | openbmc-6aa7eec5002756f5398774a35fb9d985e15a4573.tar.xz |
subtree updates: openembedded poky
poky: aa6cd06a9f..fb1853c66c:
Adrian Freihofer (1):
bblayers/setupwriters/oe-setup-layers: create dir if not exists
Alexander Kanavin (48):
bblayers/makesetup: skip git repos that are submodules
scripts/oe-setup-layers: print a note about submodules if present
go: update 1.19.4 -> 1.20
go-cross-canadian: use gcc-crosssdk, not gcc-native
vim: update 9.0.1211 -> 9.0.1293 to resolve open CVEs
gstreamer1.0: update 1.20.5 -> 1.22.0
mesa: update 22.3.3 -> 22.3.5
meta/conf: move default configuration templates into meta/conf/templates/default
scripts/oe-setup-layers: correct variable names - layers should be called repos
scripts/oe-setup-layers: do not clobber json module with a variable named 'json'
gcr: enable vala .vapi generation only when gobject introspection is also enabled
gstreamer1.0-python: do not require introspection during builds
go: update 1.20 -> 1.20.1
rust: update 1.67.0 -> 1.67.1
freetype: update 2.12.1 -> 2.13.0
gnutls: update 3.7.8 -> 3.8.0
vulkan-samples: update to latest revision
gnu-config: update to latest revision
puzzles: upgrade to latest revision
python3: upgrade 3.11.1 -> 3.11.2
nghttp2: upgrade 1.51.0 -> 1.52.0
log4cplus: upgrade 2.0.8 -> 2.1.0
dos2unix: upgrade 7.4.3 -> 7.4.4
webkitgtk: upgrade 2.38.4 -> 2.38.5
man-pages: upgrade 6.02 -> 6.03
util-macros: upgrade 1.19.3 -> 1.20.0
dpkg: upgrade 1.21.19 -> 1.21.20
ruby: upgrade 3.2.0 -> 3.2.1
libwpe: upgrade 1.14.0 -> 1.14.1
vala: upgrade 0.56.3 -> 0.56.4
dbus: upgrade 1.14.4 -> 1.14.6
linux-firmware: upgrade 20230117 -> 20230210
zstd: upgrade 1.5.2 -> 1.5.4
python3-setuptools: upgrade 67.2.0 -> 67.3.1
mmc-utils: upgrade to latest revision
harfbuzz: upgrade 6.0.0 -> 7.0.0
libhandy: upgrade 1.8.0 -> 1.8.1
diffoscope: upgrade 234 -> 235
wireless-regdb: upgrade 2022.08.12 -> 2023.02.13
libcap: upgrade 2.66 -> 2.67
e2fsprogs: upgrade 1.46.5 -> 1.47.0
git: upgrade 2.39.1 -> 2.39.2
piglit: upgrade to latest revision
python3-hatchling: upgrade 1.12.2 -> 1.13.0
devtool: ignore patch-fuzz errors when extracting source
gcr: correctly configure vala against introspection data
selftest: do not check for dri.pc in the headless test
scripts/runqemu: move render nodes check to runqemu from selftest
Alexis Lothoré (8):
oeqa/selftest/resulttooltests: fix minor typo
scripts/oe-selftest: append metadata to tests results
scripts/resulttool/regression: remove unused import
scripts/resulttool/regression: add metadata filtering for oeselftest
scripts: add new helper for regression report generation
oeqa/selftest: add test for yocto_testresults_query.py
scripts/yoct_testresults_query: manage base/target revision not found
oeqa/selftest/resulttool: add test for metadata filtering on regression
Bruce Ashfield (11):
linux-yocto/5.19: drop recipes
yocto-bsps: remove 5.19 bbappend
lttng-modules: fix for kernel 6.2+
linux-yocto-rt/6.1: fix compilation issue with per cpu stats
linux-yocto-dev: bump to v6.2
linux-yocto/6.1: update to v6.1.12
linux-yocto/5.15: update to v5.15.94
linux-yocto/6.1: update to v6.1.14
linux-yocto/5.15: update to v5.15.96
linux-yocto-rt/6.1: update to -rt7
linux-yocto-rt/5.15: update to -rt59
Caner Altinbasak (1):
bitbake: fetch2: Add GIT_CACHE_PATH and SSL_CERT_DIR into FETCH_EXPORT_VARS
Chee Yang Lee (2):
tar: Fix CVE-2022-48303
checklayer: check for patch file upstream status
Chen Qi (1):
gpgme: fix python setuptools invalid version issue
Denys Zagorui (1):
kernel-devsrc: powerpc: add missed dependency for modules_prepare
Dmitry Baryshkov (4):
linux-firmware: properly set license for all Qualcomm firmware
linux-firmware: add yamato fw files to qcom-adreno-a2xx package
mesa: provide support for packing development and testing tools
ffmpeg: fix build failure when vulkan is enabled
Fawzi KHABER (1):
ref-manual: update DEV_PKG_DEPENDENCY in variables
Federico Pellegrin (1):
curl: fix dependencies when building with ldap/ldaps
Geoffrey GIRY (1):
cve-extra-exclusions: ignore inapplicable linux-yocto CVEs
Joe Slater (1):
tar: Update fix for CVE-2022-48303 to upstream version
Joel Stanley (1):
qemu: Fix building with 6.2 kernel headers
Jose Quaresma (2):
bluez5: refresh patches with devtool
icecc: enable the network only when ICECC_DISABLED is not set
Joshua Watt (4):
classes/populate_sdk_base: Append cleandirs
classes/create-sdpx-2.2: Remove image SPDX and index from deploydir
classes/create-spdx-2.2: Report downloads as separate packages
weston: Add kiosk shell
Kai Kang (2):
xserver-xorg: 21.1.6 -> 21.1.7
webkitgtk: 2.38.3 -> 2.38.4
Khem Raj (12):
unfs3: Add missing header files
stress-ng: Add missing header files for clock_adjtime
gstreamer1.0-plugins-good: Fix build with musl
elfutils: Backport fix for DW_TAG_unspecified_type handling
tune-riscv.inc: Add riscv64nc to available tunes list
grub: Handle R_RISCV_CALL_PLT reloc
gdb: Upgrade to 13.1
musl: Update to tip of trunk
kernel: Add kernel specific OBJDUMP
opensbi: Do not add dependencies if RISCV_SBI_FDT is not set
opensbi: Upgrade to 1.2 release
vte: Fix -Wenum-constexpr-conversion warning
Lee Chee Yang (1):
migration-guides: add release-notes for 4.0.7
Luca Boccassi (1):
systemd: add user for systemd-oomd if enabled
Marek Vasut (1):
systemd-systemctl: Create machine-id with "uninitialized" text in it
Mark Asselstine (1):
bitbake: fetch/npmsw: add more short forms for git operations
Markus Volk (3):
graphene: add a PACKAGECONFIG for arm_neon
libportal: allow to build without gtk4 backend
libsdl2: add missing libdecor RDEPEND
Martin Jansa (3):
python3-numpy: upgrade to 1.24.2
insane.bbclass: use 4 spaces for indentation
insane.bbclass: move Upstream-Status logic to oe.qa
Mateusz Marciniec (1):
sstatesig: Improve output hash calculation
Michael Opdenacker (17):
migration-guides/migration-4.2.rst: fix minor issues
ref-manual: variables.rst: fix broken hyperlink
profile-manual: update WireShark hyperlinks
manuals: replace unnecessary uses of 'yocto_docs' by internal references
bsp-guide: fix broken git URLs and missing word
ref-manual: improve "devtool check-upgrade-status" explanations
ref-manual: document Rust classes
manuals: update patchwork instance URL
ref-manual: classes.rst: add python-setuptools3_rust and python_pyo3 classes
dev-manual: new-recipe.rst: restructure examples
ref-manual: classes.rst: improvements to cmake class documentation
ref-manual: document meson class and variables
dev-manual: sbom.rst: add link to FOSDEM 2023 video
manuals: document COMMERCIAL_[AUDIO|VIDEO]_PLUGINS variables
ref-manual: system-requirements.rst: update supported distros
dev-manual: new-recipe.rst: add Meson example recipe
dev-manual: new-recipe.rst: add references to subsections in Examples section
Mike Crowe (1):
bitbake: gitsm: Fix path construction for relative submodule URI
Mikko Rapeli (8):
oeqa ssh.py: move output prints to new line
oeqa ssh.py: add connection keep alive options to ssh client
oeqa dump.py: add error counter and stop after 5 failures
oeqa qemurunner: read more data at a time from serial
oeqa qemurunner.py: add timeout to QMP calls
oeqa qemurunner.py: try to avoid reading one character at a time
oeqa ssh.py: fix hangs in run()
runqemu: kill qemu if it hangs
Mingli Yu (1):
mc: set ac_cv_path_PERL_FOR_BUILD
Narpat Mali (1):
libseccomp: fix for the ptest result format
Niko Mauno (1):
ref-manual: Fix invalid feature name
Paulo Neves (4):
bitbake: tests/fetch: git-lfs restore _find_git_lfs
bitbake: tests/fetch: Add real git lfs tests and decorator
bitbake: fetch/git: Removed unused variables in _contains_lfs
bitbake: fetch/git: Replace mkdtemp with TemporaryDirectory and avoid exception masking
Pavel Zhukov (4):
wic: Fix usage of fstype=none in wic
u-boot: Map arm64 into map for u-boot dts installation
wic: Fix populating of IMAGE_EFI_BOOT_FILES with uefi-kernel
oeqa/selftest/wic: Add test for uefi-kernel loader
Pedro Baptista (3):
bitbake: action.py: add topdir in bblayers_conf path for add-layer
bitbake: action.py: add topdir in bblayers_conf path for remove-layer
create.py: add command arg to add layer to bblayers.conf
Peter Kjellerstedt (1):
devshell: Do not add scripts/git-intercept to PATH
Peter Marko (1):
systemd: add group sgx to udev package
Petr Kubizňák (1):
graphene: remove introspection from PACKAGECONFIG
Richard Elberger (2):
docbook-xml: Switch from debian packages to upstream docbook sources
bitbake: documentation: bitbake: add file-checksums to varflags section
Richard Leitner (1):
ref-manual: variables: FIT_KERNEL_COMP_ALG: add lzo
Richard Purdie (20):
bitbake: cookerdata: Remove incorrect SystemExit usage
libssh2: Clean up ptest patch/coverage
bitbake: data: Evaluate the value of export/unexport/network flags
poky.conf: Update SANITY_TESTED_DISTROS to match autobuilder
bitbake: cookerdata: Improve early exception handling
bitbake: cookerdata: Drop dubious exception handling code
bitbake: runqueue: Drop SystemExit usage
bitbake: cooker: Ensure lock is held with changing notifier
bitbake: server/process: Improve idle thread exception handling
bitbake: event/cooker/runqueue: Add ability to interrupt longer running code
bitbake: bitbake: Bump to version 2.3.1
sstate: Add check_for_interrupts() call functionality added in bitbake
binutils: Fix nativesdk ld.so search
oeqa/selftest/prservice: Improve debug output for failure
bitbake: cooker: Fix memory resident cache invalidation issue
bitbake: fetch2/wget: Drop unused import
bitbake: utils: Use internal fetcher function to avoid duplication
resulttool/regression: Ensure LTP results are only compared against other LTP runs
resulttool/regression: Improve matching of poor ptest test names
build-appliance-image: Update to master head revision
Robert Joslyn (1):
curl: Update 7.87.0 to 7.88.0
Ross Burton (17):
lib/buildstats: handle tasks that never finished
cml1: remove redundant addtask
bitbake: fetch2/wget: clean up netrc usage
libcgroup: clean up musl DEPENDS
pkgconfig: use system glib for nativesdk builds
site: remove glib site values
less: backport the fix for CVE-2022-46663
tiff: backport fix for CVE-2022-48281
python3-atomicwrites: add BBCLASSEXTEND
python3-iniconfig: add BBCLASSEXTEND
python3-pytest: set RDEPENDS globally, not just target
bitbake: lib/bb/siggen: fix debug() call
ptest-runner: add non-root ptest user for tests to run as
meta-selftest/files: add ptest to static-passwd/-group
quilt: run tests as ptest user, and let that user write into the tests
glibc: add ignore for CVE-2023-25139
glibc: remove obsolete CVE ignores
Saul Wold (2):
busybox: Fix depmod patch
create-spdx-2.2: Add support for custom Annotations
Siddharth Doshi (1):
openssl: Upgrade 3.0.7 -> 3.0.8
Tim Orling (7):
python3-hypothesis: upgrade 6.66.0 -> 6.68.1
python3-typing-extensions: upgrade 4.4.0 -> 4.5.0
python3-cryptography{-vectors}: 39.0.0 -> 39.0.1
python3-more-itertools: upgrade 9.0.0 -> 9.1.0
python3-zipp: upgrade 3.14.0 -> 3.15.0
python3-hypothesis: upgrade 6.68.1 -> 6.68.2
python3-babel: upgrade 2.11.0 -> 2.12.1
Trevor Woerner (12):
packagegroup-self-hosted: alphabetize
packagegroup-self-hosted: add zstd
build-appliance-image: set TERM
build-appliance-image kernel: linux-yocto: qemuall: add taskstats
build-appliance-image: add /lib64 symlink
build-appliance-image: QB_MEM: allow user config
QB_SMP: allow user modification
build-appliance-image: check for xattr feature
dtc: update DESCRIPTION
dtc: update license checks
build-appliance-image: fix HOMEPAGE
VOLATILE_TMP_DIR: add
Ulrich Ölmann (5):
dev-manual: fix old override syntax
kernel-yocto: fix kernel-meta data detection
kernel-dev,ref-manual: fix old override syntax
ref-manual: refer to MACHINE variable instead of KMACHINE
kernel-dev: harmonize example with ref-manual
Wang Mingyu (21):
libdrm: upgrade 2.4.114 -> 2.4.115
libjpeg-turbo: upgrade 2.1.5 -> 2.1.5.1
libsdl2: upgrade 2.26.2 -> 2.26.3
lighttpd: upgrade 1.4.68 -> 1.4.69
openssh: upgrade 9.1p1 -> 9.2p1
python3-sphinx-rtd-theme: upgrade 1.1.1 -> 1.2.0
python3-zipp: upgrade 3.12.0 -> 3.13.0
xkeyboard-config: upgrade 2.37 -> 2.38
xwayland: upgrade 22.1.7 -> 22.1.8
libx11: 1.8.3 -> 1.8.4
dtc: upgrade 1.6.1 -> 1.7.0
liburcu: upgrade 0.13.2 -> 0.14.0
curl: upgrade 7.88.0 -> 7.88.1
harfbuzz: upgrade 7.0.0 -> 7.0.1
libx11-compose-data: 1.8.3 -> 1.8.4
python3-pip: update 23.0 -> 23.0.1
python3-poetry-core: upgrade 1.5.0 -> 1.5.1
python3-pytest-subtests: upgrade 0.9.0 -> 0.10.0
python3-zipp: upgrade 3.13.0 -> 3.14.0
python3-setuptools: upgrade 67.3.1 -> 67.3.3
diffoscope: upgrade 235 -> 236
Xiangyu Chen (1):
dhcpcd: fix dhcpcd start failure on qemuppc64
Yash Shinde (1):
glibc: stable 2.37 branch updates.
Yi Zhao (1):
glibc: unify wordsize.h between arm and aarch64
leimaohui (2):
gnutls: Updated ther patch which fixes build error for fips enabled.
nghttp2: Deleted the entries for -client and -server, and removed a dependency on them from the main package.
yanxk (1):
cpio: Add ptest support
meta-openembedded: cba6df61c7..a9b2d1303b:
Alex Kiernan (1):
ostree: Upgrade 2022.7 -> 2023.1
Arash Partow (1):
ExprTk: Update package to release/0.0.2
Archana Polampalli (1):
Nodejs: fix buildpaths warning
Bartosz Golaszewski (5):
libgpiod: update to v1.6.4
libgpiod: add a recipe for libgpiod v2.0-rc2
python3-gpiod: new package
libgpiod: bump version to v2.0-rc3
python3-gpiod: bump version to v2.0-rc3
Catalin Enache (1):
plocate: add recipe
Changqing Li (1):
liblockfile: fix do_install failure when ldconfig is not installed
Chee Yang Lee (2):
tinyproxy: fix CVE-2022-40468
tmux: update to tmux_3.3a
Chen Qi (1):
nodejs: add CVE_PRODUCT
Cook, Samuel (1):
python-systemd: update from v234 to v235
Craig Comstock (1):
cfengine: upgrade to 3.21.0
Denys Dmytriyenko (2):
lmbench: set up /usr/bin/hello as alternative
mbedtls: set up /usr/bin/hello as alternative
Fabio Estevam (2):
spice-gtk: Update to version 0.42
glmark2: Update to 2023.01
Jan Luebbe (5):
add signing.bbclass as infrastructure for build artifact signing
smemstat: add recipe
linux-serial-test: add recipe
atftp: upgrade from 0.7.5 to 0.8.0
atftp: use https for git repository access
Joe Slater (1):
phoronix-test-suite: fix CVE-2022-40704
Joshua Watt (2):
libvpx: Explicitly link with pthread support
libvpx: Enable native support
Khem Raj (7):
python3-cson: Make PEP440 compatible version scheme
python3-grpcio: Add missing include for close/open APIs
graphene: Delete recipe
glog: Link with libatomics on mips.
glog: Fix build with clang on 32bit platforms
networkmanager: Fix build with musl
liburing: Update to latest tip of tree
Lei Maohui (1):
libiodbc: Fix install conflict when enable multilib.
Marek Vasut (1):
v4l-utils: Update 1.23.0+fd544473 -> 1.23.0+9431e4b2
Markus Volk (10):
iwd: update 2.0 -> 2.3
libdeflate: add recipe
pipewire-media-session: update 0.4.1 -> 0.4.2
gnome-software: update 43.2 -> 43.4
fwupd: fix polkit rules.d permissions
pipewire: update 0.3.65 -> 0.3.66
appstream: update 0.15.5 -> 0.16.1
flatpak: update 1.15.1 -> 1.15.3
gparted: update 1.4.0 -> 1.5.0
webp-pixbuf-loader: update 0.0.7 -> 0.2.0
Martin Jansa (4):
nodejs: fix do_install failure with 'shared' PACKAGECONFIG
nodejs: add Upstream-Status
openhpi, uw-imag, python3-m2crypto: replace Unknown Upstream-Status with Pending
.patch: fix Upstream-Status formatting issues reported by patchreview tool from oe-core
Michael Haener (1):
usb-modeswitch: update 2.6.0 -> 2.6.1
Michael Opdenacker (1):
ipcalc: update to 1.0.2
Mingli Yu (2):
opencv: disable intel IPP
mariadb: Upgrade to 10.11.2
Narpat Mali (1):
net-snmp: CVE-2022-44792 & CVE-2022-44793 Fix NULL Pointer Exception
Pablo Saavedra (1):
graphene: disable neon support on arm 32bits
Petr Gotthard (5):
libqmi: upgrade 1.30.8 -> 1.32.2
libmbim: upgrade 1.26.4 -> 1.28.2
modemmanager: upgrade 1.18.12 -> 1.20.4
openvpn: upgrade 2.5.8 -> 2.6.0
python3-scapy: upgrade 2.4.5 -> 2.5.0
Randy MacLeod (1):
python3-pillow: Add distutils, unixadmin for ptest
Ross Burton (10):
python3-simpleeval: update patch status
nodejs: remove redundant expand=True to getVar()
nodejs: run configure.py in verbose mode
nodejs: use a postfunc to prune source tree
nodejs: don't force cross-compilation in native builds
nodejs: remove LD assignment
nodejs: no need to stage binaries for target
nodejs: remove redundant comment
zchunk: upgrade to 1.2.4
liburing: enable native/nativesdk builds
Stefano Babic (1):
zchunk: upgrade 1.2.4 -> 1.3.0
Tom Hochstein (1):
nlohmann-json: Allow empty main package for SDK
Ulrich Ölmann (1):
tnftp: switch to using variable flags for alternatives
Wang Mingyu (104):
python3-apt: upgrade 2.5.0 -> 2.5.2
python3-aspectlib: upgrade 1.5.2 -> 2.0.0
python3-aiohttp-jinja2: upgrade 1.5 -> 1.5.1
python3-astroid: upgrade 2.13.2 -> 2.14.1
python3-bitarray: upgrade 2.6.2 -> 2.7.0
python3-cantools: upgrade 38.0.1 -> 38.0.2
python3-coverage: upgrade 7.0.5 -> 7.1.0
python3-cmd2: upgrade 2.4.2 -> 2.4.3
python3-django: upgrade 4.1.3 -> 4.1.6
python3-dateparser: upgrade 1.1.6 -> 1.1.7
python3-elementpath: upgrade 3.0.2 -> 4.0.1
python3-evdev: upgrade 1.6.0 -> 1.6.1
python3-flask-wtf: upgrade 1.1.0 -> 1.1.1
python3-fastnumbers: upgrade 3.2.1 -> 4.0.1
python3-flask-migrate: upgrade 4.0.1 -> 4.0.4
python3-luma-oled: upgrade 3.9.0 -> 3.11.0
python3-google-api-python-client: upgrade 2.72.0 -> 2.77.0
python3-ipython: upgrade 8.8.0 -> 8.9.0
python3-icu: upgrade 2.8.1 -> 2.10.2
python3-license-expression: upgrade 30.0.0 -> 30.1.0
python3-meh: upgrade 0.50.1 -> 0.51
python3-portalocker: upgrade 2.6.0 -> 2.7.0
python3-pandas: upgrade 1.5.2 -> 1.5.3
python3-openpyxl: upgrade 3.0.10 -> 3.1.0
python3-paramiko: upgrade 2.12.0 -> 3.0.0
python3-portion: Upgrade 2.3.0 -> 2.3.1
python3-pymisp: upgrade 2.4.167 -> 2.4.168
python3-pymodbus: upgrade 3.1.0 -> 3.1.3
python3-pykickstart: upgrade 3.34 -> 3.43
python3-pyscaffold: upgrade 4.3.1 -> 4.4
python3-pywbem: upgrade 1.5.0 -> 1.6.0
python3-sentry-sdk: upgrade 1.13.0 -> 1.15.0
python3-qrcode: upgrade 7.3.1 -> 7.4.2
python3-reedsolo: upgrade 1.6.1 -> 1.7.0
python3-simplejson: upgrade 3.18.1 -> 3.18.3
python3-traitlets: upgrade 5.8.1 -> 5.9.0
python3-sqlalchemy: upgrade 1.4.46 -> 2.0.3
python3-websocket-client: upgrade 1.4.2 -> 1.5.1
python3-xlsxwriter: upgrade 3.0.7 -> 3.0.8
python3-xmlschema: upgrade 2.1.1 -> 2.2.1
ctags: upgrade 6.0.20230115.0 -> 6.0.20230212.0
ddrescue: upgrade 1.26 -> 1.27
editorconfig-core-c: upgrade 0.12.5 -> 0.12.6
htpdate: upgrade 1.3.6 -> 1.3.7
iscsi-initiator-utils: upgrade 2.1.7 -> 2.1.8
geoclue: upgrade 2.6.0 -> 2.7.0
htop: upgrade 3.2.1 -> 3.2.2
hwdata: upgrade 0.366 -> 0.367
glog: upgrade 0.5.0 -> 0.6.0
libtevent: upgrade 0.13.0 -> 0.14.1
libtdb: upgrade 1.4.7 -> 1.4.8
libtalloc: upgrade 2.3.4 -> 2.4.0
jack: upgrade 1.19.21 -> 1.19.22
jsonrpc: upgrade 1.3.0 -> 1.4.1
liburing: upgrade 2.2 -> 2.3
libusb-compat: upgrade 0.1.7 -> 0.1.8
networkmanager: upgrade 1.40.10 -> 1.42.0
minicoredumper: upgrade 2.0.2 -> 2.0.3
neon: upgrade 0.32.4 -> 0.32.5
nano: upgrade 7.1 -> 7.2
netplan: upgrade 0.104 -> 0.106
rdma-core: upgrade 42.0 -> 44.0
pcsc-tools: upgrade 1.6.1 -> 1.6.2
poppler-data: upgrade 0.4.11 -> 0.4.12
sshpass: upgrade 1.09 -> 1.10
poppler: upgrade 23.01.0 -> 23.02.0
postgresql: upgrade 14.5 -> 15.2
sip: upgrade 6.7.5 -> 6.7.7
uchardet: upgrade 0.0.7 -> 0.0.8
zabbix: upgrade 6.2.6 -> 6.2.7
uftrace: upgrade 0.13 -> 0.13.1
krb5: Fix install conflict when enable multilib.
libnet: Fix install conflict when enable multilib.
imlib2: Fix install conflict when enable multilib.
python3-aiofiles: upgrade 22.1.0 -> 23.1.0
python3-aiohttp: upgrade 3.8.3 -> 3.8.4
python3-alembic: upgrade 1.9.2 -> 1.9.4
python3-antlr4-runtime: upgrade 4.11.1 -> 4.12.0
python3-astroid: upgrade 2.14.1 -> 2.14.2
python3-autobahn: upgrade 23.1.1 -> 23.1.2
python3-bitstruct: upgrade 8.15.1 -> 8.17.0
python3-bitarray: upgrade 2.7.0 -> 2.7.3
python3-django: upgrade 4.1.6 -> 4.1.7
python3-google-api-python-client: upgrade 2.77.0 -> 2.79.0
python3-flask: upgrade 2.2.2 -> 2.2.3
python3-huey: upgrade 2.4.4 -> 2.4.5
python3-google-auth: upgrade 2.16.0 -> 2.16.1
python3-ipython: upgrade 8.9.0 -> 8.10.0
python3-imageio: upgrade 2.25.0 -> 2.25.1
python3-openpyxl: upgrade 3.1.0 -> 3.1.1
python3-pykickstart: upgrade 3.43 -> 3.44
python3-pydantic: upgrade 1.10.4 -> 1.10.5
python3-pytest-forked: upgrade 1.4.0 -> 1.6.0
python3-pytest-xdist: upgrade 3.1.0 -> 3.2.0
python3-redis: upgrade 4.4.2 -> 4.5.1
python3-soupsieve: upgrade 2.3.2.post1 -> 2.4
python3-simpleeval: upgrade 0.9.12 -> 0.9.13
python3-stevedore: upgrade 4.1.1 -> 5.0.0
python3-sqlalchemy: upgrade 2.0.3 -> 2.0.4
python3-watchdog: upgrade 2.2.1 -> 2.3.0
python3-werkzeug: upgrade 2.2.2 -> 2.2.3
python3-zeroconf: upgrade 0.47.1 -> 0.47.3
python3-coverage: upgrade 7.1.0 -> 7.2.0
python3-eth-keyfile: upgrade 0.6.0 -> 0.6.1
Yi Zhao (7):
meta-python: fix Upstream-Status format
meta-oe: fix Upstream-Status format
meta-networking: fix Upstream-Status format
fatresize: fix Upstream-Status format
apache2: use /run instead of /var/run for systemd volatile config
phpmyadmin: upgrade 5.2.0 -> 5.2.1
ufs-utils: upgrade 1.9 -> 3.12.3
bhargav_das@mentor.com (1):
python3-daemon_2.3.2.bb: add python-daemon recipe for python3
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I826d53d70744bc80ebe8b60203241dfddce7d5fe
Diffstat (limited to 'poky/bitbake')
-rwxr-xr-x | poky/bitbake/bin/bitbake | 2 | ||||
-rwxr-xr-x | poky/bitbake/bin/bitbake-worker | 2 | ||||
-rw-r--r-- | poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst | 17 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/__init__.py | 2 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/cooker.py | 54 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/cookerdata.py | 17 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/data.py | 10 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/event.py | 11 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/fetch2/__init__.py | 4 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/fetch2/git.py | 10 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/fetch2/gitsm.py | 2 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/fetch2/npmsw.py | 26 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/fetch2/wget.py | 10 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/runqueue.py | 18 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/server/process.py | 10 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/siggen.py | 2 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/fetch.py | 123 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/utils.py | 19 | ||||
-rw-r--r-- | poky/bitbake/lib/bblayers/action.py | 5 |
19 files changed, 239 insertions, 105 deletions
diff --git a/poky/bitbake/bin/bitbake b/poky/bitbake/bin/bitbake index f869eb4854..21fb100e9a 100755 --- a/poky/bitbake/bin/bitbake +++ b/poky/bitbake/bin/bitbake @@ -27,7 +27,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException bb.utils.check_system_locale() -__version__ = "2.2.0" +__version__ = "2.3.1" if __name__ == "__main__": if __version__ != bb.__version__: diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker index a3ea5d9618..d743ff5105 100755 --- a/poky/bitbake/bin/bitbake-worker +++ b/poky/bitbake/bin/bitbake-worker @@ -269,7 +269,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask): bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN"), taskname.replace("do_", ""))) - if not the_data.getVarFlag(taskname, 'network', False): + if not bb.utils.to_boolean(the_data.getVarFlag(taskname, 'network')): if bb.utils.is_local_uid(uid): logger.debug("Attempting to disable network for %s" % taskname) bb.utils.disable_network(uid, gid) 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 deb7afad43..ba8129afab 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 @@ -1496,6 +1496,23 @@ functionality of the task: directory listed is used as the current working directory for the task. +- ``[file-checksums]``: Controls the file dependencies for a task. The + baseline file list is the set of files associated with + :term:`SRC_URI`. May be used to set additional dependencies on + files not associated with :term:`SRC_URI`. + + The value set to the list is a file-boolean pair where the first + value is the file name and the second is whether or not it + physically exists on the filesystem. :: + + do_configure[file-checksums] += "${MY_DIRPATH}/my-file.txt:True" + + It is important to record any paths which the task looked at and + which didn't exist. This means that if these do exist at a later + time, the task can be rerun with the new additional files. The + "exists" True or False value after the path allows this to be + handled. + - ``[lockfiles]``: Specifies one or more lockfiles to lock while the task executes. Only one task may hold a lockfile, and any task that attempts to lock an already locked file will block until the lock is diff --git a/poky/bitbake/lib/bb/__init__.py b/poky/bitbake/lib/bb/__init__.py index 4e90964173..56be5a831e 100644 --- a/poky/bitbake/lib/bb/__init__.py +++ b/poky/bitbake/lib/bb/__init__.py @@ -9,7 +9,7 @@ # SPDX-License-Identifier: GPL-2.0-only # -__version__ = "2.2.0" +__version__ = "2.3.1" import sys if sys.version_info < (3, 8, 0): diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py index c5e9fa2941..1797a1d4ca 100644 --- a/poky/bitbake/lib/bb/cooker.py +++ b/poky/bitbake/lib/bb/cooker.py @@ -229,24 +229,26 @@ class BBCooker: self.handlePRServ() def setupConfigWatcher(self): - if self.configwatcher: - self.configwatcher.close() - self.confignotifier = None - self.configwatcher = None - self.configwatcher = pyinotify.WatchManager() - self.configwatcher.bbseen = set() - self.configwatcher.bbwatchedfiles = set() - self.confignotifier = pyinotify.Notifier(self.configwatcher, self.config_notifications) + with bb.utils.lock_timeout(self.inotify_threadlock): + if self.configwatcher: + self.configwatcher.close() + self.confignotifier = None + self.configwatcher = None + self.configwatcher = pyinotify.WatchManager() + self.configwatcher.bbseen = set() + self.configwatcher.bbwatchedfiles = set() + self.confignotifier = pyinotify.Notifier(self.configwatcher, self.config_notifications) def setupParserWatcher(self): - if self.watcher: - self.watcher.close() - self.notifier = None - self.watcher = None - self.watcher = pyinotify.WatchManager() - self.watcher.bbseen = set() - self.watcher.bbwatchedfiles = set() - self.notifier = pyinotify.Notifier(self.watcher, self.notifications) + with bb.utils.lock_timeout(self.inotify_threadlock): + if self.watcher: + self.watcher.close() + self.notifier = None + self.watcher = None + self.watcher = pyinotify.WatchManager() + self.watcher.bbseen = set() + self.watcher.bbwatchedfiles = set() + self.notifier = pyinotify.Notifier(self.watcher, self.notifications) def process_inotify_updates(self): with bb.utils.lock_timeout(self.inotify_threadlock): @@ -337,12 +339,21 @@ class BBCooker: providerlog.error("Root privilege is required to modify max_user_watches.") raise + def handle_inotify_updates(self): + # reload files for which we got notifications + for p in self.inotify_modified_files: + bb.parse.update_cache(p) + if p in bb.parse.BBHandler.cached_statements: + del bb.parse.BBHandler.cached_statements[p] + self.inotify_modified_files = [] + def sigterm_exception(self, signum, stackframe): if signum == signal.SIGTERM: bb.warn("Cooker received SIGTERM, shutting down...") elif signum == signal.SIGHUP: bb.warn("Cooker received SIGHUP, shutting down...") self.state = state.forceshutdown + bb.event._should_exit.set() def setFeatures(self, features): # we only accept a new feature set if we're in state initial, so we can reset without problems @@ -365,6 +376,7 @@ class BBCooker: if mod not in self.orig_sysmodules: del sys.modules[mod] + self.handle_inotify_updates() self.setupConfigWatcher() # Need to preserve BB_CONSOLELOG over resets @@ -1518,6 +1530,7 @@ class BBCooker: msg = None interrupted = 0 if halt or self.state == state.forceshutdown: + bb.event._should_exit.set() rq.finish_runqueue(True) msg = "Forced shutdown" interrupted = 2 @@ -1610,12 +1623,7 @@ class BBCooker: if self.state == state.running: return - # reload files for which we got notifications - for p in self.inotify_modified_files: - bb.parse.update_cache(p) - if p in bb.parse.BBHandler.cached_statements: - del bb.parse.BBHandler.cached_statements[p] - self.inotify_modified_files = [] + self.handle_inotify_updates() if not self.baseconfig_valid: logger.debug("Reloading base configuration data") @@ -1758,6 +1766,7 @@ class BBCooker: self.state = state.forceshutdown else: self.state = state.shutdown + bb.event._should_exit.set() if self.parser: self.parser.shutdown(clean=False) @@ -1768,6 +1777,7 @@ class BBCooker: self.parser.shutdown(clean=False) self.parser.final_cleanup() self.state = state.initial + bb.event._should_exit.clear() def reset(self): if hasattr(bb.parse, "siggen"): diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py index 1658bee93c..adde0e7444 100644 --- a/poky/bitbake/lib/bb/cookerdata.py +++ b/poky/bitbake/lib/bb/cookerdata.py @@ -160,12 +160,7 @@ def catch_parse_error(func): def wrapped(fn, *args): try: return func(fn, *args) - except IOError as exc: - import traceback - parselog.critical(traceback.format_exc()) - parselog.critical("Unable to parse %s: %s" % (fn, exc)) - raise bb.BBHandledException() - except bb.data_smart.ExpansionError as exc: + except Exception as exc: import traceback bbdir = os.path.dirname(__file__) + os.sep @@ -177,9 +172,6 @@ def catch_parse_error(func): break parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb)) raise bb.BBHandledException() - except bb.parse.ParseError as exc: - parselog.critical(str(exc)) - raise bb.BBHandledException() return wrapped @catch_parse_error @@ -302,14 +294,9 @@ class CookerDataBuilder(object): bb.event.fire(bb.event.MultiConfigParsed(mcdata), self.data) self.data_hash = data_hash.hexdigest() - except (SyntaxError, bb.BBHandledException): - raise bb.BBHandledException() except bb.data_smart.ExpansionError as e: logger.error(str(e)) raise bb.BBHandledException() - except Exception: - logger.exception("Error parsing configuration files") - raise bb.BBHandledException() bb.codeparser.update_module_dependencies(self.data) @@ -473,7 +460,7 @@ class CookerDataBuilder(object): msg += (" and bitbake did not find a conf/bblayers.conf file in" " the expected location.\nMaybe you accidentally" " invoked bitbake from the wrong directory?") - raise SystemExit(msg) + bb.fatal(msg) if not data.getVar("TOPDIR"): data.setVar("TOPDIR", os.path.abspath(os.getcwd())) diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py index f3ae062022..3ee8f5e7db 100644 --- a/poky/bitbake/lib/bb/data.py +++ b/poky/bitbake/lib/bb/data.py @@ -114,8 +114,8 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False): if d.getVarFlag(var, 'python', False) and func: return False - export = d.getVarFlag(var, "export", False) - unexport = d.getVarFlag(var, "unexport", False) + export = bb.utils.to_boolean(d.getVarFlag(var, "export")) + unexport = bb.utils.to_boolean(d.getVarFlag(var, "unexport")) if not all and not export and not unexport and not func: return False @@ -188,8 +188,8 @@ def emit_env(o=sys.__stdout__, d = init(), all=False): def exported_keys(d): return (key for key in d.keys() if not key.startswith('__') and - d.getVarFlag(key, 'export', False) and - not d.getVarFlag(key, 'unexport', False)) + bb.utils.to_boolean(d.getVarFlag(key, 'export')) and + not bb.utils.to_boolean(d.getVarFlag(key, 'unexport'))) def exported_vars(d): k = list(exported_keys(d)) @@ -375,7 +375,7 @@ def generate_dependencies(d, ignored_vars): mod_funcs = set(bb.codeparser.modulecode_deps.keys()) keys = set(key for key in d if not key.startswith("__")) | mod_funcs - shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False)) + shelldeps = set(key for key in d.getVar("__exportlist", False) if bb.utils.to_boolean(d.getVarFlag(key, "export")) and not bb.utils.to_boolean(d.getVarFlag(key, "unexport"))) varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS') codeparserd = d.createCopy() diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py index 8b05f93e2f..37cc630c63 100644 --- a/poky/bitbake/lib/bb/event.py +++ b/poky/bitbake/lib/bb/event.py @@ -69,6 +69,7 @@ _eventfilter = None _uiready = False _thread_lock = threading.Lock() _heartbeat_enabled = False +_should_exit = threading.Event() def enable_threadlock(): # Always needed now @@ -86,6 +87,16 @@ def disable_heartbeat(): global _heartbeat_enabled _heartbeat_enabled = False +# +# In long running code, this function should be called periodically +# to check if we should exit due to an interuption (.e.g Ctrl+C from the UI) +# +def check_for_interrupts(d): + global _should_exit + if _should_exit.is_set(): + bb.warn("Exiting due to interrupt.") + raise bb.BBHandledException() + def execute_handler(name, handler, event, d): event.data = d try: diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py index 747356dfa1..cf65727a20 100644 --- a/poky/bitbake/lib/bb/fetch2/__init__.py +++ b/poky/bitbake/lib/bb/fetch2/__init__.py @@ -855,7 +855,9 @@ FETCH_EXPORT_VARS = ['HOME', 'PATH', 'AWS_PROFILE', 'AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', - 'AWS_DEFAULT_REGION'] + 'AWS_DEFAULT_REGION', + 'GIT_CACHE_PATH', + 'SSL_CERT_DIR'] def get_fetcher_environment(d): newenv = {} diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py index 2e3d32515f..5bb8393133 100644 --- a/poky/bitbake/lib/bb/fetch2/git.py +++ b/poky/bitbake/lib/bb/fetch2/git.py @@ -417,8 +417,7 @@ class Git(FetchMethod): # It would be nice to just do this inline here by running 'git-lfs fetch' # on the bare clonedir, but that operation requires a working copy on some # releases of Git LFS. - tmpdir = tempfile.mkdtemp(dir=d.getVar('DL_DIR')) - try: + with tempfile.TemporaryDirectory(dir=d.getVar('DL_DIR')) as tmpdir: # Do the checkout. This implicitly involves a Git LFS fetch. Git.unpack(self, ud, tmpdir, d) @@ -436,8 +435,6 @@ class Git(FetchMethod): # downloaded. if os.path.exists(os.path.join(tmpdir, "git", ".git", "lfs")): runfetchcmd("tar -cf - lfs | tar -xf - -C %s" % ud.clonedir, d, workdir="%s/git/.git" % tmpdir) - finally: - bb.utils.remove(tmpdir, recurse=True) def build_mirror_data(self, ud, d): @@ -660,11 +657,6 @@ class Git(FetchMethod): Check if the repository has 'lfs' (large file) content """ - if not ud.nobranch: - branchname = ud.branches[ud.names[0]] - else: - branchname = "master" - # The bare clonedir doesn't use the remote names; it has the branch immediately. if wd == ud.clonedir: refname = ud.branches[ud.names[0]] diff --git a/poky/bitbake/lib/bb/fetch2/gitsm.py b/poky/bitbake/lib/bb/fetch2/gitsm.py index fee40cdcb4..f8e239bc5d 100644 --- a/poky/bitbake/lib/bb/fetch2/gitsm.py +++ b/poky/bitbake/lib/bb/fetch2/gitsm.py @@ -90,7 +90,7 @@ class GitSM(Git): # Convert relative to absolute uri based on parent uri if uris[m].startswith('..') or uris[m].startswith('./'): newud = copy.copy(ud) - newud.path = os.path.realpath(os.path.join(newud.path, uris[m])) + newud.path = os.path.normpath(os.path.join(newud.path, uris[m])) uris[m] = Git._get_repo_url(self, newud) for module in submodules: diff --git a/poky/bitbake/lib/bb/fetch2/npmsw.py b/poky/bitbake/lib/bb/fetch2/npmsw.py index a8c4d3528f..36fcbfba15 100644 --- a/poky/bitbake/lib/bb/fetch2/npmsw.py +++ b/poky/bitbake/lib/bb/fetch2/npmsw.py @@ -129,10 +129,28 @@ class NpmShrinkWrap(FetchMethod): localpath = os.path.join(d.getVar("DL_DIR"), localfile) + # Handle local tarball and link sources + elif version.startswith("file"): + localpath = version[5:] + if not version.endswith(".tgz"): + unpack = False + # Handle git sources - elif version.startswith("git"): + elif version.startswith(("git", "bitbucket","gist")) or ( + not version.endswith((".tgz", ".tar", ".tar.gz")) + and not version.startswith((".", "@", "/")) + and "/" in version + ): if version.startswith("github:"): version = "git+https://github.com/" + version[len("github:"):] + elif version.startswith("gist:"): + version = "git+https://gist.github.com/" + version[len("gist:"):] + elif version.startswith("bitbucket:"): + version = "git+https://bitbucket.org/" + version[len("bitbucket:"):] + elif version.startswith("gitlab:"): + version = "git+https://gitlab.com/" + version[len("gitlab:"):] + elif not version.startswith(("git+","git:")): + version = "git+https://github.com/" + version regex = re.compile(r""" ^ git\+ @@ -158,12 +176,6 @@ class NpmShrinkWrap(FetchMethod): url = str(uri) - # Handle local tarball and link sources - elif version.startswith("file"): - localpath = version[5:] - if not version.endswith(".tgz"): - unpack = False - else: raise ParameterError("Unsupported dependency: %s" % name, ud.url) diff --git a/poky/bitbake/lib/bb/fetch2/wget.py b/poky/bitbake/lib/bb/fetch2/wget.py index 696e918030..859b4f99e2 100644 --- a/poky/bitbake/lib/bb/fetch2/wget.py +++ b/poky/bitbake/lib/bb/fetch2/wget.py @@ -26,7 +26,6 @@ from bb.fetch2 import FetchMethod from bb.fetch2 import FetchError from bb.fetch2 import logger from bb.fetch2 import runfetchcmd -from bb.utils import export_proxies from bs4 import BeautifulSoup from bs4 import SoupStrainer @@ -361,10 +360,11 @@ class Wget(FetchMethod): try: import netrc - n = netrc.netrc() - login, unused, password = n.authenticators(urllib.parse.urlparse(uri).hostname) - add_basic_auth("%s:%s" % (login, password), r) - except (TypeError, ImportError, IOError, netrc.NetrcParseError): + auth_data = netrc.netrc().authenticators(urllib.parse.urlparse(uri).hostname) + if auth_data: + login, _, password = auth_data + add_basic_auth("%s:%s" % (login, password), r) + except (FileNotFoundError, netrc.NetrcParseError): pass with opener.open(r, timeout=30) as response: diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py index ce711b6252..e629ab7e7b 100644 --- a/poky/bitbake/lib/bb/runqueue.py +++ b/poky/bitbake/lib/bb/runqueue.py @@ -655,6 +655,7 @@ class RunQueueData: self.init_progress_reporter.start() self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Step A - Work out a list of tasks to run # @@ -803,6 +804,7 @@ class RunQueueData: #self.dump_data() self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Resolve recursive 'recrdeptask' dependencies (Part B) # @@ -899,6 +901,7 @@ class RunQueueData: self.runtaskentries[tid].depends.difference_update(recursivetasksselfref) self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) #self.dump_data() @@ -980,6 +983,7 @@ class RunQueueData: mark_active(tid, 1) self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Step C - Prune all inactive tasks # @@ -1019,6 +1023,7 @@ class RunQueueData: 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() + bb.event.check_for_interrupts(self.cooker.data) # Handle runonly if self.cooker.configuration.runonly: @@ -1059,6 +1064,7 @@ class RunQueueData: logger.verbose("Assign Weightings") self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Generate a list of reverse dependencies to ease future calculations for tid in self.runtaskentries: @@ -1066,6 +1072,7 @@ class RunQueueData: self.runtaskentries[dep].revdeps.add(tid) self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Identify tasks at the end of dependency chains # Error on circular dependency loops (length two) @@ -1082,12 +1089,14 @@ class RunQueueData: logger.verbose("Compute totals (have %s endpoint(s))", len(endpoints)) self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Calculate task weights # Check of higher length circular dependencies self.runq_weight = self.calculate_task_weights(endpoints) self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Sanity Check - Check for multiple tasks building the same provider for mc in self.dataCaches: @@ -1188,6 +1197,7 @@ class RunQueueData: self.init_progress_reporter.next_stage() self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Iterate over the task list looking for tasks with a 'setscene' function self.runq_setscene_tids = set() @@ -1200,6 +1210,7 @@ class RunQueueData: self.runq_setscene_tids.add(tid) self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Invalidate task if force mode active if self.cooker.configuration.force: @@ -1216,6 +1227,7 @@ class RunQueueData: invalidate_task(fn + ":" + st, True) self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) # Create and print to the logs a virtual/xxxx -> PN (fn) table for mc in taskData: @@ -1228,6 +1240,7 @@ class RunQueueData: bb.parse.siggen.tasks_resolved(virtmap, virtpnmap, self.dataCaches[mc]) self.init_progress_reporter.next_stage() + bb.event.check_for_interrupts(self.cooker.data) bb.parse.siggen.set_setscene_tasks(self.runq_setscene_tids) @@ -1240,6 +1253,7 @@ class RunQueueData: dealtwith.add(tid) todeal.remove(tid) self.prepare_task_hash(tid) + bb.event.check_for_interrupts(self.cooker.data) bb.parse.siggen.writeout_file_checksum_cache() @@ -1483,6 +1497,7 @@ class RunQueue: """ retval = True + bb.event.check_for_interrupts(self.cooker.data) if self.state is runQueuePrepare: # NOTE: if you add, remove or significantly refactor the stages of this @@ -1941,8 +1956,7 @@ class RunQueueExecute: try: module = __import__(modname, fromlist=(name,)) except ImportError as exc: - logger.critical("Unable to import scheduler '%s' from '%s': %s" % (name, modname, exc)) - raise SystemExit(1) + bb.fatal("Unable to import scheduler '%s' from '%s': %s" % (name, modname, exc)) else: schedulers.add(getattr(module, name)) return schedulers diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py index 916ee0a0e5..db417c8428 100644 --- a/poky/bitbake/lib/bb/server/process.py +++ b/poky/bitbake/lib/bb/server/process.py @@ -405,7 +405,11 @@ class ProcessServer(): nextsleep = 0.1 fds = [] - self.cooker.process_inotify_updates() + try: + self.cooker.process_inotify_updates() + except Exception as exc: + serverlog("Exception %s in inofify updates broke the idle_thread, exiting" % traceback.format_exc()) + self.quit = True with bb.utils.lock_timeout(self._idlefuncsLock): items = list(self._idlefuns.items()) @@ -473,6 +477,10 @@ class ProcessServer(): if not self.idle: self.idle = threading.Thread(target=self.idle_thread) self.idle.start() + elif self.idle and not self.idle.is_alive(): + serverlog("Idle thread terminated, main thread exiting too") + bb.error("Idle thread terminated, main thread exiting too") + self.quit = True if nextsleep is not None: if self.xmlrpc: diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py index 26e0243b00..c4ff9d8de1 100644 --- a/poky/bitbake/lib/bb/siggen.py +++ b/poky/bitbake/lib/bb/siggen.py @@ -598,7 +598,7 @@ class SignatureGeneratorUniHashMixIn(object): # A unique hash equal to the taskhash is not very interesting, # so it is reported it at debug level 2. If they differ, that # is much more interesting, so it is reported at debug level 1 - hashequiv_logger.debug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, tid, self.server)) + hashequiv_logger.bbdebug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, tid, self.server)) else: hashequiv_logger.debug2('No reported unihash for %s:%s from %s' % (tid, taskhash, self.server)) except ConnectionError as e: diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py index f3890321d6..73eefc5938 100644 --- a/poky/bitbake/lib/bb/tests/fetch.py +++ b/poky/bitbake/lib/bb/tests/fetch.py @@ -2199,6 +2199,12 @@ class GitShallowTest(FetcherTest): self.assertIn("fstests.doap", dir) class GitLfsTest(FetcherTest): + def skipIfNoGitLFS(): + import shutil + if not shutil.which('git-lfs'): + return unittest.skip('git-lfs not installed') + return lambda f: f + def setUp(self): FetcherTest.setUp(self) @@ -2232,6 +2238,44 @@ class GitLfsTest(FetcherTest): ud = fetcher.ud[uri] return fetcher, ud + def get_real_git_lfs_file(self): + self.d.setVar('PATH', os.environ.get('PATH')) + fetcher, ud = self.fetch() + fetcher.unpack(self.d.getVar('WORKDIR')) + unpacked_lfs_file = os.path.join(self.d.getVar('WORKDIR'), 'git', "Cat_poster_1.jpg") + return unpacked_lfs_file + + @skipIfNoGitLFS() + @skipIfNoNetwork() + def test_real_git_lfs_repo_succeeds_without_lfs_param(self): + self.d.setVar('SRC_URI', "git://gitlab.com/gitlab-examples/lfs.git;protocol=https;branch=master") + f = self.get_real_git_lfs_file() + self.assertTrue(os.path.exists(f)) + self.assertEqual("c0baab607a97839c9a328b4310713307", bb.utils.md5_file(f)) + + @skipIfNoGitLFS() + @skipIfNoNetwork() + def test_real_git_lfs_repo_succeeds(self): + self.d.setVar('SRC_URI', "git://gitlab.com/gitlab-examples/lfs.git;protocol=https;branch=master;lfs=1") + f = self.get_real_git_lfs_file() + self.assertTrue(os.path.exists(f)) + self.assertEqual("c0baab607a97839c9a328b4310713307", bb.utils.md5_file(f)) + + @skipIfNoGitLFS() + @skipIfNoNetwork() + def test_real_git_lfs_repo_succeeds(self): + self.d.setVar('SRC_URI', "git://gitlab.com/gitlab-examples/lfs.git;protocol=https;branch=master;lfs=0") + f = self.get_real_git_lfs_file() + # This is the actual non-smudged placeholder file on the repo if git-lfs does not run + lfs_file = ( + 'version https://git-lfs.github.com/spec/v1\n' + 'oid sha256:34be66b1a39a1955b46a12588df9d5f6fc1da790e05cf01f3c7422f4bbbdc26b\n' + 'size 11423554\n' + ) + + with open(f) as fh: + self.assertEqual(lfs_file, fh.read()) + def test_lfs_enabled(self): import shutil @@ -2250,12 +2294,16 @@ class GitLfsTest(FetcherTest): shutil.rmtree(self.gitdir, ignore_errors=True) fetcher.unpack(self.d.getVar('WORKDIR')) - # If git-lfs cannot be found, the unpack should throw an error - with self.assertRaises(bb.fetch2.FetchError): - fetcher.download() - ud.method._find_git_lfs = lambda d: False - shutil.rmtree(self.gitdir, ignore_errors=True) - fetcher.unpack(self.d.getVar('WORKDIR')) + old_find_git_lfs = ud.method._find_git_lfs + try: + # If git-lfs cannot be found, the unpack should throw an error + with self.assertRaises(bb.fetch2.FetchError): + fetcher.download() + ud.method._find_git_lfs = lambda d: False + shutil.rmtree(self.gitdir, ignore_errors=True) + fetcher.unpack(self.d.getVar('WORKDIR')) + finally: + ud.method._find_git_lfs = old_find_git_lfs def test_lfs_disabled(self): import shutil @@ -2270,17 +2318,21 @@ class GitLfsTest(FetcherTest): fetcher, ud = self.fetch() self.assertIsNotNone(ud.method._find_git_lfs) - # If git-lfs can be found, the unpack should be successful. A - # live copy of git-lfs is not required for this case, so - # unconditionally forge its presence. - ud.method._find_git_lfs = lambda d: True - shutil.rmtree(self.gitdir, ignore_errors=True) - fetcher.unpack(self.d.getVar('WORKDIR')) + old_find_git_lfs = ud.method._find_git_lfs + try: + # If git-lfs can be found, the unpack should be successful. A + # live copy of git-lfs is not required for this case, so + # unconditionally forge its presence. + ud.method._find_git_lfs = lambda d: True + shutil.rmtree(self.gitdir, ignore_errors=True) + fetcher.unpack(self.d.getVar('WORKDIR')) + # If git-lfs cannot be found, the unpack should be successful - # If git-lfs cannot be found, the unpack should be successful - ud.method._find_git_lfs = lambda d: False - shutil.rmtree(self.gitdir, ignore_errors=True) - fetcher.unpack(self.d.getVar('WORKDIR')) + ud.method._find_git_lfs = lambda d: False + shutil.rmtree(self.gitdir, ignore_errors=True) + fetcher.unpack(self.d.getVar('WORKDIR')) + finally: + ud.method._find_git_lfs = old_find_git_lfs class GitURLWithSpacesTest(FetcherTest): test_git_urls = { @@ -2614,6 +2666,45 @@ class NPMTest(FetcherTest): @skipIfNoNpm() @skipIfNoNetwork() + def test_npmsw_git(self): + swfile = self.create_shrinkwrap_file({ + 'dependencies': { + 'cookie': { + 'version': 'github:jshttp/cookie.git#aec1177c7da67e3b3273df96cf476824dbc9ae09', + 'from': 'github:jshttp/cookie.git' + } + } + }) + fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d) + fetcher.download() + self.assertTrue(os.path.exists(os.path.join(self.dldir, 'git2', 'github.com.jshttp.cookie.git'))) + + swfile = self.create_shrinkwrap_file({ + 'dependencies': { + 'cookie': { + 'version': 'jshttp/cookie.git#aec1177c7da67e3b3273df96cf476824dbc9ae09', + 'from': 'jshttp/cookie.git' + } + } + }) + fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d) + fetcher.download() + self.assertTrue(os.path.exists(os.path.join(self.dldir, 'git2', 'github.com.jshttp.cookie.git'))) + + swfile = self.create_shrinkwrap_file({ + 'dependencies': { + 'nodejs': { + 'version': 'gitlab:gitlab-examples/nodejs.git#892a1f16725e56cc3a2cb0d677be42935c8fc262', + 'from': 'gitlab:gitlab-examples/nodejs' + } + } + }) + fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d) + fetcher.download() + self.assertTrue(os.path.exists(os.path.join(self.dldir, 'git2', 'gitlab.com.gitlab-examples.nodejs.git'))) + + @skipIfNoNpm() + @skipIfNoNetwork() def test_npmsw_dev(self): swfile = self.create_shrinkwrap_file({ 'dependencies': { diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py index 4446997e42..0624a4f3e9 100644 --- a/poky/bitbake/lib/bb/utils.py +++ b/poky/bitbake/lib/bb/utils.py @@ -1698,22 +1698,11 @@ def disable_network(uid=None, gid=None): f.write("%s %s 1" % (gid, gid)) def export_proxies(d): + from bb.fetch2 import get_fetcher_environment """ export common proxies variables from datastore to environment """ - - variables = ['http_proxy', 'HTTP_PROXY', 'https_proxy', 'HTTPS_PROXY', - 'ftp_proxy', 'FTP_PROXY', 'no_proxy', 'NO_PROXY', - 'GIT_PROXY_COMMAND', 'SSL_CERT_FILE', 'SSL_CERT_DIR'] - - origenv = d.getVar("BB_ORIGENV") - - for name in variables: - value = d.getVar(name) - if not value and origenv: - value = origenv.getVar(name) - if value: - os.environ[name] = value - - + newenv = get_fetcher_environment(d) + for v in newenv: + os.environ[v] = newenv[v] def load_plugins(logger, plugins, pluginpath): def load_plugin(name): diff --git a/poky/bitbake/lib/bblayers/action.py b/poky/bitbake/lib/bblayers/action.py index 454c251410..0d7fd6edd1 100644 --- a/poky/bitbake/lib/bblayers/action.py +++ b/poky/bitbake/lib/bblayers/action.py @@ -11,6 +11,7 @@ import shutil import sys import tempfile +from bb.cookerdata import findTopdir import bb.utils from bblayers.common import LayerPlugin @@ -37,7 +38,7 @@ class ActionPlugin(LayerPlugin): sys.stderr.write("Specified layer directory %s doesn't contain a conf/layer.conf file\n" % layerdir) return 1 - bblayers_conf = os.path.join('conf', 'bblayers.conf') + bblayers_conf = os.path.join(findTopdir(),'conf', 'bblayers.conf') if not os.path.exists(bblayers_conf): sys.stderr.write("Unable to find bblayers.conf\n") return 1 @@ -65,7 +66,7 @@ class ActionPlugin(LayerPlugin): def do_remove_layer(self, args): """Remove one or more layers from bblayers.conf.""" - bblayers_conf = os.path.join('conf', 'bblayers.conf') + bblayers_conf = os.path.join(findTopdir() ,'conf', 'bblayers.conf') if not os.path.exists(bblayers_conf): sys.stderr.write("Unable to find bblayers.conf\n") return 1 |