subtree updates
meta-security: 30e755c592..283a773f24:
Armin Kuster (2):
meta-security: Drop ${PYTHON_PN}
openscap: update to tip to fix new build issue.
Jeremy A. Puhlman (4):
arpwatch: fix misspelling of PACKAGECONFIG
aprwatch: Add path for sendmail
Check for usrmerge before removing /usr/lib
arpwatch: install man8 dir
Kevin Hao (4):
docs: dm-verity.txt: Fix a typo
dm-verity: Adjust the image names according to the oe-core change
dm-verity: Set the IMAGE_FSTYPES correctly when dm-verity is enabled
dm-verity-image-initramfs: Set IMAGE_NAME_SUFFIX to empty
Max Krummenacher (1):
layer.conf: Update for the scarthgap release series
Mingli Yu (1):
python3-pyinotify: Make asyncore support optional for Python 3
poky: 7165c23237..110ee701b3:
Alejandro Hernandez Samaniego (1):
python3-manifest: Sync RDEPENDS with latest version
Alexander Kanavin (11):
meson: correct upstream version check (exclude pre-releases)
cargo-c-native: convert from git fetcher to crate fetcher
cargo-c-native: update 0.9.18 -> 0.9.30
man-pages: use env from coreutils-native
sdk-manual: correctly describe separate build-sysroots tasks in direct sdk workflows
dev/ref-manual: document conf-summary.txt together with conf-notes.txt
dev-manual: improve descriptions of 'bitbake -S printdiff'
wayland: fix upstream version check by asking gitlab directly
python3: correct upstream version check
bitbake: bitbake: improve descriptions of '-S printdiff'
selftest/sstatetests: run CDN check twice, ignoring errors the first time
Alexandre Truong (1):
oeqa/selftest/devtool: fix test_devtool_add_git_style2
Anibal Limon (1):
wic: bootimg-partition allow to set var to get boot files
BELOUARGA Mohamed (1):
ref-manual: add documentation of the variable SPDX_NAMESPACE_PREFIX
Bartosz Golaszewski (1):
linux-firmware: update to 20240312
Baruch Siach (1):
oeqa/selftest/overlayfs: test read-only rootfs
Bruce Ashfield (16):
linux-yocto/6.6: cfg: generic arm64
linux-yocto/6.6: cfg: riscv XHCI
linux-yocto/6.6: update to v6.6.21
linux-yocto/6.6: update CVE exclusions (6.6.21)
linux-yocto/6.6: cfg: drop unsettable options
linux-yocto/6.6: drm/tilcdc: Set preferred depth
linux-yocto/6.6: update to v6.6.22
linux-yocto/6.6: update CVE exclusions (6.6.22)
yocto-bsps: update to v6.6.21
linux-yocto/6.6: cfg: genericarm64 platform/peripheral support
linux-yocto/6.6: cfg: genericarm64 configuration updates
linux-yocto/6.6: nftables: ptest and cleanup tweaks
linux-yocto/6.6: update to v6.6.23
linux-yocto/6.6: update CVE exclusions (6.6.23)
linux-yocto-dev: bump to v6.9
lttng-modules: update to v2.13.12
Changqing Li (1):
dnf: fix Exception handling for class ProcessLock
Chen Qi (1):
ovmf: set CVE_PRODUCT and CVE_VERSION
Christian Taedcke (1):
kernel-fitImage: only include valid compatible line
Derek Erdmann (1):
bitbake: fetch2/git: Install Git LFS in local repository config
Enrico Jörns (3):
cml1: remove needless check for write_taint attribute
cml1: prompt location of updated .config after do_menuconfig()
perf: fix TMPDIR contamination for recent mainline kernels
Enrico Scholz (1):
shadow: fix copydir operation with 'pseudo'
Felix Moessbauer (1):
bitbake: utils: better estimate number of available cpus
Harish Sadineni (3):
gcc: Oe-selftest failure analysis - fix for tcl errors
gcc: Oe-selftest failure analysis - fix for vect-simd test failures
binutils: gprofng - change use of bignum to use of bignint
Jermain Horsman (1):
bblayers/makesetup.py: Move git utility functions to oe.buildcfg module
Joe Slater (1):
systemd: enable mac based names in NamePolicy
Jose Quaresma (5):
go.bbclass: set GOPROXY
elfutils: fix unused variable BUFFER_SIZE
go: keep the patches in order
go: upgrade 1.22.1 -> 1.22.2
sstatesig: fix netrc.NetrcParseError exception
Joshua Watt (4):
sstatesig: Set hash server credentials from bitbake variables
bitbake: siggen: Add support for hashserve credentials
sstatesig: Warn on bad .netrc
bitbake: bitbake-hashclient: Warn on bad .netrc
Jörg Sommer (1):
autotools: update link in comment for cross compiling
Kevin Hao (1):
image-live.bbclass: Adjust the default value for INITRD_LIVE
Khem Raj (13):
systemd: Check for directory before chmod'ing it
llvm: Update to 18.1.1 release
elfutils: Fix build break with clang
glibc: Update to tip of 2.39 branch
pam: Fix build with musl
piglit: Switch to upstreamed patch for musl fix
qemuriscv: Fix kbd and mouse emulation for qemuriscv64
llvm: Upgrade to 18.1.2 bugfix release
glibc: Repace aarch configure patch fix with a backport
valgrind: Backport fixes from 3.22 branch
tcl: Forward port skip logic for musl ptests
readline: Apply patches from readline-8.2-patches
mesa: Drop LLVM-17 patch
Lee Chee Yang (1):
migration-guides: add release notes for 4.0.17
Marcel Ziswiler (1):
mesa: enable imagination powervr support
Markus Volk (11):
mesa: fix opencl-spirv build
vala: merge bb and inc files
vala: fix for gtk4 prior to 4.14
libsoup: enable vapi support
gsettings-desktop-schemas: update 45.0 -> 46.0
libadwaita: update 1.4.4 -> 1.5.0
gtk4: update 4.12.5 -> 4.14.1
systemd: disable mdns feature in resolved for zeroconf
webkitgtk: update 2.42.5 -> 2.44.0
gtk+3: disable wayland without opengl
epiphany: update 45.3 -> 46.0
Martin Jansa (2):
contributor-guide: be more specific about meta-* trees
pixman: explicitly disable openmp in native builds
Max Krummenacher (1):
git: git-replacement-native: depend on ca-certificate
Michael Opdenacker (8):
manuals: add initial stylechecks with Vale
profile-manual: usage.rst: formatting fixes
manuals: use "manual page(s)"
profile-manual: usage.rst: fix reference to bug report
documentation: Makefile: remove releases.rst in "make clean"
migration-guides: draft notes for upcoming release 5.0
manuals: add initial stylechecks with Vale
profile-manual: usage.rst: further style improvements
Oleh Matiusha (3):
bash: improve reproducibility
curl: improve reproducibility
gmp: improve reproducibility
Paul Barker (1):
kernel: Fix check_oldest_kernel
Peter A. Bigot (1):
bitbake: lib/bb: support NO_COLOR
Peter Kjellerstedt (1):
util-linux: Set the license for util-linux-fcntl-lock to MIT
Philippe Rivest (1):
bitbake: bitbake: fetch2/git: Escape parentheses in git src name
Quentin Schulz (1):
u-boot: fix externalsrc not triggering do_configure on defconfig changes
Randy MacLeod (1):
gstreamer: upgrade 1.22.10 -> 1.22.11
Richard Purdie (10):
poky: Update to prepare for scarthgap release
layer.conf: Prepare for release, drop nanbield LAYERSERIES
expat: Upgrade 2.6.1 -> 2.6.2
bash/flex: Ensure BUILD_FLAGS doesn't leak onto target
uninative: Add pthread linking workaround
poky-altcfg: Default to ipk packaging
util-linux: Add missing MIT license
util-linux: Add fcntl-lock
run-postinsts: Add workaround for locking deadlock issue
oeqa/sstatetests: Fix race issue
Ross Burton (22):
genericarm64.wks: reorder partitions
genericarm64: clean up kernel modules and firmware
linux-firmware: add support for deduplicating the firmware
linux-firmware: set LICENSE field for -liquidui and -mellanox
linux-firmware: remove pointless linux-firmware-gplv2-license package
curl: improve run-ptest
curl: increase test timeouts
gstreamer1.0: improve test reliability
linux-yocto: put COMPATIBLE_MACHINE first
linux-yocto: implicitly track oe-core's kernel version for genericarm64
bitbake: fetch2: handle URIs with single-valued query parameters
python3_pip517: just count wheels in the directory, not subdirectories
python-*: don't set PYPI_ARCHIVE_NAME and S when PYPI_PACKAGE is sufficient
tcl: improve run-ptest
tcl: skip I/O channel 46.1
genericarm64: add qemuboot configuration
classes/qemuboot: add depends on qemu-system-native and qemu-helper-native
README.hardware.md: fix Markdown formatting
README.hardware.md: add section on genericarm64 on qemu
glib-2.0: skip a timing sensitive ptest
openssl: fix crash on aarch64 if BTI is enabled but no Crypto instructions
curl: fix quoting when disabling flaky tests
Ryan Eatmon (1):
perf: Fix QA error due to most recent kernel
Sam Van Den Berge (1):
shadow: don't install libattr.so.* when xattr not in DISTRO_FEATURES
Sava Jakovljev (1):
bitbake: bitbake-worker: Fix bug where umask 0 was not being applied to a task
Simone Weiß (1):
gnutls: upgrade 3.8.3 -> 3.8.4
Soumya Sambu (1):
go: Upgrade 1.22.0 -> 1.22.1
Sourav Kumar Pramanik (1):
libseccomp: Add back in PTESTS_SLOW list
Sundeep KOKKONDA (1):
rust: reproducibility issue fix with v1.75
Tim Orling (2):
coreutils: drop obsolete liberror-perl RDEPENDS
liberror-perl: move to meta-perl
Timon Bergelt (1):
populate_sdk_ext.bbclass: only overwirte lsb string if uninative is used
Tom Hochstein (2):
bmaptool: Add bmap-tools runtime alias for compatibility
toolchain-shar-relocate.sh: Add check for missing command 'file'
Trevor Woerner (1):
bmaptool: update to latest
Ulrich Ölmann (1):
ref-manual: classes: update description of class 'image_types'
Viswanath Kraleti (1):
bitbake: fetch2: Fix misleading "no output" msg
Wang Mingyu (1):
libadwaita: upgrade 1.4.3 -> 1.4.4
William Lyu (1):
openssh: Add a workaround for ICE on powerpc64le
Xiangyu Chen (3):
lttng-tools: skip kernel tests if no kernel modules present
ltp: fix missing connectors tests in scenario_groups/default
lttng-tools: fix rotation-destroy-flush test fails if no kernel module present
Yang Xu (1):
bitbake: bitbake-worker: Fix silent hang issue caused by unexpected stdout content
Yannick Rodriguez (1):
linux-firmware: Move Intel 9260 modules firmware.
Yash Shinde (1):
glibc: Skip 2 qemu tests that can hang in oe-selftest
Yi Zhao (1):
libtirpc: drop redundant PACKAGECONFIG
Yoann Congal (6):
cve-update-nvd2-native: Fix typo in comment
cve-update-nvd2-native: Add an age threshold for incremental update
cve-update-nvd2-native: Remove duplicated CVE_CHECK_DB_FILE definition
cve-update-nvd2-native: nvd_request_next: Improve comment
cve-update-nvd2-native: Fix CVE configuration update
cve-update-nvd2-native: Remove rejected CVE from database
Yogesh Tyagi (1):
lttng-modules: fix v6.8+ build
david d zuhn (1):
bitbake: bitbake-worker: allow '=' in environment variable values
lixiaoyong (3):
kernel-module-split.bbclass: enhance objcopy command call for kernel compilation with llvm
utils: enhance readelf command call with llvm
oe/package: enhance objdump command call with llvm
meta-raspberrypi: 92a9b7a012..d072cc8a48:
Khem Raj (9):
linux-raspberrypi: Add recipe for 6.6 LTS kernel
bluez-firmware-rpidistro: Upgrade to 1.2-9+rpt3 release
linux-firmware-rpidistro: Upgrade to bookworm/20230625-2+rpt2
raspberrypi-firmware: Fetch using git URI
rpi-base: Add missing broadcom/ prefix to find DTB files
rpi-default-versions: Switch default kernel to 6.6
linux-raspberrypi_6.6: Bump to 6.6.22
rpi-bootfiles: Resort to github APIs for tarballs
raspberrypi-firmware: Revert to debian archive
Martin Jansa (1):
userland: fix installed-vs-shipped in multilib builds
jdavidsson (1):
rpi-base: Add hifiberry-dacplusadc overlay
meta-arm: aba9250494..d9e18ce792:
Abdellatif El Khlifi (1):
arm-bsp/corstone1000: add documentation disclaimer
Alexander Sverdlin (1):
optee-ftpm: fix EARLY_TA_PATHS passed to optee-os
Ali Can Ozaslan (4):
arm-bsp/trusted-firmware-m: corstone1000: update to 2.0
arm-bsp/trusted-services: corstone1000: Client Id adjustments after TF-M 2.0
arm/trusted-firmware-m: Change GNU Arm compiler version for TF-M 2.0
arm-bsp/trusted-firmware-a: n1sdp: update to 2.10
Anusmita Dutta Mazumder (2):
arm-bsp/n1sdp: Update scp-firmware version
arm-bsp/n1sdp: Update EDK2 version
Bence Balogh (2):
arm-bsp/u-boot: corstone1000: fix SMCCC_ARCH_FEATURES detection in the PSCI driver
arm-bsp/trusted-firmware-a: corstone1000: remove SMCCC_ARCH_FEATURES discovery workaround
Delane Brandy (1):
arm/trusted-firmware-a: fix mbedTLS version
Drew Reed (2):
kas: Corstone-1000 kas files updated
bsp: Corstone-1000 userguide updates
Emekcan Aras (2):
arm-bsp/trusted-firmware-a: Upgrade Corstone1000 to TF-A v2.10
arm/trusted-services: Add recipe for block storage service
Jon Mason (17):
README: Add information about release process and mailing list
arm/linux-yocto: remove unreferenced patch
arm/optee: disable clang due to breakage
arm-bsp/tf-a-tests: remove corstone1000 intermediate SHA
arm-bsp/tfa-tests: move n1sdp patch to platform directory
CI: update kas to 4.3.1
arm/edk2: update to 202402
arm/trusted-firmware-a: update to 2.10.2
arm/sbsa-acs: update to 7.1.4
arm/scp-firmware: update to v2.14.0
arm-toolchain/gcc-arm-none-eabi: remove 11.2
CI: reduce coverage of dev kernel
arm/sbsa-acs: remove unreferenced patch
arm-toolchain: correct UPSTREAM_CHECK
Revert "arm/rmm: Add bitbake, include and patch file for RMM firmware"
arm/sbsa-acs: use UPSTREAM_CHECK_URI for version checking
arm: use UPSTREAM_CHECK_COMMITS for git versioned recipes
Mathieu Poirier (1):
arm/rmm: Add bitbake, include and patch file for RMM firmware
Ross Burton (3):
arm arm-bsp: enable patch-status warnings
Add SECURITY.md
CI: ignore netrc warnings caused by Kas
meta-openembedded: a0237019f5..a6bcdca5b4:
Bartosz Golaszewski (1):
libgpiod: update to v2.1.1
Chad Rockey (1):
cppzmq-dev expects /usr/lib/libzmq.a
Changqing Li (1):
postgresql: fix a runtime error
Chen Qi (1):
tcprelay: fix a minor cross compilation do_configure issue
Christophe Chapuis (9):
lvgl: fix typo in lv-conf.inc
lvgl: install lv_conf.h
lvgl: remove useless FILES include
lvgl: cleanup sed instructions in lv-conf.inc
lvgl: add more variables to lv-conf.inc
lvgl: fix libdrm include
lvgl: lv-conf.inc: generalize sed instructions
lvgl: make libdrm include conditional
lvgl: cleanup sed expression
Dan McGregor (2):
python3-pylint: Update to 3.1.0
python3-pylint: Fix ptest failures
Derek Straka (1):
python3-dbus: re-add recipe with latest patches and add ptest
Etienne Cordonnier (1):
uutils-coreutils: upgrade 0.0.24 -> 0.0.25
Fathi Boudra (1):
python3-django: upgrade 4.2.10 -> 4.2.11
Guðni Már Gilbert (2):
python3-ecdsa: remove python3-pbr
python3-ecdsa: cleanup DEPENDS
Jaeyoon Jung (1):
lvgl: Set resolution prior to buffer
Joe Slater (1):
googletest: allow for shared libraries
Jose Quaresma (1):
ostree: Upgrade 2024.4 -> 2024.5
Jörg Sommer (3):
sngrep: new recipe for ncurses SIP Messages flow viewer
spandsp: new telephony DSP library
bluez-tools: New recipe for bluez5 tools
Kai Kang (2):
Packages depends on libadwaita should require distro feature opengl
thin-provisioning-tools: install binary to ${sbindir}
Khem Raj (55):
squid: Upgrade to 6.8
libosinfo: Fix build with libxml2 v2.12
xmlstarlet: Fix build with API breakage in libxml2 2.12
mariadb: Fix build with libxml2 2.12 ABI changes
libmusicbrainz: Update to tip of trunk
gnome-commander: Fix build with taglib 2.0
gnome-online-accounts: Fix build with libxml2 2.12
vlc: Upgrade to 3.0.20
netcf: Fix build with latest gnulib
php: Upgrade to 8.2.16
vlc: Fix build on 32bit x86
libtinyxml2: Extend for nativesdk
lvgl: Fix dev-elf build QA
layer.conf: Update for the scarthgap release series
dietsplash: Update and fix build with musl
frr: Upgrade to latest on 9.1 stable
frr: Fix build on newer musl
layer.conf: Prepare for release, drop nanbield LAYERSERIES
libcamera: Fix clang support patches
plocate: Fix sys/stat.h and linux/stat.h conflicts with musl
liburing: Upgrade to 2.5
openflow: Delete recipe for 1.0
openflow: Merge .inc into .bb
openflow: Fix build with musl
tracker-miners: Disable seccomp support on musl
libcamera: Fix build on musl systems
ipset: Update to 7.21
ot-daemon: Update to tip of trunk
ot-br-posix: Update to latest
wpantund: Update to latest
xfsdump: Fix build with musl >= 1.2.5
xfstests: Fix build with musl >= 1.2.5
net-snmp: Fix build with musl
rdma-core: Fix build with musl >= 1.2.5
ssmtp: Fix build with musl >= 1.2.5
autofs: Fix build with musl >= 1.2.5
lvm2: Fix build with musl 1.5.2+
sanlock: Fix build with musl >= 1.2.5
ndctl: Fix build issues seen with musl 1.2.5
sdbus-c++-libsystemd: Upgrade to 255.4 release of systemd
sdbus-c++,sdbus-c++-tools: Upgrade to 1.5.0 release
wtmpdb: Upgrade to 0.11.0 release
uftrace: Fix build with musl >= 1.2.5
fio: Upgrade to 3.36+git
i2cdev: Include libgen.h on musl
directfb: Fix build with musl >= 1.2.5
iwd: Upgrade to 2.16
minifi-cpp: Fix libsodium build on aarch64/clang
multipath-tools: Fix build with musl >= 1.2.5
aer-inject: Fix build with latest musl
aer-inject: Replace hardcoded /usr with ${prefix}
microsoft-gsl: Disable disabled-macro-expansion warning as error on clang/musl
meta-python-image-ptest: Use 2G RAM for some demanding tests
python3-pydbus: Add bash dependency for ptests
highway,libjxl: Remove -mfp16-format=ieee when using clang compiler
Leon Anavi (7):
python3-anyio: Upgrade 4.2.0 -> 4.3.0
python3-httpx: Upgrade 0.26.0 -> 0.27.0
python3-multidict: Upgrade 6.0.4 -> 6.0.5
python3-croniter: Upgrade 2.0.1 -> 2.0.3
python3-paho-mqtt: Upgrade 1.6.1 -> 2.0.0
python3-typeguard: Upgrade 4.1.5 -> 4.2.1
python3-cachetools: Upgrade 5.3.2 -> 5.3.3
Marek Vasut (14):
lvgl: Drop dialog-lvgl
lvgl: Upgrade to LVGL 9 series
lvgl: Rename lv-drivers.inc to lv-conf.inc
lvgl: Add SDL2 fullscreen mode configuration option
lvgl: Configure assertions based on DEBUG_BUILD
lvgl: Default to XRGB8888 DRM framebuffer
lvgl: Build shared library
lvgl: Replace sed patching with real patches
lvgl: Generate proper shared libraries with version suffix
lvgl: Reinstate demo configuration settings
lvgl: Update to 9.1.0
lvgl: Drop superfluous ALLOW_EMPTY
lvgl: Drop unnecessary PV append
lvgl: Deduplicate PACKAGECONFIG into lv-conf
Markus Volk (66):
mozjs-115: fix reproducibility issue
webp-pixbuf-loader: update 0.2.5 -> 0.2.7
gnome-control-center: fix reproducibility issue
gnome-disk-utility: fix reproducibility issue
gnome-settings-daemon: fix reproducibility issue
gnome-terminal: fix reproducibility issue
libvncserver: fix reproducibility issue
editorconfig-core-c: fix reproducibility issue
crossguid: fix reproducibility issue
waylandpp: fix reproducibility issue
polkit: remove unneeded workaround
gtk-vnc: fix reproducibility issue
pipewire: update 1.0.3 -> 1.0.4
mutter: remove zenity from rdepends
mutter: update 45.4 -> 46.0
gnome-shell: update 45.4 -> 46.0
gnome-settings-daemon: update 45.0 -> 46.0
gnome-software: update 45.3 -> 46.0
evince: update 45.0 -> 46.0
gnome-online-accounts: update 3.48.0 -> 3.50.0
evolution-data-server: build with webkitgtk4
folks: update 0.15.7 -> 0.15.8
gnome-control-center: update 45.3 -> 46.0
xdg-desktop-portal-gnome: update 45.1 -> 46.0
tracker: update 3.6.0 -> 3.7.0
tracker-miners: update 3.6.2 -> 3.7.0
freerdp3: add recipe
wireplumber: update 0.4.17 -> 0.5.0
tecle: update 45.0 -> 46.0
gnome-calculator: update 45.0.2 -> 46.0
gnome-session: update 45.0 -> 46.0
gnome-remote-desktop: update 45.1 -> 46.0
gnome-calendar: update 45.1 -> 46.0
libgweather4: update 4.4.0 -> 4.4.2
gtksourceview5: update 5.10.0 -> 5.12.0
gnome-control-center: use gcr4 variant
libcloudproviders: update 0.3.5 -> 0.3.6
gnome-themes-extra: build with gtk+3
gtk4mm: add recipe
gnome-system-monitor: update 45.0.1 -> 46.0
gnome-boxes: update 45.0 -> 46.0
eog: update 45.2 -> 45.3
gparted: update 1.5.0 -> 1.6.0
libgtop: update 2.41.1 -> 2.41.3
gnome-bluetooth: update 42.8 -> 46.0
gnome-text-editor: update 45.1 -> 46.0
gnome-chess: update 43.2 -> 46.0
gnome-disk-utility: update 45.0 -> 46.0
gnome-shell-extensions: update 45.2 -> 46.0
msgraph: add recipe
gvfs: update 1.52.2 -> 1.54.0
tracker-miners: drop buildpath from tracker-miner-fs-3
evolution-data-server: disable tests and examples
tracker-miners: fix reproducibility issue for landlock
file-roller: update 43.1 -> 44.0
apache2: preset mpm=prefork by default
gnome-user-share: add recipe
gnome-control-center: update 46.0 -> 46.0.1
gdm: update 45.0.1 -> 46.0
gnome-user-share: remove hardcoded paths
ghex: update 45.1 -> 46.0
libjxl: add recipe
gnome-backgrounds: add runtime depenency for libjxl
highway: add recipe
webkitgtk3: update 2.42.5 -> 2.44.0
gnome-control-center: restore Upstream-Status line
Martin Jansa (5):
unionfs-fuse, dropwatch, postgresql, yasm, multipath-tools, python3-pybind11: add missing Upstream-Status
recipes: Drop remaining PR values from recipes
freerdp3: disable shadow without x11
xfstests: upgrade to v2024.03.03
gtkmm4: add x11 to REQUIRED_DISTRO_FEATURES
Maxin John (7):
tracker: remove unused patch
openal-soft: remove unused patches
libio-pty-perl: remove unsed patch
opengl-es-cts: remove unused patch
emacs: remove unused patch
webkitgtk3: remove unused patch
python3-eth-utils: remove unused patches
Michael Heimpold (1):
ser2net: add a systemd service file
Mingli Yu (4):
gosu: Upgrade to 1.17
googletest: Pass -fPIC to CFLAGS
re2: Upgrade 2023.03.01 -> 2024.03.01
nss: Upgrade 3.74 -> 3.98
Ola x Nilsson (2):
abseil-cpp: Split so-files into separate packages
abseil-cpp: Split so-files into separate packages
Peter Kjellerstedt (3):
abseil-cpp: A little clean-up
libnice: Disable the examples and the tests
abseil-cpp: A little clean-up
Peter Marko (5):
jwt-cpp: fix cmake file install path
soci: fix buildpaths warning
libcpr: add new recipe
python3-grpcio: cleanup dependencies
microsoft-gsl: add new recipe including ptest
Petr Gotthard (2):
libmbim: Revert back to the latest stable 1.30.0
libqmi: Revert back to the latest stable 1.34.0
Randy MacLeod (2):
rsyslog: update from 8.2306.0 to 8.2402.0
nftables: Add DESCRIPTION and HOMEPAGE
Richard Purdie (2):
imagemagick/lcms/fftw: Allow nativesdk versions to exist
buildtools-imagemagick: Add new recipe
Robert P. J. Day (1):
fmt: remove unnecessary "inherit ptest" directive
Robert Yang (6):
yaffs2-utils: Upgrade to 20221209
xfsprogs: 6.5.0 -> 6.6.0
gnulib: 2018-12-18 -> 202401
thin-provisioning-tools: 1.0.9 -> 1.0.12
gperftools: 2.10 -> 2.15
freeradius: 3.0.26 -> 3.2.3
Ross Burton (1):
python3-pydantic-core: just set PYPI_PACKAGE
Sam Van Den Berge (1):
python3-aiohttp: add missing dependencies
Samuli Piippo (1):
geoclue: enable demo agent
Thomas Roos (1):
usrsctp: upgrade to latest version
Tim Orling (1):
liberror-perl: move recipe from oe-core
Tomasz Żyjewski (1):
python: python-libusb1: add recipe
Wang Mingyu (124):
bats: upgrade 1.10.0 -> 1.11.0
c-ares: upgrade 1.26.0 -> 1.27.0
ctags: upgrade 6.1.20240114.0 -> 6.1.20240225.0
dbus-cxx: upgrade 2.5.0 -> 2.5.1
ddrescue: upgrade 1.27 -> 1.28
fetchmail: upgrade 6.4.37 -> 6.4.38
libtalloc: upgrade 2.4.1 -> 2.4.2
libtdb: upgrade 1.4.9 -> 1.4.10
neatvnc: upgrade 0.7.2 -> 0.8.0
ostree: upgrade 2024.3 -> 2024.4
python3-astroid: upgrade 3.0.3 -> 3.1.0
python3-cbor2: upgrade 5.6.1 -> 5.6.2
python3-dnspython: upgrade 2.6.0 -> 2.6.1
python3-eventlet: upgrade 0.35.1 -> 0.35.2
python3-gcovr: upgrade 7.0 -> 7.2
python3-google-api-core: upgrade 2.16.2 -> 2.17.1
python3-google-api-python-client: upgrade 2.118.0 -> 2.120.0
python3-grpcio(-tools): upgrade 1.60.1 -> 1.62.0
python3-ipython: upgrade 8.21.0 -> 8.22.1
python3-pdm: upgrade 2.12.3 -> 2.12.4
python3-pymisp: upgrade 2.4.185 -> 2.4.186
python3-scrypt: upgrade 0.8.20 -> 0.8.24
python3-sentry-sdk: upgrade 1.40.4 -> 1.40.6
smarty: upgrade 4.3.4 -> 4.4.1
stunnel: upgrade 5.69 -> 5.72
abseil-cpp: upgrade 20230802.1 -> 20240116.1
dnf-plugin-tui: upgrade 1.3 -> 1.4
boost-sml: upgrade 1.1.9 -> 1.1.11
ctags: upgrade 6.1.20240225.0 -> 6.1.20240310.0
dialog: upgrade 1.3-20240101 -> 1.3-20240307
flatbuffers: upgrade 23.5.26 -> 24.3.7
gjs: upgrade 1.78.4 -> 1.80.0
hwdata: upgrade 0.379 -> 0.380
iceauth: upgrade 1.0.9 -> 1.0.10
libdnet: upgrade 1.17.0 -> 1.18.0
libopus: upgrade 1.4 -> 1.5.1
libreport: upgrade 2.17.11 -> 2.17.15
libxaw: upgrade 1.0.15 -> 1.0.16
mcelog: upgrade 196 -> 197
networkd-dispatcher: upgrade 2.1 -> 2.2.4
openlldp: upgrade 1.1.0 -> 1.1.1
opensc: upgrade 0.24.0 -> 0.25.0
pcsc-lite: upgrade 2.0.1 -> 2.0.3
python3-a2wsgi: upgrade 1.10.2 -> 1.10.4
python3-apiflask: upgrade 2.1.0 -> 2.1.1
python3-argcomplete: upgrade 3.2.2 -> 3.2.3
python3-bandit: upgrade 1.7.7 -> 1.7.8
python3-blivet: upgrade 3.8.2 -> 3.9.1
python3-blivetgui: upgrade 2.4.2 -> 2.5.0
python3-django: upgrade 5.0.2 -> 5.0.3
python3-elementpath: upgrade 4.3.0 -> 4.4.0
python3-eth-abi: upgrade 5.0.0 -> 5.0.1
python3-eth-rlp: upgrade 1.0.1 -> 2.0.0
python3-flask-migrate: upgrade 4.0.5 -> 4.0.7
python3-google-api-python-client: upgrade 2.120.0 -> 2.122.0
python3-google-auth: upgrade 2.28.1 -> 2.28.2
python3-googleapis-common-protos: upgrade 1.62.0 -> 1.63.0
python3-grpcio-tools: upgrade 1.62.0 -> 1.62.1
python3-grpcio: upgrade 1.62.0 -> 1.62.1
python3-ipython: upgrade 8.22.1 -> 8.22.2
python3-mypy: upgrade 1.8.0 -> 1.9.0
python3-pydantic: upgrade 2.6.3 -> 2.6.4
python3-pymisp: upgrade 2.4.186 -> 2.4.187
python3-pymodbus: upgrade 3.6.4 -> 3.6.6
python3-pyperf: upgrade 2.6.2 -> 2.6.3
python3-pytest-lazy-fixtures: upgrade 1.0.5 -> 1.0.6
python3-pytest-timeout: upgrade 2.2.0 -> 2.3.1
python3-requests-oauthlib: upgrade 1.3.1 -> 1.4.0
python3-sentry-sdk: upgrade 1.40.6 -> 1.42.0
python3-tox: upgrade 4.13.0 -> 4.14.1
python3-traitlets: upgrade 5.14.1 -> 5.14.2
python3-types-psutil: upgrade 5.9.5.20240205 -> 5.9.5.20240316
python3-types-python-dateutil: upgrade 2.8.19.20240106 -> 2.9.0.20240316
tcsh: upgrade 6.24.10 -> 6.24.11
thingsboard-gateway: upgrade 3.4.4 -> 3.4.5
xmessage: upgrade 1.0.6 -> 1.0.7
xrefresh: upgrade 1.0.7 -> 1.1.0
gjs: upgrade 1.80.0 -> 1.80.2
gnome-backgrounds: upgrade 45.0 -> 46.0
gnome-font-viewer: upgrade 45.0 -> 46.0
libblockdev: upgrade 3.1.0 -> 3.1.1
libdeflate: upgrade 1.19 -> 1.20
libmbim: upgrade 1.30.0 -> 1.31.2
libqmi: upgrade 1.34.0 -> 1.35.2
libtommath: upgrade 1.2.1 -> 1.3.0
mcelog: upgrade 197 -> 198
metacity: upgrade 3.50.0 -> 3.52.0
python3-asgiref: upgrade 3.7.2 -> 3.8.1
python3-blivet: upgrade 3.9.1 -> 3.9.2
python3-cassandra-driver: upgrade 3.29.0 -> 3.29.1
python3-djangorestframework: upgrade 3.14.0 -> 3.15.1
python3-eth-rlp: upgrade 2.0.0 -> 2.1.0
python3-eventlet: upgrade 0.35.2 -> 0.36.1
python3-filelock: upgrade 3.13.1 -> 3.13.3
python3-flask-marshmallow: upgrade 1.2.0 -> 1.2.1
python3-flatbuffers: upgrade 24.3.7 -> 24.3.25
python3-google-api-core: upgrade 2.17.1 -> 2.18.0
python3-google-api-python-client: upgrade 2.122.0 -> 2.124.0
python3-google-auth: upgrade 2.28.2 -> 2.29.0
python3-graphviz: upgrade 0.20.1 -> 0.20.3
python3-gspread: upgrade 6.0.2 -> 6.1.0
python3-jdatetime: upgrade 4.1.1 -> 5.0.0
python3-pdm: upgrade 2.12.4 -> 2.13.2
python3-pyasn1-modules: upgrade 0.3.0 -> 0.4.0
python3-pymisp: upgrade 2.4.187 -> 2.4.188
python3-pytest-asyncio: upgrade 0.23.5 -> 0.23.6
python3-pytest-cov: upgrade 4.1.0 -> 5.0.0
python3-pytest-lazy-fixtures: upgrade 1.0.6 -> 1.0.7
python3-pywbem: upgrade 1.6.2 -> 1.6.3
python3-pywbemtools: upgrade 1.2.0 -> 1.2.1
python3-pyzstd: upgrade 0.15.9 -> 0.15.10
python3-requests-oauthlib: upgrade 1.4.0 -> 2.0.0
python3-sentry-sdk: upgrade 1.42.0 -> 1.44.0
python3-socketio: upgrade 5.11.1 -> 5.11.2
python3-thrift: upgrade 0.16.0 -> 0.20.0
python3-tox: upgrade 4.14.1 -> 4.14.2
python3-web3: upgrade 6.15.1 -> 6.16.0
st: upgrade 0.9 -> 0.9.1
thingsboard-gateway: upgrade 3.4.5 -> 3.4.6
thrift: upgrade 0.19.0 -> 0.20.0
tracker-miners: upgrade 3.7.0 -> 3.7.1
tracker: upgrade 3.7.0 -> 3.7.1
wireshark: upgrade 4.2.3 -> 4.2.4
wolfssl: upgrade 5.6.6 -> 5.7.0
William Lyu (3):
nftables: Fix ptest output format issues
nftables: Fix ShellCheck violations in ptest wrapper script "run-ptest"
nftables: Fix failed ptest testcases
Yi Zhao (13):
netplan: upgrade 0.106 -> 1.0
networkmanager: 1.44.0 -> 1.46.0
postfix: upgrade 3.8.5 -> 3.8.6
net-snmp: upgrade 5.9.3 -> 5.9.4
cryptsetup: upgrade 2.7.0 -> 2.7.1
samba: upgrade 4.19.4 -> 4.19.5
civetweb: remove buildpaths from civetweb-targets.cmake
minifi-cpp: upgrade 0.7.0 -> 0.15.0
openvpn: upgrade 2.6.9 -> 2.6.10
rocksdb: upgrade 7.9.2 -> 9.0.0
audit: upgrade 4.0 -> 4.0.1
netplan: add missing config directory
strongswan: upgrade 5.9.13 -> 5.9.14
alperak (15):
python3-icecream: add recipe
python3-invoke: add recipe
python3-traitlets: add ptest and update runtime dependencies
python3-google-auth-oauthlib: add ptest
python3-tomli-w: added recipe which is also include ptest
python3-pytest-localserver: added recipe which is also include ptest
python3-responses: add recipe
python3-google-auth: add ptest and update runtime dependencies
remove obsolete PIP_INSTALL_PACKAGE and PIP_INSTALL_DIST_PATH
python3-a2wsgi: added recipe which is also include ptest
python3-httptools: added recipe which is also include ptest
python3-wsproto: Add recipe
python3-portalocker: enable ptest
python3-validators: upgrade 0.22.0 > 0.24.0 and enable ptest
python3-pydbus: Drop ${PYTHON_PN}
chenheyun (1):
aer-inject:add new recipe
Change-Id: I3cf0e5c87ecdfa18c35d318cb64c0e6559348618
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch
new file mode 100644
index 0000000..1bd1798
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch
@@ -0,0 +1,40 @@
+From 5fe65a35e0e7106347639f0258206fadb451c439 Mon Sep 17 00:00:00 2001
+From: Hiroaki KAWAI <hiroaki.kawai@gmail.com>
+Date: Wed, 1 Feb 2017 18:00:33 +0900
+Subject: [PATCH 1/3] make direction attribute conforming to introspect.dtd
+
+direction attribute defaults to "in" as
+in the DTD(*1), direction attribute is defined as following:
+
+```
+<!ATTRLIST arg direction (in|out) "in">
+```
+
+*1) http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ pydbus/proxy_method.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 8798edd..3e6e6ee 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -33,8 +33,8 @@ class ProxyMethod(object):
+ self.__name__ = method.attrib["name"]
+ self.__qualname__ = self._iface_name + "." + self.__name__
+
+- self._inargs = [(arg.attrib.get("name", ""), arg.attrib["type"]) for arg in method if arg.tag == "arg" and arg.attrib["direction"] == "in"]
+- self._outargs = [arg.attrib["type"] for arg in method if arg.tag == "arg" and arg.attrib["direction"] == "out"]
++ self._inargs = [(arg.attrib.get("name", ""), arg.attrib["type"]) for arg in method if arg.tag == "arg" and arg.attrib.get("direction", "in") == "in"]
++ self._outargs = [arg.attrib["type"] for arg in method if arg.tag == "arg" and arg.attrib.get("direction", "in") == "out"]
+ self._sinargs = "(" + "".join(x[1] for x in self._inargs) + ")"
+ self._soutargs = "(" + "".join(self._outargs) + ")"
+
+--
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch
new file mode 100644
index 0000000..b3c57ed
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch
@@ -0,0 +1,206 @@
+From 31d6dd7893a5e1bb9eb14bfcee861a5b62f64960 Mon Sep 17 00:00:00 2001
+From: Vendula Poncova <vponcova@redhat.com>
+Date: Thu, 27 Jul 2017 18:41:29 +0200
+Subject: [PATCH 2/3] Support asynchronous calls (#58)
+
+Added support for asynchronous calls of methods. A method is called
+synchronously unless its callback parameter is specified. A callback
+is a function f(*args, returned=None, error=None), where args is
+callback_args specified in the method call, returned is a return
+value of the method and error is an exception raised by the method.
+
+Example of an asynchronous call:
+
+def func(x, y, returned=None, error=None):
+ pass
+
+proxy.Method(a, b, callback=func, callback_args=(x, y))
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ doc/tutorial.rst | 11 ++++++++-
+ pydbus/proxy_method.py | 44 ++++++++++++++++++++++++++++++-----
+ tests/publish_async.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/run.sh | 1 +
+ 4 files changed, 112 insertions(+), 7 deletions(-)
+ create mode 100644 tests/publish_async.py
+
+diff --git a/doc/tutorial.rst b/doc/tutorial.rst
+index 7474de3..b8479cf 100644
+--- a/doc/tutorial.rst
++++ b/doc/tutorial.rst
+@@ -84,7 +84,8 @@ All objects have methods, properties and signals.
+ Setting up an event loop
+ ========================
+
+-To handle signals emitted by exported objects, or to export your own objects, you need to setup an event loop.
++To handle signals emitted by exported objects, to asynchronously call methods
++or to export your own objects, you need to setup an event loop.
+
+ The only main loop supported by ``pydbus`` is GLib.MainLoop.
+
+@@ -156,6 +157,14 @@ To call a method::
+
+ dev.Disconnect()
+
++To asynchronously call a method::
++
++ def print_result(returned=None, error=None):
++ print(returned, error)
++
++ dev.GetAppliedConnection(0, callback=print_result)
++ loop.run()
++
+ To read a property::
+
+ print(dev.Autoconnect)
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 3e6e6ee..442fe07 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -65,15 +65,34 @@ class ProxyMethod(object):
+
+ # Python 2 sux
+ for kwarg in kwargs:
+- if kwarg not in ("timeout",):
++ if kwarg not in ("timeout", "callback", "callback_args"):
+ raise TypeError(self.__qualname__ + " got an unexpected keyword argument '{}'".format(kwarg))
+ timeout = kwargs.get("timeout", None)
++ callback = kwargs.get("callback", None)
++ callback_args = kwargs.get("callback_args", tuple())
++
++ call_args = (
++ instance._bus_name,
++ instance._path,
++ self._iface_name,
++ self.__name__,
++ GLib.Variant(self._sinargs, args),
++ GLib.VariantType.new(self._soutargs),
++ 0,
++ timeout_to_glib(timeout),
++ None
++ )
++
++ if callback:
++ call_args += (self._finish_async_call, (callback, callback_args))
++ instance._bus.con.call(*call_args)
++ return None
++ else:
++ ret = instance._bus.con.call_sync(*call_args)
++ return self._unpack_return(ret)
+
+- ret = instance._bus.con.call_sync(
+- instance._bus_name, instance._path,
+- self._iface_name, self.__name__, GLib.Variant(self._sinargs, args), GLib.VariantType.new(self._soutargs),
+- 0, timeout_to_glib(timeout), None).unpack()
+-
++ def _unpack_return(self, values):
++ ret = values.unpack()
+ if len(self._outargs) == 0:
+ return None
+ elif len(self._outargs) == 1:
+@@ -81,6 +100,19 @@ class ProxyMethod(object):
+ else:
+ return ret
+
++ def _finish_async_call(self, source, result, user_data):
++ error = None
++ return_args = None
++
++ try:
++ ret = source.call_finish(result)
++ return_args = self._unpack_return(ret)
++ except Exception as err:
++ error = err
++
++ callback, callback_args = user_data
++ callback(*callback_args, returned=return_args, error=error)
++
+ def __get__(self, instance, owner):
+ if instance is None:
+ return self
+diff --git a/tests/publish_async.py b/tests/publish_async.py
+new file mode 100644
+index 0000000..3f79b62
+--- /dev/null
++++ b/tests/publish_async.py
+@@ -0,0 +1,63 @@
++from pydbus import SessionBus
++from gi.repository import GLib
++from threading import Thread
++import sys
++
++done = 0
++loop = GLib.MainLoop()
++
++class TestObject(object):
++ '''
++<node>
++ <interface name='net.lew21.pydbus.tests.publish_async'>
++ <method name='HelloWorld'>
++ <arg type='i' name='x' direction='in'/>
++ <arg type='s' name='response' direction='out'/>
++ </method>
++ </interface>
++</node>
++ '''
++ def __init__(self, id):
++ self.id = id
++
++ def HelloWorld(self, x):
++ res = self.id + ": " + str(x)
++ print(res)
++ return res
++
++bus = SessionBus()
++
++with bus.publish("net.lew21.pydbus.tests.publish_async", TestObject("Obj")):
++ remote = bus.get("net.lew21.pydbus.tests.publish_async")
++
++ def callback(x, returned=None, error=None):
++ print("asyn: " + returned)
++ assert (returned is not None)
++ assert(error is None)
++ assert(x == int(returned.split()[1]))
++
++ global done
++ done += 1
++ if done == 3:
++ loop.quit()
++
++ def t1_func():
++ remote.HelloWorld(1, callback=callback, callback_args=(1,))
++ remote.HelloWorld(2, callback=callback, callback_args=(2,))
++ print("sync: " + remote.HelloWorld(3))
++ remote.HelloWorld(4, callback=callback, callback_args=(4,))
++
++ t1 = Thread(None, t1_func)
++ t1.daemon = True
++
++ def handle_timeout():
++ print("ERROR: Timeout.")
++ sys.exit(1)
++
++ GLib.timeout_add_seconds(2, handle_timeout)
++
++ t1.start()
++
++ loop.run()
++
++ t1.join()
+diff --git a/tests/run.sh b/tests/run.sh
+index 8d93644..271c58a 100755
+--- a/tests/run.sh
++++ b/tests/run.sh
+@@ -15,4 +15,5 @@ then
+ "$PYTHON" $TESTS_DIR/publish.py
+ "$PYTHON" $TESTS_DIR/publish_properties.py
+ "$PYTHON" $TESTS_DIR/publish_multiface.py
++ "$PYTHON" $TESTS_DIR/publish_async.py
+ fi
+--
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch
new file mode 100644
index 0000000..a1b8a6c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch
@@ -0,0 +1,495 @@
+From 773858e1afd21cdf3ceef2cd35509f0b4882bf16 Mon Sep 17 00:00:00 2001
+From: Vendula Poncova <vponcova@redhat.com>
+Date: Tue, 1 Aug 2017 16:54:24 +0200
+Subject: [PATCH 3/3] Support transformation between D-Bus errors and
+ exceptions.
+
+Exceptions can be registered with decorators, raised in a remote
+method and recreated after return from the remote call.
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ doc/tutorial.rst | 47 ++++++++++++++++++
+ pydbus/error.py | 97 ++++++++++++++++++++++++++++++++++++
+ pydbus/proxy_method.py | 18 +++++--
+ pydbus/registration.py | 16 ++++--
+ tests/error.py | 67 +++++++++++++++++++++++++
+ tests/publish_error.py | 132 +++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/run.sh | 2 +
+ 7 files changed, 371 insertions(+), 8 deletions(-)
+ create mode 100644 pydbus/error.py
+ create mode 100644 tests/error.py
+ create mode 100644 tests/publish_error.py
+
+diff --git a/doc/tutorial.rst b/doc/tutorial.rst
+index b8479cf..7fe55e1 100644
+--- a/doc/tutorial.rst
++++ b/doc/tutorial.rst
+@@ -341,6 +341,53 @@ See ``help(bus.request_name)`` and ``help(bus.register_object)`` for details.
+
+ .. --------------------------------------------------------------------
+
++Error handling
++==============
++
++You can map D-Bus errors to your exception classes for better error handling.
++To handle D-Bus errors, use the ``@map_error`` decorator::
++
++ from pydbus.error import map_error
++
++ @map_error("org.freedesktop.DBus.Error.InvalidArgs")
++ class InvalidArgsException(Exception):
++ pass
++
++ try:
++ ...
++ catch InvalidArgsException as e:
++ print(e)
++
++To register new D-Bus errors, use the ``@register_error`` decorator::
++
++ from pydbus.error import register_error
++
++ @map_error("net.lew21.pydbus.TutorialExample.MyError", MY_DOMAIN, MY_EXCEPTION_CODE)
++ class MyException(Exception):
++ pass
++
++Then you can raise ``MyException`` from the D-Bus method of the remote object::
++
++ def Method():
++ raise MyException("Message")
++
++And catch the same exception on the client side::
++
++ try:
++ proxy.Method()
++ catch MyException as e:
++ print(e)
++
++To handle all unknown D-Bus errors, use the ``@map_by_default`` decorator to specify the default exception::
++
++ from pydbus.error import map_by_default
++
++ @map_by_default
++ class DefaultException(Exception):
++ pass
++
++.. --------------------------------------------------------------------
++
+ Data types
+ ==========
+
+diff --git a/pydbus/error.py b/pydbus/error.py
+new file mode 100644
+index 0000000..aaa3510
+--- /dev/null
++++ b/pydbus/error.py
+@@ -0,0 +1,97 @@
++from gi.repository import GLib, Gio
++
++
++def register_error(name, domain, code):
++ """Register and map decorated exception class to a DBus error."""
++ def decorated(cls):
++ error_registration.register_error(cls, name, domain, code)
++ return cls
++
++ return decorated
++
++
++def map_error(error_name):
++ """Map decorated exception class to a DBus error."""
++ def decorated(cls):
++ error_registration.map_error(cls, error_name)
++ return cls
++
++ return decorated
++
++
++def map_by_default(cls):
++ """Map decorated exception class to all unknown DBus errors."""
++ error_registration.map_by_default(cls)
++ return cls
++
++
++class ErrorRegistration(object):
++ """Class for mapping exceptions to DBus errors."""
++
++ _default = None
++ _map = dict()
++ _reversed_map = dict()
++
++ def map_by_default(self, exception_cls):
++ """Set the exception class as a default."""
++ self._default = exception_cls
++
++ def map_error(self, exception_cls, name):
++ """Map the exception class to a DBus name."""
++ self._map[name] = exception_cls
++ self._reversed_map[exception_cls] = name
++
++ def register_error(self, exception_cls, name, domain, code):
++ """Map and register the exception class to a DBus name."""
++ self.map_error(exception_cls, name)
++ return Gio.DBusError.register_error(domain, code, name)
++
++ def is_registered_exception(self, obj):
++ """Is the exception registered?"""
++ return obj.__class__ in self._reversed_map
++
++ def get_dbus_name(self, obj):
++ """Get the DBus name of the exception."""
++ return self._reversed_map.get(obj.__class__)
++
++ def get_exception_class(self, name):
++ """Get the exception class mapped to the DBus name."""
++ return self._map.get(name, self._default)
++
++ def transform_message(self, name, message):
++ """Transform the message of the exception."""
++ prefix = "{}:{}: ".format("GDBus.Error", name)
++
++ if message.startswith(prefix):
++ return message[len(prefix):]
++
++ return message
++
++ def transform_exception(self, e):
++ """Transform the remote error to the exception."""
++ if not isinstance(e, GLib.Error):
++ return e
++
++ if not Gio.DBusError.is_remote_error(e):
++ return e
++
++ # Get DBus name of the error.
++ name = Gio.DBusError.get_remote_error(e)
++ # Get the exception class.
++ exception_cls = self.get_exception_class(name)
++
++ # Return the original exception.
++ if not exception_cls:
++ return e
++
++ # Return new exception.
++ message = self.transform_message(name, e.message)
++ exception = exception_cls(message)
++ exception.dbus_name = name
++ exception.dbus_domain = e.domain
++ exception.dbus_code = e.code
++ return exception
++
++
++# Default error registration.
++error_registration = ErrorRegistration()
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 442fe07..a73f9eb 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -2,6 +2,7 @@ from gi.repository import GLib
+ from .generic import bound_method
+ from .identifier import filter_identifier
+ from .timeout import timeout_to_glib
++from .error import error_registration
+
+ try:
+ from inspect import Signature, Parameter
+@@ -87,9 +88,20 @@ class ProxyMethod(object):
+ call_args += (self._finish_async_call, (callback, callback_args))
+ instance._bus.con.call(*call_args)
+ return None
++
+ else:
+- ret = instance._bus.con.call_sync(*call_args)
+- return self._unpack_return(ret)
++ result = None
++ error = None
++
++ try:
++ result = instance._bus.con.call_sync(*call_args)
++ except Exception as e:
++ error = error_registration.transform_exception(e)
++
++ if error:
++ raise error
++
++ return self._unpack_return(result)
+
+ def _unpack_return(self, values):
+ ret = values.unpack()
+@@ -108,7 +120,7 @@ class ProxyMethod(object):
+ ret = source.call_finish(result)
+ return_args = self._unpack_return(ret)
+ except Exception as err:
+- error = err
++ error = error_registration.transform_exception(err)
+
+ callback, callback_args = user_data
+ callback(*callback_args, returned=return_args, error=error)
+diff --git a/pydbus/registration.py b/pydbus/registration.py
+index f531539..1d2cbcb 100644
+--- a/pydbus/registration.py
++++ b/pydbus/registration.py
+@@ -5,6 +5,7 @@ from . import generic
+ from .exitable import ExitableWithAliases
+ from functools import partial
+ from .method_call_context import MethodCallContext
++from .error import error_registration
+ import logging
+
+ try:
+@@ -91,11 +92,16 @@ class ObjectWrapper(ExitableWithAliases("unwrap")):
+ logger = logging.getLogger(__name__)
+ logger.exception("Exception while handling %s.%s()", interface_name, method_name)
+
+- #TODO Think of a better way to translate Python exception types to DBus error types.
+- e_type = type(e).__name__
+- if not "." in e_type:
+- e_type = "unknown." + e_type
+- invocation.return_dbus_error(e_type, str(e))
++ if error_registration.is_registered_exception(e):
++ name = error_registration.get_dbus_name(e)
++ invocation.return_dbus_error(name, str(e))
++ else:
++ logger.info("name is not registered")
++ e_type = type(e).__name__
++ if not "." in e_type:
++ e_type = "unknown." + e_type
++
++ invocation.return_dbus_error(e_type, str(e))
+
+ def Get(self, interface_name, property_name):
+ type = self.readable_properties[interface_name + "." + property_name]
+diff --git a/tests/error.py b/tests/error.py
+new file mode 100644
+index 0000000..3ec507d
+--- /dev/null
++++ b/tests/error.py
+@@ -0,0 +1,67 @@
++from pydbus.error import ErrorRegistration
++
++
++class ExceptionA(Exception):
++ pass
++
++
++class ExceptionB(Exception):
++ pass
++
++
++class ExceptionC(Exception):
++ pass
++
++
++class ExceptionD(Exception):
++ pass
++
++
++class ExceptionE(Exception):
++ pass
++
++
++def test_error_mapping():
++ r = ErrorRegistration()
++ r.map_error(ExceptionA, "net.lew21.pydbus.tests.ErrorA")
++ r.map_error(ExceptionB, "net.lew21.pydbus.tests.ErrorB")
++ r.map_error(ExceptionC, "net.lew21.pydbus.tests.ErrorC")
++
++ assert r.is_registered_exception(ExceptionA("Test"))
++ assert r.is_registered_exception(ExceptionB("Test"))
++ assert r.is_registered_exception(ExceptionC("Test"))
++ assert not r.is_registered_exception(ExceptionD("Test"))
++ assert not r.is_registered_exception(ExceptionE("Test"))
++
++ assert r.get_dbus_name(ExceptionA("Test")) == "net.lew21.pydbus.tests.ErrorA"
++ assert r.get_dbus_name(ExceptionB("Test")) == "net.lew21.pydbus.tests.ErrorB"
++ assert r.get_dbus_name(ExceptionC("Test")) == "net.lew21.pydbus.tests.ErrorC"
++
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorA") == ExceptionA
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorB") == ExceptionB
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorC") == ExceptionC
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorD") is None
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorE") is None
++
++ r.map_by_default(ExceptionD)
++ assert not r.is_registered_exception(ExceptionD("Test"))
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorD") == ExceptionD
++ assert r.get_exception_class("net.lew21.pydbus.tests.ErrorE") == ExceptionD
++
++
++def test_transform_message():
++ r = ErrorRegistration()
++ n1 = "net.lew21.pydbus.tests.ErrorA"
++ m1 = "GDBus.Error:net.lew21.pydbus.tests.ErrorA: Message1"
++
++ n2 = "net.lew21.pydbus.tests.ErrorB"
++ m2 = "GDBus.Error:net.lew21.pydbus.tests.ErrorB: Message2"
++
++ assert r.transform_message(n1, m1) == "Message1"
++ assert r.transform_message(n2, m2) == "Message2"
++ assert r.transform_message(n1, m2) == m2
++ assert r.transform_message(n2, m1) == m1
++
++
++test_error_mapping()
++test_transform_message()
+diff --git a/tests/publish_error.py b/tests/publish_error.py
+new file mode 100644
+index 0000000..aa8a18a
+--- /dev/null
++++ b/tests/publish_error.py
+@@ -0,0 +1,132 @@
++import sys
++from threading import Thread
++from gi.repository import GLib, Gio
++from pydbus import SessionBus
++from pydbus.error import register_error, map_error, map_by_default, error_registration
++
++import logging
++logger = logging.getLogger('pydbus.registration')
++logger.disabled = True
++
++loop = GLib.MainLoop()
++DOMAIN = Gio.DBusError.quark() # TODO: Register new domain.
++
++
++@register_error("net.lew21.pydbus.tests.ErrorA", DOMAIN, 1000)
++class ExceptionA(Exception):
++ pass
++
++
++@register_error("net.lew21.pydbus.tests.ErrorB", DOMAIN, 2000)
++class ExceptionB(Exception):
++ pass
++
++
++@map_error("org.freedesktop.DBus.Error.InvalidArgs")
++class ExceptionC(Exception):
++ pass
++
++
++@map_by_default
++class ExceptionD(Exception):
++ pass
++
++
++class ExceptionE(Exception):
++ pass
++
++
++class TestObject(object):
++ '''
++<node>
++ <interface name='net.lew21.pydbus.tests.TestInterface'>
++ <method name='RaiseA'>
++ <arg type='s' name='msg' direction='in'/>
++ </method>
++ <method name='RaiseB'>
++ <arg type='s' name='msg' direction='in'/>
++ </method>
++ <method name='RaiseD'>
++ <arg type='s' name='msg' direction='in'/>
++ </method>
++ <method name='RaiseE'>
++ <arg type='s' name='msg' direction='in'/>
++ </method>
++ </interface>
++</node>
++ '''
++
++ def RaiseA(self, msg):
++ raise ExceptionA(msg)
++
++ def RaiseB(self, msg):
++ raise ExceptionB(msg)
++
++ def RaiseD(self, msg):
++ raise ExceptionD(msg)
++
++ def RaiseE(self, msg):
++ raise ExceptionE(msg)
++
++bus = SessionBus()
++
++with bus.publish("net.lew21.pydbus.tests.Test", TestObject()):
++ remote = bus.get("net.lew21.pydbus.tests.Test")
++
++ def t_func():
++ # Test new registered errors.
++ try:
++ remote.RaiseA("Test A")
++ except ExceptionA as e:
++ assert str(e) == "Test A"
++
++ try:
++ remote.RaiseB("Test B")
++ except ExceptionB as e:
++ assert str(e) == "Test B"
++
++ # Test mapped errors.
++ try:
++ remote.Get("net.lew21.pydbus.tests.TestInterface", "Foo")
++ except ExceptionC as e:
++ assert str(e) == "No such property 'Foo'"
++
++ # Test default errors.
++ try:
++ remote.RaiseD("Test D")
++ except ExceptionD as e:
++ assert str(e) == "Test D"
++
++ try:
++ remote.RaiseE("Test E")
++ except ExceptionD as e:
++ assert str(e) == "Test E"
++
++ # Test with no default errors.
++ error_registration.map_by_default(None)
++
++ try:
++ remote.RaiseD("Test D")
++ except Exception as e:
++ assert not isinstance(e, ExceptionD)
++
++ try:
++ remote.RaiseE("Test E")
++ except Exception as e:
++ assert not isinstance(e, ExceptionD)
++ assert not isinstance(e, ExceptionE)
++
++ loop.quit()
++
++ t = Thread(None, t_func)
++ t.daemon = True
++
++ def handle_timeout():
++ print("ERROR: Timeout.")
++ sys.exit(1)
++
++ GLib.timeout_add_seconds(4, handle_timeout)
++
++ t.start()
++ loop.run()
++ t.join()
+diff --git a/tests/run.sh b/tests/run.sh
+index 271c58a..a08baf8 100755
+--- a/tests/run.sh
++++ b/tests/run.sh
+@@ -10,10 +10,11 @@ PYTHON=${1:-python}
+
+ "$PYTHON" $TESTS_DIR/context.py
+ "$PYTHON" $TESTS_DIR/identifier.py
++"$PYTHON" $TESTS_DIR/error.py
+ if [ "$2" != "dontpublish" ]
+ then
+ "$PYTHON" $TESTS_DIR/publish.py
+ "$PYTHON" $TESTS_DIR/publish_properties.py
+ "$PYTHON" $TESTS_DIR/publish_multiface.py
+ "$PYTHON" $TESTS_DIR/publish_async.py
+ fi
+--
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest
new file mode 100644
index 0000000..782ceed
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+for case in `find tests -type f -name '*.sh'`; do
+ bash $case python3 >$case.output 2>&1
+ ret=$?
+ if [ $ret -ne 0 ]; then
+ cat $case.output
+ echo "FAIL: ${case}"
+ elif grep -i 'SKIP' $case.output; then
+ echo "SKIP: ${case}"
+ else
+ echo "PASS: ${case}"
+ fi
+ rm -f $case.output
+done
\ No newline at end of file